2013-02-05 46 views
0

我正在使用Servlet的簡單Web應用程序& Jsp。但我有 一個問題,我在web.xml上工作。我可以使用相同的URL模式 許多servlet類例如從JSP頁面servlet web.xml映射

代碼

<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)如果我點擊 Bac k按鈕可以映射到預處理3)創建衝突,因爲URL模式(來自jsp的Form Action)不能用於不同的servlet 類名稱。

回答

2

每個<servlet>需要有一個獨特的<servlet-name>,所以你需要重命名一個。此外,<url-pattern>應該是不同的,所以servlet容器將知道如何處理請求。

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。還有源代碼可用,所以它對我很有用。