我正在使用Servlet和Jsp开发简单的web应用程序。但是,我在web.xml上工作时有一个问题。例如,我可以对许多servlet类使用相同的url模式吗?
来自jsp页面的代码
<form action="Answer" method="get">
<input id="foo" type="text" name="question"/>
<input type="reset" value="Clear" />
<br/>
<input type="submit" value="Submit"/>
<input type="submit" value="Back"/>
</form>web.xml代码
<servlet>
<servlet-name>Answer</servlet-name>
<servlet-class>RemoveAbbr</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Answer</servlet-name>
<url-pattern>/Answer</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Answer</servlet-name>
<servlet-class>Preprocess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Answer</servlet-name>
<url-pattern>/Answer</url-pattern>
</servlet-mapping>因此,我的问题是,选项1下面的真实条件是什么?如果我单击Submit按钮,它能映射到RemoveAbbr 2),如果我单击Back按钮,它能映射到Preprocess 3),因为相同的url模式(来自jsp的表单操作)不能用于不同的servlet类名。
发布于 2013-02-05 10:57:43
每个<servlet>都需要一个唯一的<servlet-name>,所以您需要重命名一个。而且,servlet的<url-pattern>应该是不同的,因此servlet容器将知道如何处理请求。
发布于 2014-09-05 19:05:58
您需要使用唯一的<servlet-name>。例如:
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.myapp.FirstServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>SecondServlet</servlet-name>
<servlet-class>com.myapp.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/first.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SecondServlet</servlet-name>
<url-pattern>/second.do</url-pattern>
</servlet-mapping>检查这个教程,我在那里找到了一个编辑web.xml文件并添加servlet的示例。而且源代码是可用的,所以它对我很有用。
https://stackoverflow.com/questions/14705683
复制相似问题