spring静态资源不进行过滤

16人阅读 评论(0) 收藏 举报
分类:

SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决:

方案一、拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml)

复制代码
 1 <mvc:resources location="/" mapping="/**/*.js"/>  
 2 <mvc:resources location="/" mapping="/**/*.css"/>  
 3 <mvc:resources location="/assets/" mapping="/assets/**/*"/>  
 4 <mvc:resources location="/images/" mapping="/images/*" cache-period="360000"/>
 5 
 6 <mvc:interceptors>
 7     <mvc:interceptor>
 8         <mvc:mapping path="/**/*"/>
 9         <mvc:exclude-mapping path="/**/fonts/*"/>
10         <mvc:exclude-mapping path="/**/*.css"/>
11         <mvc:exclude-mapping path="/**/*.js"/>
12         <mvc:exclude-mapping path="/**/*.png"/>
13         <mvc:exclude-mapping path="/**/*.gif"/>
14         <mvc:exclude-mapping path="/**/*.jpg"/>
15         <mvc:exclude-mapping path="/**/*.jpeg"/>
16         <mvc:exclude-mapping path="/**/*login*"/>
17         <mvc:exclude-mapping path="/**/*Login*"/>
18         <bean class="com.luwei.console.mg.interceptor.VisitInterceptor"></bean>
19     </mvc:interceptor>
20 </mvc:interceptors>
复制代码

 

方案二、使用默认的静态资源处理Servlet处理静态资源(涉及spring-mvc.xml, web.xml)

在spring-mvc.xml中启用默认Servlet

1 <mvc:default-servlet-handler/>

在web.xml中增加对静态资源的处理

复制代码
1 <servlet-mapping>    
2     <servlet-name>default</servlet-name>    
3     <url-pattern>*.js</url-pattern>    
4     <url-pattern>*.css</url-pattern>    
5     <url-pattern>/assets/*"</url-pattern>    
6     <url-pattern>/images/*</url-pattern>    
7 </servlet-mapping> 
复制代码

但是当前的设置必须在Spring的Dispatcher的前面

 

方案三、修改Spring的全局拦截设置为*.do的拦截(涉及web.xml)

复制代码
 1 <servlet>
 2     <servlet-name>SpringMVC</servlet-name>
 3     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 4     <init-param>
 5         <param-name>contextConfigLocation</param-name>
 6         <param-value>classpath:spring-mvc.xml</param-value>
 7     </init-param>
 8     <load-on-startup>1</load-on-startup>
 9     <async-supported>true</async-supported>
10 </servlet>
11 <servlet-mapping>
12     <servlet-name>SpringMVC</servlet-name>
13     <url-pattern>*.do</url-pattern>
14 </servlet-mapping>
复制代码

这样设置,Spring就会只针对以'.do'结尾的请求进行处理,不再维护静态资源

 

针对这三种方案的优劣分析:

第一种方案配置比较臃肿,多个拦截器时增加文件行数,不推荐使用;第二种方案使用默认的Servlet进行资源文件的访问,Spring拦截所有请求,然后再将资源文件交由默认的Sevlet进行处理,性能上少有损耗;第三种方案Spring只是处理以'.do'结尾的访问,性能上更加高效,但是再访问路径上必须都以'.do'结尾,URL不太文雅;

综上所述,推荐使用第二和第三中方案

查看评论

静态资源访问与拦截

静态资源访问映射: 先调整web.xml中的DispatcherServlet的配置,使其可以捕获所有的请求: 1 2 3 4 5 6 7 8 9     ...
  • cws1214
  • cws1214
  • 2016-09-11 10:07:36
  • 4454

Spring MVC中css等静态资源被拦截解决办法

这段时间在学spring mvc ,着实吃了不少苦,今天将遇到的配置文件问题记录一下 Spring MVC中css等静态资源被拦截,3.0.5以上版本可在xxxx-servlet.xml中添加如下...
  • shuaicenglou3032
  • shuaicenglou3032
  • 2017-03-07 19:34:54
  • 651

Spring MVC 自学杂记(七) -- 去掉静态资源的拦截

Spring MVC 1、当springMVC配置前端控制器拦截的所有请求时,去掉静态资源的拦截 1、前端控制器的配置 springMVC or...
  • mybook201314
  • mybook201314
  • 2017-06-20 11:22:19
  • 2397

关于使用security和静态资源被拦截的问题

之前的博客中我给过如何在springboot中整合security,当时写的界面很简单,没有CSS样式,更谈不上静态资源,而现在在实际开发过程中经理让我们用security来开发,界面肯定不可能就是两...
  • malachi95
  • malachi95
  • 2016-12-14 16:32:06
  • 5197

拦截器拦截静态资源的三种解决办法

SpringMVC提供&amp;lt;mvc:resources&amp;gt;来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决:方案一、拦截...
  • u011402896
  • u011402896
  • 2018-02-06 17:22:11
  • 246

SpringMVC的静态资源拦截

修改在WebContent下的springmvc-servlet.xml,在beans节点下新增: 表示拦截WebContent下的css文件夹、js文件...
  • cg_Amaz1ng
  • cg_Amaz1ng
  • 2017-10-31 11:07:15
  • 60

springmvc配置不拦截静态资源

mvc:resources mapping="/js/**" location="/js/"/> mvc:resources mapping="/styles/**" location="/style...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2015-12-30 20:04:51
  • 3046

强大的<em>静态资源</em>上传

强大的<em>静态资源</em>上传图片html,text文件的上传... 强大的<em>静态资源</em>上传图片html,text文件的上传 综合评分:0 ...<em>静态资源</em>访问与<em>拦截</em> 解决<em>静态资源</em>不能加载的三种方法? ...
  • 2018年04月17日 00:00

图片等静态资源在登录前被拦截

今天在为一个登录页面添加背景图片时,发现了这个问题,登录前图片无法显示,右键复制图片路径再转到,直接回到了登录页面,确定为图片被shiro拦截. 解决方法:在spring-shiro.xml中,加上不...
  • pea378
  • pea378
  • 2017-03-16 15:24:05
  • 1436
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 1743
    排名: 2万+
    最新评论