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

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

springmvc 静态资源 配置的更多相关文章

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

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

  2. springMVC 静态资源加版本号

    springMVC 静态资源加版本号 http://blog.csdn.net/zhangt85/article/details/42126275

  3. springMvc静态资源拦截问题

    测试的时候发现:如果直接访问web项目的html等静态资源,不能访问 原因如下: 当web.xml中url-pattern配置为"/"时,会导致系统中的静态资源被拦截 如何解决: ...

  4. SpringMVC静态资源处理[转]

    SpringMvc配置DispatchServlet对所有请求进行过滤: <servlet> <servlet-name>mvc-dispatcher</servlet- ...

  5. springMVC静态资源

    静态资源放在哪 静态资源不要放在WEB-INF里面,放在和WEB-INF同级的目录里,一起放在webapp下,原生tomcat中,这里的资源可以直接访问. springmvc配置怎么写 <!-- ...

  6. springmvc静态资源处理

    1.配置springmvc拦截规则,注意不能拦截 /*,这样的话,会对所有请求默认拦截,而应该拦截 /, 这样servlet会先走默认的拦截规则,默认拦截规则找不到后,才会走 / 这个规则,这样静态资 ...

  7. springMVC静态资源访问

    springMVC默认是访问不到静态资源的,如css,js等,需要在xml里进行配置 保证已经配置好了 web.xml, <!-- Spring MVC servlet --> <s ...

  8. SpringMVC静态资源拦截的问题

    通常在web.xml中的核心控制器的DispatcherServlet中的url-pattern属性配置成类似“/”的拦截路径,但是会出现静态资源找不到的问题,比如js脚本.图片.css等无法加载,那 ...

  9. SpringMvc静态资源加载出错

    使用mvc:resource配置 web.xml配置是rest风格的/ 服务器启动没问题 访问地址是报404 另外用了default-servlet的方法加载,服务器启动没错,jsp页面加载静态资源要 ...

随机推荐

  1. iOS之限制TextField的输入长度

    网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入长度的方法.我所采用的并不是监听方法而是最不同的 ...

  2. 【Linux】文件、目录权限及归属

    访问权限: 可读(read):允许查看文件内容.显示目录列表 可写(write):允许修改文件内容,允许在目录中新建.移动.删除文件或子目录 可执行(execute):允许运行程序.切换目录 归属: ...

  3. 基于 HTML5 Canvas 的 3D 渲染引擎构建机架式服务器

    前言 今天找到了 HT 的官网里的 Demo 网站( http://www.hightopo.com/demos/index.html ),看的我眼花缭乱,目不暇接. 而且 HT 的用户手册,将例子和 ...

  4. 自学tensorflow——1.框架初步了解以及构建简单的计算图计算

    1.初步了解 tensorflow是谷歌的一款开源深度学习框架.运行前,需要先定义好计算图,最后通过会话启动计算图,这么做的目的是为了防止数据在python和c++(tensorflow底层)传输的时 ...

  5. 学习python的一些脚本

    python生产者与消费者模型 # -*- coding:utf-8 -*- import threading import random import time gMoney = 1000 gLoc ...

  6. Asp.Net Core存储Cookie不成功

    Asp.Net Core存储Cookie不成功 Asp.Net Core2.1生成的项目模板默认实现了<>,所以设置存储Cookie需要做一些处理. 1.第一种是在Startup的Conf ...

  7. Vivado 调用自定义IP核

    关于Vivado如何创建自定义IP核有大量的参考文章,这里就不多加阐述了,本文目的主要是解决如何在新建工程中引用其它工程已经自定义封装好的IP核,从而实现自定义IP核的灵活复用. 举个例子,我们的目标 ...

  8. Verilog HDL 使用规范(一)

    本博文参考:<大规模逻辑设计指导书>,对于写出规范的代码,培养良好的代码风格颇有裨益. wire and register 一个reg变量只能在一个always语句中赋值: 这个说明至关重 ...

  9. Flex copy and paste

    <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx ...

  10. 20155206 2016-2017-2 《Java程序设计》第三周学习总结

    20155206 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 两个基本标准类:java.util.Scanner , java.math.BigDecim ...