1.默认的访问的URL都会被DispatcherServlet所拦截,好比拦截规则定义为/;
也就是说,全部的请求都会被springMVC拦截,根据HandlerMapping的配置来匹配对应的URL映射,而对于静态资源来讲,默认的Spring MVC是没有注册匹配规则的,此时若你去请求一个静态资源,则会报404错误。
2.设置静态访问资源目的就是不去拦截该urlweb
web.xmlspring
<!-- 配置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.xmlmvc
<!-- 静态资源访问 -->
<mvc:resources location="/img/" mapping="/img/**" />
<!-- mapping:映射,location:本地资源路径,必定要是webapp根目录下,注意必须是webapp根目录下的路径。 **,它表示映射/img/下的全部文件 -->
测试:为了方便测试,我直接访问图片路径,由于配置的路径规则是/,因此对全部的url都会路拦截.
测试一:不配静态资源访问,
app
测试二:配静态资源访问,能够不被拦截规则拦截webapp