我是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/