到底是"/"还是"/*"
直接引入场景
一直配置springMVC的时候,都是直接copy过来用,如下
1 <!-- springmvc 入口,就是一个servlet --> 2 <servlet> 3 <servlet-name>spring_dispatch</servlet-name> 4 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 5 <init-param> 6 <param-name>contextConfigLocation</param-name> 7 <param-value>classpath:springconfig/spring-servlet.xml</param-value> 8 </init-param> 9 </servlet> 10 11 <servlet-mapping> 12 <servlet-name>spring_dispatch</servlet-name> 13 <!-- 这里 url 用/ 别用/* 否则jsp 页面不能访问 --> 14 <url-pattern>/</url-pattern> 15 </servlet-mapping>
但是在某一次 修改的时候,看到了这里就将
映射规则进行了修改
<url-pattern>/*</url-pattern>
然后就莫名的发现之前可以跑出来的jsp文件统统都是404 debug 了一下,全部都走映射了
就感觉很纳闷,一位之前就没这个概念
今天在这里记录下
/ 和 /*
我个人认为,这个映射跟 servlet 有关系,和springMVC没有关系,因此我们需要去了解servlet的映射关系
但是又考虑了一下jsp 和servlet 的关系,我感觉我有点思路了
jsp 也是 servlet
如果url pattern /* 就是映射所有请求都到这个servlet中
但是/就有选择权了,如果是jsp的话,就不映射,因为jsp自己回去映射自己的!!!
/* 是路径匹配
/ 完全匹配
针对SpringMVC做一个总结,/ 不会映射jsp /*映射所有请求 *.do 只映射 .do的请求