4

I just get confused about how to modify web.xml for multiple servlet. I got three servlet to handle three different jsp, but now only one servlet is effective.

2 Answers 2

10

You should declare and define the classes/servlets inside the web.xml file like this:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                                 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
    <servlet>
        <servlet-name>LoginForm</servlet-name>
        <servlet-class>com.project.system.LoginForm</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>RegisterForm</servlet-name>
        <servlet-class>com.project.system.RegisterForm</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>UserController</servlet-name>
        <servlet-class>com.project.controller.UserController</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>LoginForm</servlet-name>
        <url-pattern>/LoginForm</url-pattern>
    </servlet-mapping>   
    <servlet-mapping>
        <servlet-name>RegisterForm</servlet-name>
        <url-pattern>/RegisterForm</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>UserController</servlet-name>
        <url-pattern>/UserController</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

</web-app>
Sign up to request clarification or add additional context in comments.

5 Comments

Thanks ! But I still don't understand. How can I specify which jsp should be handle by a specific servlet?
You can handle JSP files from your Servlet file. There are specific methods like request.getParameter();
You declare also in your JSP file something like this: <form action="UserController" method="POST">
So I don't have to config servlet in web.xml?
Actually, you should set all the servlets in the web.xml file to be formally correct.
0

Note: In case of multiple servlet files, make sure that each pair of servlet and servlet-mapping tags must contain the same servlet-name. And thereafter, another pair also compulsorily contain another servlet-name and so on.

That is why, i have mentioned here 'Project', 'Pro' and 'Proj' servlet-name, because of three different(multiple) sevlet files.

<servlet>
    <servlet-name> Project </servlet-name>
    <servlet-class> com.project.Contact.Contact </servlet-class> 
</servlet>
<servlet-mapping>
    <servlet-name> Project </servlet-name>
    <url-pattern> /contact </url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name> Pro </servlet-name>
    <servlet-class> com.project.Login.Login </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name> Pro </servlet-name>
    <url-pattern> /login </url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name> Proj </servlet-name>
    <servlet-class> com.project.Register.Register </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name> Proj </servlet-name>
    <url-pattern> /register </url-pattern>
</servlet-mapping>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.