转发 spring 过滤静态资源的2种方法

转发自 https://www.cnblogs.com/freeweb/p/5175188.html

spring 过滤静态资源的2种方法


 SpringMVC如果过滤器过滤范围配置了/或者/*,那么框架会过滤所有请求,包括自己写的请求和静态资源请求,这样静态资源就不能正常加载,包括js文件、css文件、图片资源访问的时候都会出现404页面,下面就来配置不过滤静态资源的方法

  第一种方法是最原生的,因为开始Spring核心过滤器过滤的路径是项目下所有路径,这个时候要改成过滤指定后缀即可,比如*.do,*.html等后缀,这样自己编写controller的时候全部主动设置请求为特定后缀,这样静态资源和编写的请求就可以区分开了
 <!-- 访问静态资源 -->
36     <mvc:resources location="/image" mapping="/**"/>
  第二种方法是如果我们打算编写没有后缀的请求,比如/hello这种,上面方法是有限制的,所以这个时候SpringMVC还是过滤/*这样的全部请求,我们在web.xml中配置静态资源优先过滤,这个时候服务器首先加载web.xml提前拦截静态资源请求,然后SpringMVC过滤器就拦截不到这些请求了,所以tomcat就可以正常使用静态资源了,在web.xml中添加如下配置,前后均可:

复制代码
 1   <servlet-mapping>
 2       <servlet-name>default</servlet-name>
 3       <url-pattern>*.jpg</url-pattern>
 4   </servlet-mapping>
 5   <servlet-mapping>
 6       <servlet-name>default</servlet-name>
 7     <url-pattern>*.js</url-pattern>
 8   </servlet-mapping>
 9   <servlet-mapping>
10     <servlet-name>default</servlet-name>
11     <url-pattern>*.css</url-pattern>
12   </servlet-mapping>
复制代码
  如果有更多的资源需要过滤,比如.png,.gif等等,都可以继续添加配置,也比较方便

  

猜你喜欢

转载自blog.csdn.net/jintianhen1/article/details/81303081