- 完全路径匹配:以 / 开始,不能包含*,如
/test/hello
- 目录匹配:以 / 开始,以 /* 结束,如
/test/*
- 扩展名匹配:以 * 开始,如
*.abc、*.efg
- 缺省匹配(默认匹配):
/
,当其他匹配失败时,则满足缺省匹配,该匹配不支持过滤器(服务器收到请求时必须找到一个Servlet来处理和响应,故需要缺省匹配。当请求路径不匹配当前过滤器时,就不需要处理,故不需要缺省匹配) - 优先级:完全路径匹配 > 目录匹配 > 扩展名匹配>缺省匹配
注:
(1)Tomcat的web.xml文件默认配置了缺省匹配,对应的Servlet为DefaultServlet。
(2)缺省匹配的优先级最低。Tomcat默认配置了 扩展名匹配*.jsp
,其对应的Servlet为JspServlet。在采用/*
时,所有url都会匹配成功(包括*.jsp
),因为缺省匹配的优先级比扩展名匹配的优先级低,则在采用/
时,*.jsp
不会匹配成功。
(3)直接访问项目的上下文路径(Tomcat根据请求路径找不到Servlet来处理请求时),会从上往下读取welcome-file-list,将welcome-file拼接到当前url上,如http://localhost:8080/test01/,拼接得到http://localhost:8080/test01/index.jsp并进行请求转发。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>