spring mvc - 对静态资源的处理

pring mvc - 对静态资源的处理

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

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

?
1
2
3
4
<servlet-mapping>   
    <servlet-name>default</servlet-name>   
    <url-pattern>*.css</url-pattern>   
</servlet-mapping>

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

?
1
2
3
4
5
tomcat,jboss,glassfish,jetty : defaut;  
weblogic : FileServlet;  
websphere : SimpleFileServlet;  
resin : resin-file;  
GAE : _ah_default

过滤器配置多个url-pattern

过滤器配置多个url-pattern
 
<filter-mapping>
     <filter-name>MohrssFilter</filter-name>
     <url-pattern>/nav.jsp</url-pattern>
 </filter-mapping>
 <filter-mapping>
     <filter-name>MohrssFilter</filter-name>
     <url-pattern>/sys/home/sys_home_main/sysHomeSearch_script.jsp</url-pattern>
 </filter-mapping>
 <filter-mapping>
     <filter-name>MohrssFilter</filter-name>
     <url-pattern>/hrt/mohrss/student/tree1.jsp</url-pattern>
 </filter-mapping>


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

?
1
2
3
4
5
6
<mvc:interceptors>  
    <mvc:interceptor>  
        <mvc:mapping path="/*"/>   
    <bean  class="com.xinlong.cms.front.interceptor.CmsFrontInterceptor"></bean>  
    </mvc:interceptor>  
</mvc:interceptors>

因此需要修改,如下:

?
1
2
3
4
5
6
7
<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文件,将标签加入即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章