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不太文雅;

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

转载于:https://www.cnblogs.com/xifenglou/p/8422272.html

springmvc 静态资源 配置相关推荐

  1. springmvc静态资源;mvc:default-servlet-handler后Controller失效

    springmvc静态资源;mvc:default-servlet-handler后Controller失效 web.xml配置<url-pattern>/</url-pattern ...

  2. SpringMVC 静态资源CSS,JS访问不了 解决方法

    SpringMVC 静态资源CSS,JS访问不了 解决方法 参考文章: (1)SpringMVC 静态资源CSS,JS访问不了 解决方法 (2)https://www.cnblogs.com/peiy ...

  3. springMVC静态资源访问不到

    还久没使用springMVC,空闲的时间搭了一个SSJ环境,发现静态资源全部没有找到,但是我的路径没有问题啊,最后发现是这些资源被拦截了 <!-- 配置SpringMvc 前端控制器 --> ...

  4. springmvc静态资源拦截与访问

    首先要配置tomcat的web.xml <init-param> <param-name>listings</param-name> <param-value ...

  5. default-servlet-handler 无法访问html,default-servlet-handler不生效缘由,springmvc静态资源拦截方案比较...

    springmvc为何要拦截静态资源? 简单来讲,为了请求的url不带相似*.action,*.do,好比http://localhost:8080/system/index.action,sprin ...

  6. SpringMVC静态资源问题

    在web.xml配置不需要拦截 <servlet-mapping> <servlet-name>default</servlet-name> <url-pat ...

  7. 关于springmvc静态资源常被忽视,有可能致命的点

    我的项目用的是ssm,静态资源访问用的Springmvc默认的 <mvc:default-servlet-handler/> ,一直没有问题,今天突然给我报了这样一个错: Resource ...

  8. SpringMVC_3.请求映射与静态资源处理

    1.请求映射 介绍:         请求到 web.xml ,经过 SpringMVC的分发器对象 [ DispatcherServlet ]  ,将请求转到 SpringMVC 框架中,通过 @R ...

  9. SpringMVC静态资源配置

    SpringMVC静态资源配置 项目使用了springmvc开发时,需要配置springmvc对静态资源的映射,否则无法请求到项目中的静态资源,配置方式如下 1.在SpringMVC的配置文件中使用m ...

最新文章

  1. Hadoop教程(五):Flume、Sqoop、Pig、Hive、OOZIE
  2. Py之ipython:Python库之ipython的简介、安装、使用方法详细攻略
  3. logistic regression中的cost function选择
  4. HUST 1541 Student’s question
  5. 怎么把PPT变成word文档
  6. LiveVideoStackCon深圳-精选最新多媒体技术方案
  7. 【POJ 1679 The Unique MST】最小生成树
  8. linux进程配置异常中断自动重启_Linux系统配置及服务管理 (四)进程管理
  9. mysql 导出dmp文件_一文带你了解MySQL主从复制(Master-Slave)
  10. python怎么发布pycharm_如何使用PyCharm将代码上传到GitHub上(图文详解)
  11. 从补丁到Root——CVE-2014-4323分析
  12. python app自动签到器_Python实现自动签到脚本功能
  13. cmos和ttl_TTL和CMOS的区别详解
  14. 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
  15. 华为机试:VLAN资源池
  16. 4月计算机领域的国际会议,计算机领域国际会议分区表
  17. 互联网产品为什么能让用户“上瘾”,常用套路是什么?
  18. mysql57免安装教程_mysql5.7免安装版配置教程
  19. PHP通过CURL爬取飞猪国际机票
  20. nopi word to html,C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)...

热门文章

  1. linux设置mysql字符集_linux修改mysql字符集编码
  2. socket.io php 聊天室,WebSocket学习(一)——基于socket.io实现简单多人聊天室
  3. linux sleeping进程多_一文掌握Linux实战技能系统管理篇
  4. 软件测试之python面试题_常见Python面试题整理带答案
  5. button上传替换file上传按钮,并显示图片缩略图,纯jsp操作
  6. CCF NOI1072 爬楼梯
  7. UFT开发代码实例:将Excel中的数据保存为数组
  8. Hadoop 源码目录树
  9. Uva1343-The Rotation Game-IDA*算法
  10. C++ string类常用函数