来自jsp页面的我正在使用Servlet& amp; JSP中。但是我有 我正在使用web.xml的一个问题。我可以使用相同的网址模式 对于许多servlet类,例如
代码
<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)如果 我点击提交按钮可以映射到RemoveAbbr 2)如果我点击 后退按钮可以映射到预处理3)因为相同而产生冲突 url模式(来自jsp的Form Action)不能用于不同的servlet 班级名称。
答案 0 :(得分:2)
每个<servlet>
都需要有一个唯一的<servlet-name>
,因此您需要重命名一个<url-pattern>
。此外,{{1}}应该是不同的,因此servlet容器将知道如何处理请求。
答案 1 :(得分:0)
您需要使用唯一的<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>
检查这个tutorial,在那里我找到了编辑web.xml文件并添加servlet的示例。此外,源代码也可用,因此对我有用。