0
votes

I am working on simple web application using Servlet & Jsp. But i have one problem where i am working on web.xml. Can i use same url pattern for many servlet class for example

code from jsp page

<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>

Code from 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>

So, My question is what are true conditions from below options 1) if i click on Submit button can it map to RemoveAbbr 2) if i click on Back button can it map to Preprocess 3) creates conflict because same url pattern(Form Action from jsp) can not used for different servlet class name.

2

2 Answers

2
votes

Every <servlet> needs to have a unique <servlet-name>, so you will need to rename one. Also, the <url-pattern>'s should be different so the servlet container will know how to handle the requests.

0
votes

You need to use a unique <servlet-name>. For example:

<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>

Check this tutorial, there I found an example to edit web.xml file and add the servlets. Also the source code is available, so it was useful for me.