这是我的web.xml的代码。它有两个servlet映射到不同的URL。如果我一次只放一个url,它对两个servlet都运行正常。但是将它们放在xml中总是调用“loginpage”servlet,即使请求是“http://localhost:8181/servlet_jsp/loginauth”用于“loginauth”。
我知道我可以使用类似注释的替代方法,但我的好奇心是,为什么这个特殊代码无效。
这是我的web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/webapp_2_4.xsd" version="2.4">
<servlet>
<servlet-name>loginauth</servlet-name>
<servlet-class>login.LoginAuth</servlet-class>
<servlet-name>loginpage</servlet-name>
<servlet-class>login.LoginPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginauth</servlet-name>
<url-pattern>/loginauth</url-pattern>
<servlet-name>loginpage</servlet-name>
<url-pattern>/loginpage</url-pattern>
</servlet-mapping>
</web-app>
答案 0 :(得分:1)
您需要将定义放在单独的servlet
和servlet-mapping
元素中:
<servlet>
<servlet-name>loginpage</servlet-name>
<servlet-class>login.LoginPage</servlet-class>
</servlet>
<servlet>
<servlet-name>loginauth</servlet-name>
<servlet-class>login.LoginAuth</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginauth</servlet-name>
<url-pattern>/loginauth</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>loginpage</servlet-name>
<url-pattern>/loginpage</url-pattern>
</servlet-mapping>