SpringMVC使用RESTful风格后对静态资源的处理

    SpringMVC使用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进行处理(对于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进行指定。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值