我们都知道web.xml是用来配置Servlet的映射的,我在网上看到很多人对有多个servlet时如何配置很是困惑,我以前也碰到过类似的问题,后来试了很多种方法才解决,现在把我的一些收获与大家一起分享
一个例子如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet>
<servlet-name>RequestInfo</servlet-name>
<display-name>RequestInfo</display-name>
<servlet-class>test.RequestInfo</servlet-class>
</servlet>
<servlet>
<servlet-name>FormDeal</servlet-name>
<display-name>FormDeal</display-name>
<servlet-class>test.FormDeal</servlet-class>
</servlet>
<servlet>
<servlet-name>SessionExa</servlet-name>
<display-name>SessionExa</display-name>
<servlet-class>test.SessionExa</servlet-class>
</servlet>
<servlet>
<servlet-name>UseBeanServlet</servlet-name>
<display-name>UseBeanServlet</display-name>
<servlet-class>test.UseBeanServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestInfo</servlet-name>
<url-pattern>/RequestInfo</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FormDeal</servlet-name>
<url-pattern>/FormDeal</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SessionExa</servlet-name>
<url-pattern>/SessionExa</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>UseBeanServlet</servlet-name>
<url-pattern>/UseBeanServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
从上面可以看到前面先是一个个servlet的描述信息,后面才是servlet的映射,也就是说要把servlet的描述信息放前面,映射放后面。还有就是<servlet></servlet>标签中间的那三个标签都必须有,我曾试过把<displayname></display-name>
删掉,后来在用浏览器运行servlet时总是出错,目前我也不知道为什么,标签
<servlet-mapping></servlet-mapping>
中间的两个标签
<servlet-name></servlet-name>
<url-pattern></url-pattern>
肯定是少不了的了,不用我多说
转自http://hi.baidu.com/arfish/item/e297d03ca54740c5382ffa74