Jalena Blog

  • 首页
  • 程序开发
    • Java
    • Spring
    • SpringBoot
    • SpringMvc
    • Python
    • Odoo
    • C#
    • SQL
    • Web
    • Linux
  • 移动设备
    • Android
    • Router
  • 杂七杂八
    • 我的废话
    • 音频
    • 视频
    • 常用软件
  • 关于
  1. 首页
  2. 软件开发
  3. Java
  4. 正文

Spring 静态资源过滤

2017-08-20

如果web.xml配置的拦截器如下

<!-- 配置 SpringMVC DispatcherServlet -->
<servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:config/applicationContext-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
    <!--<multipart-config>-->
    <!--<location>/</location>-->
    <!--<max-file-size>2097152</max-file-size>-->
    <!--<max-request-size>4194304</max-request-size>-->
    <!--</multipart-config>-->
</servlet>
<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

那么,静态资源如js、css、图片等都会经过org.springframework.web.servlet.DispatcherServlet过滤,DispatcherServlet当然处理不了这些文件,所以这些文件就发送不到客户端了。

这样我们可以使用spring的静态资源处理器,相当于告诉SpringMVC,凡是请求路径为/assets/开始的,都自动映射到/resources目录下面对应的文件上去。

<mvc:resources mapping="/assets/**" location="/resources/"/>

同时还有一个地雷,若你配置了拦截器,且拦截的是 /** ,那么你就必须换个处理方式了。

1、使用拦截器的排除 <mvc:exclude-mapping path="你的静态资源路径" />

2、交由web容器处理,在org.springframework.web.servlet.DispatcherServlet之前加入如下了内容

<servlet-mapping>    
    <servlet-name>default</servlet-name>    
    <url-pattern>/js/*</url-pattern>    
    <url-pattern>/css/*</url-pattern>    
    <url-pattern>/images/*</url-pattern>    
    <url-pattern>/fonts/*</url-pattern>    
</servlet-mapping>

内容根据情况更改!

当然,我们还可直接让上游来直接处理静态资源,这时我们只需要在springmvc配置中加入

<mvc:default-servlet-handler/>

然后再到web.xml里面做映射即可,映射内容如下

<servlet-mapping>    
    <servlet-name>default</servlet-name>    
    <url-pattern>/js/*</url-pattern>    
    <url-pattern>/css/*</url-pattern>    
    <url-pattern>/images/*</url-pattern>    
    <url-pattern>/fonts/*</url-pattern>    
</servlet-mapping>
标签: java SpringMvc
最后更新:2019-01-28

Jalena

原创内容,转载请注明出处! 部分内容来自网络,请遵守法律适用!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

【腾讯云】云服务器特惠热卖中
标签聚合
java Centos odoo 其他 生活 wordpress docker MySql
分类
  • Android / 4篇
  • C# / 10篇
  • Codec / 9篇
  • Conversion / 14篇
  • Editing / 16篇
  • Java / 47篇
  • Javascript / 3篇
  • Linux / 30篇
  • Odoo / 25篇
  • Python / 6篇
  • SQL / 30篇
  • Web / 3篇
  • Windows / 4篇
  • 我的日记 / 10篇
  • 杂七杂八 / 93篇
  • 软件开发 / 72篇
  • 非线性编辑 / 1篇

COPYRIGHT © 2026 Jalena Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备17025376号