我是Servlet的新手。
我用2个jsp文件制作了一个简单的项目。和两个仆人
jsp1,jsp2,servlet1和servlet2。

当两个jsps的body标记中的代码均为this时(都指向servlet1)

<form method="post" action="servlet1">
<input type="submit">
</form>`


servlet的doPost方法中有一个简单的Sysout。

在这种情况下,它工作得很好。

但是,当我使第二个jsp调用servlet2时。没用它给我这个错误屏幕

HTTP状态404-/ Project / servlet2
 类型状态报告
 消息/ Project / servlet2
 说明所请求的资源(/ Project / servlet2)不可用。
 Apache Tomcat / 6.0.26

那么我们不能在同一项目中使用两个不同的servlet吗?

编辑:

这是web.xml文件。如你看到的。所有映射都在那里。

'

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Project</display-name>
  <welcome-file-list>
    <welcome-file>jsp1.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>servler1</display-name>
    <servlet-name>servler1</servlet-name>
    <servlet-class>servler1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servler1</servlet-name>
    <url-pattern>/servler1</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>servler2</display-name>
    <servlet-name>servler2</servlet-name>
    <servlet-class>servler2</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servler2</servlet-name>
    <url-pattern>/servler2</url-pattern>
  </servlet-mapping>
</web-app>


'

最佳答案

我同意@San Krish的回答。但是更多的解释。

如你所说:


  项目中的第二个servlet无法正常工作。


您需要像映射第一个servlet一样映射web.xml文件中的每个servlet。

编辑:

根据您编辑的问题。您在servler1文件中使用的是web.xml,但是在使用servlet1的jsp中使用的是,这是主要问题。因此,在您的jsp文件中使用servler1

例如:

<form method="post" action="servler1">
    <input type="submit">
</form>`


编辑1:
可能还有另一个原因。

如果第二个servlet在包中,则必须在web.xml中也包含包名称。假设您需要在servlet2.java包中的第二个servlet com.myproject.test在web.xml文件中执行以下操作。

<servlet>
    <description></description>
    <display-name>servler2</display-name>
    <servlet-name>servler2</servlet-name>
    <servlet-class>com.myproject.test.servlet2</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servler2</servlet-name>
    <url-pattern>/servler2</url-pattern>
</servlet-mapping>

关于java - 项目中的第二个servlet无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26773975/

10-10 15:13