1.默认的访问的URL都会被DispatcherServlet所拦截,比如拦截规则定义为/;
也就是说,所有的请求都会被springMVC拦截,根据HandlerMapping的配置来匹配对应的URL映射,而对于静态资源来说,默认的Spring MVC是没有注册匹配规则的,此时若你去请求一个静态资源,则会报404错误。
2.设置静态访问资源目的就是不去拦截该url
web.xml
<!-- 配置springMVC -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- contextConfigLocation 是固定的 -->
<param-name>contextConfigLocation</param-name>
<!-- 配置读取路径-->
<param-value>classpath*:config/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<!-- 配置拦截规则-->
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-servlet.xml
<!-- 静态资源访问 -->
<mvc:resources location="/img/" mapping="/img/**" />
<!-- mapping:映射,location:本地资源路径,一定要是webapp根目录下,注意必须是webapp根目录下的路径。 **,它表示映射/img/下的所有文件 -->
测试:为了方便测试,我直接访问图片路径,因为配置的路径规则是/,所以对所有的url都会路拦截.
测试一:不配静态资源访问,
测试二:配静态资源访问,可以不被拦截规则拦截