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都会路拦截.
测试一:不配静态资源访问,
这里写图片描述

测试二:配静态资源访问,可以不被拦截规则拦截

这里写图片描述

posted on 2017-04-12 22:33  2637282556  阅读(102)  评论(0编辑  收藏  举报