spring mvc - 对静态资源的处理css
spring对静态资源文件(js css htm html jpg jepg png bmp)等的处理方式以下:html
1、交由上级web容器处理,在web.xml中的org.springframework.web.servlet.DispatcherServlet 配置以前加入以下代码:java
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping>
根据不一样的资源文件制定不一样的映射机制,其中servlet-name在tomcat中默认是default,该servlet在tomcat\config\web.xml文件中默认配置,不一样的应用服务器对应的静态资源文件处理的servlet名称不尽相同,以下:web
tomcat,jboss,glassfish,jetty : defaut; weblogic : FileServlet; websphere : SimpleFileServlet; resin : resin-file; GAE : _ah_default
2、交由spring mvc:resources 处理
在dispatchServlet.xml文件中增长
<mvc:resources location="/WEB-INF/resource/" mapping="/resource/**"/>
该方式虽然静态资源文件能够访问了,可是若是系统配置了通配符的拦截器,静态资源仍是会被拦截器拦截,以下:spring
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/*"/> <bean class="com.xinlong.cms.front.interceptor.CmsFrontInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
所以须要修改,以下:spring-mvc
<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文件,将标签加入便可tomcat