servlet web.xml映射

时间:2013-02-05 10:47:07

标签: servlets mapping web.xml

  

我正在使用Servlet& amp; JSP中。但是我有   我正在使用web.xml的一个问题。我可以使用相同的网址模式   对于许多servlet类,例如

来自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)如果   我点击提交按钮可以映射到RemoveAbbr 2)如果我点击   后退按钮可以映射到预处理3)因为相同而产生冲突   url模式(来自jsp的Form Action)不能用于不同的servlet   班级名称。

2 个答案:

答案 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的示例。此外,源代码也可用,因此对我有用。