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