SpringMVC的<url-pattern>的配置问题

1.带后缀(拓展名匹配)

带后缀,比如*.action *.do

 <url-pattern>*.adtion</url-pattern>

该种拦截方式比较精确

2.以 / 开始(全路径匹配)

/ 不会拦截 .jsp,但是会拦截.html等静态资源
原因:
因为tomcat容器中有一个web.xml(父),你的项目中也有一个web.xml(子),是一个继承关系
父web.xml中有一个DefaultServlet, url-pattern 是一个 /
此时我们自己的web.xml中也配置了一个 / ,覆写了父web.xml的配置

为什么不拦截.jsp呢?
因为父web.xml中有一个JspServlet,这个servlet拦截.jsp文件,而我们并没有覆写这个配置,
所以springmvc此时不拦截jsp,jsp的处理交给了tomcat

3.以 / 开始,以 * 结束(部分路径匹配)

/* 拦截所有,包括.jsp

 <!-- 拦截aaa目录下的所有-->
 <url-pattern>/aaa/*</url-pattern>

4.只有一个 /(缺省路径)

通常情况访问html页面时,首先从当前web项目的web.xml文件寻找匹配的路径,如果没有找到,再从tomcat默认的web.xml匹配,将使用缺省的servlet。

tomcat获得匹配路径时,优先顺序为:2 > 3 > 1 > 4

猜你喜欢

转载自blog.csdn.net/xueguchen/article/details/108654477