RESTful风格处理静态资源

使用REST风格,需要在web.xml中配置DispatcherServlet的映射路径

<servlet>  
<servlet-name>springmvc</servlet-name>  
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
<load-on-startup>1</load-on-startup>  
</servlet>  
    <servlet-mapping>  
        <servlet-name>springmvc</servlet-name>  
        <strong><url-pattern>/</url-pattern></strong>  
    </servlet-mapping>  

此时,对于项目中引入的css,js等静态资源也会进行拦截,而没有相应的Servlet进行处理,故需要使用专门的静态资源处理Servlet进行处理。

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

不同的 servlet 容器/应用服务器,处理这些静态资源的 servlet 的名字不大一样:
Tomcat, Jetty, JBoss, and GlassFish:默认 Servlet 名字为 "default";
Google App Engine:默认 Servlet 名字为 "_ah_default";
Resin:默认 Servlet 名字为 "resin-file";
WebLogic:默认 Servlet 名字为 "FileServlet";
WebSphere:默认 Servlet 名字为 "SimpleFileServlet";
方法二:使用spring提供的servlet进行处理(对于spring3.0.4以上的版本)
在*-servlet.xml中配置:

<mvc:annotation-driven />  
<!-- 对静态资源的访问 -->  
<mvc:resources mapping="/css/**" location="/css/" />  
<mvc:resources mapping="/image/**" location="/image/" />  
<mvc:resources mapping="/js/**" location="/js/" />  

mapping:表示页面中使用到的路径
location:表示从该路径下进行查找
以上的配置:css,image,js放置在webapp目录下,页面中使用时:localhost:8080/css/aaa.css

注意:对于方法二,在tomcat下可以正常使用,但在resin下静态资源仍然找不到,最后发现,直接使用如下的配置就可以兼容tomcat和resin了

<mvc:default-servlet-handler />  

这种配置只支持有限的一些容器,对于spring不支持的容器,需要配置defaule-servlet-name进行指定。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,055评论 6 342
  • 0 系列目录# WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 本...
    七寸知架构阅读 14,752评论 22 190
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,935评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,445评论 11 349