防止SpringMVC拦截器拦截js等静态资源文件的解决方法

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

创新互联建站长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为顺昌企业提供专业的成都网站制作、做网站,顺昌网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

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

 
 
 



  
    
    
    
    
    
    
    
    
    
    
    
  


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

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

 

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

  
  default  
  *.js  
  *.css  
  /assets/*"  
  /images/*  

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

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


  SpringMVC
  org.springframework.web.servlet.DispatcherServlet
  
    contextConfigLocation
    classpath:spring-mvc.xml
  
  1
  true


  SpringMVC
  *.action

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

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

第一种方案配置比较臃肿,多个拦截器时增加文件行数,不推荐使用;

第二种方案使用默认的Servlet进行资源文件的访问,Spring拦截所有请求,然后再将资源文件交由默认的Sevlet进行处理,性能上少有损耗;

第三种方案Spring只是处理以'.action'结尾的访问,性能上更加高效,但是再访问路径上必须都以'.action'结尾,URL不太文雅;

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


本文名称:防止SpringMVC拦截器拦截js等静态资源文件的解决方法
标题URL:http://myzitong.com/article/jsocsc.html