spring mvc - 对静态资源的处理

spring对静态资源文件(js css htm html jpg jepg png bmp)等的处理方式如下:

一、交由上级web容器处理,在web.xml中的org.springframework.web.servlet.DispatcherServlet 配置之前加入如下代码:

<servlet-mapping>   
    <servlet-name>default</servlet-name>   
    <url-pattern>*.css</url-pattern>   
</servlet-mapping>

根据不同的资源文件制定不同的映射机制,其中servlet-name在tomcat中默认是default,该servlet在tomcat\config\web.xml文件中默认配置,不同的应用服务器对应的静态资源文件处理的servlet名称不尽相同,如下:

tomcat,jboss,glassfish,jetty : defaut;  
weblogic : FileServlet;  
websphere : SimpleFileServlet;  
resin : resin-file;  
GAE : _ah_default

二、交由spring mvc:resources 处理
在dispatchServlet.xml文件中增加
<mvc:resources location="/WEB-INF/resource/" mapping="/resource/**"/>
该方式虽然静态资源文件可以访问了,但是如果系统配置了通配符的拦截器,静态资源还是会被拦截器拦截,如下:

<mvc:interceptors>  
    <mvc:interceptor>  
        <mvc:mapping path="/*"/>   
    <bean  class="com.xinlong.cms.front.interceptor.CmsFrontInterceptor"></bean>  
    </mvc:interceptor>  
</mvc:interceptors>

因此需要修改,如下:

<mvc:interceptors>  
    <mvc:interceptor>  
        <mvc:mapping path="/*"/>   
        <mvc:exclude-mapping path="/resource/**"/>  
    <bean  class="com.xinlong.cms.front.interceptor.CmsFrontInterceptor"></bean>  
    </mvc:interceptor>  
</mvc:interceptors>

到此还有个问题mvc:exclude-mapping 标签不被spring-mvc-3.0.xsd支持,该配置在spring-mvc-3.2.xsd中,可以通过http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd获取,因此需要在spring-mvc-3.0.xsd文件中增加该标签,处理办法很简单,从网上下载spring-mvc-3.2.xsd,找到标签后,再找到spring.web.servlet-3.0.5.jar中的spring-mvc-3.0.xsd文件,将标签加入即可

时间: 2024-10-15 04:07:25

spring mvc - 对静态资源的处理的相关文章

Spring MVC 处理静态资源文件

摘要: 三个方案: 1.方案一:激活Tomcat的defaultServlet来处理静态文件 2.方案二: 在spring3.0.4以后版本提供了mvc:resources (需要配置annotation-driven) 3.方案三 ,使用<mvc:default-servlet-handler/>(需要配置annotation-driven) 一.问题:Spring MVC 处理静态资源文件 1. 以下情况需要先了解 1.1  如果你的DispatcherServlet拦截 *.do这样的U

【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html http://www.cnblogs.com/fangqi/archive/2012/10/28/2743108.html 优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用

Spring mvc 拦截静态资源配置管理

springMVC的<mvc:resources mapping="***" location="***">标签是在spring3.0.4出现的,主要是用来定义对静态资源的访问. 直接在spring mvc.xml文件中加入下面配置即可访问静态资源 <mvc:resources location="/" mapping="/**/*.html"/> <mvc:resources location=

Spring MVC 读取静态资源时404错误

背景:web.xml配置时拦截策略是拦截所有请求: <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-

spring mvc访问静态资源的问题, .js .jpg .css

如果你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/",拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 方案一:激活Tomcat的defaultServlet来处理静态文件 Xml代码 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>

Spring MVC配置静态资源和资源包教程

1- 介绍 这篇教程文章是基于: Spring 4 MVC 2- 创建一个项目 File/New/Other.. 输入: Group ID: com.yiibai Artifact ID: SpringMVCResource Package: com.yiibai.springmvcresource 项目被创建以后如下: 不要担心有错误消息在项目被创建时.原因是,我们还没有声明 Servlet 库. 注意: Eclipse 4.4(Luna)在创建 Maven 项目结构时可能是有错误的.需要修复

Spring MVC 处理静态资源不能访问问题

在web.xml文件中加入如下代码: <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.

Spring boot 默认静态资源路径与手动配置访问路径的方法

这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 server.port=8081 ##默认前缀 spring.mvc.view.prefix=/ ## 响应页面默认后缀 spring.mvc.view.suffix=.html # 默认值为 /** spring.mvc.static-path-pattern=/** # 这里设置要指向的路径,多个

Spring Boot 的静态资源处理

做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问.但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一.最笨的方式 我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目