SpringMVC使用RESTful风格后对静态资源的处理
2016-04-19 11:04
288 查看
SpringMVC使用REST风格,需要在web.xml中配置DispatcherServlet的映射路径如下:
此时,对于项目中引入的css,js等静态资源也会进行拦截,而没有相应的Servlet进行处理,故需要使用专门的静态资源处理Servlet进行处理。
方法一:使用容器提供的Servlet进行处理(对于spring3.0.4以前的版本)
在web.xml中激活容器静态资源Servlet
不同的 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中配置:
mapping:表示页面中使用到的路径
location:表示从该路径下进行查找
以上的配置:css,image,js放置在webapp目录下,页面中使用时:localhost:8080/css/aaa.css
注意:对于方法二,在tomcat下可以正常使用,但在resin下静态资源仍然找不到,最后发现,直接使用如下的配置就可以兼容tomcat和resin了
<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进行处理(对于spring3.0.4以前的版本)
在web.xml中激活容器静态资源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进行指定。
相关文章推荐
- Struts2进行url重写
- Java汉字md5值不一致问题
- java.lang.IllegalArgumentException: Receiver not registered: null
- qq javax.mail.authenticationfailedexception
- 出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题的解决办法
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- springmvc文件上传
- JavaSE 扫雷项目展示
- MyEclipse取消自动跳到Console窗口
- 如何在eclipse jee中创建Maven project并且转换为Dynamic web project
- JAVA数组详解
- Java的类成员变量,实例变量,类变量,成员方法,实例方法,类方法
- <java API源码初体验>4---collection集合之HashSet原理分析
- java项目命名规范
- java环境安装(win7)
- Java——Socket编程(一)
- java环境安装(win7)
- spring mvc 异常处理Log4j配置
- itext-asian 生成pdf 之spring boot
- 可添加注释的有序java properties扩展类