2016年9月23日21:11:59
一般的写法: /dir1/dir2/dir3...
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/Servlet/ServletName</url-pattern>
</servlet-mapping>
*通配符的写法有2种: /开头*结尾 或 *.扩展名
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/a/b/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
如果某个Servlet的映射路径仅仅是一个/,那么这个Servlet就成为当前web应用的默认Servlet
它可以处理其它所有Servlet都不处理的请,
开发时最好不要出现这种情况,否则web应用的静态资源无法被访问,从而被此Servlet拦截处理
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这种情况会覆盖由tomcat提供的默认的Servlet,此Serlvet是为静态资源提供访问服务的
此Servlet是在$tomcat/conf/web.xml文件中配置的:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
对于如下的一些映射关系:
- Servlet1 映射到 /abc/*
- Servlet2 映射到 /*
- Servlet3 映射到 /abc
- Servlet4 映射到 *.do
注意: *.do这种形式优先级别最低