【发布时间】:2014-11-06 07:31:08
【问题描述】:
我是 Servlet 的新手。 我用 2 个 jsp 文件做了一个简单的项目。和两个 Servler 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>
'
【问题讨论】:
-
你有没有在web.xml中添加条目
-
是的,你可以。代码和映射在哪里?
-
请检查问题。我刚刚用 web.xml 内容进行了编辑。映射都很好,我猜。
-
@Ramandeep 你能告诉我你的第二个 servlet 名称吗?
-
我想我找到了解决方案,但我仍然需要一些解释。我在 com.Project.servlets 包中使用 servlet 制作了另一个类似的项目。以及 WebContent 中的 JSP 目录中的两个 JSP。 Web.xml 将 default.jsp 作为欢迎页面,该页面转发到 jsp1,因此当我从 jsp1 调用 servlet1 时。它工作正常。但是当我通过 typng 尝试 jsp2 时,url 指向 jsp2 并从中调用 servler2。它无法找到它,因为它仅在 JSP 目录中搜索它。因此,当我将操作属性更改为“../Servlet2”时它可以工作。所以它与JSP转发标签有关。