SpringMVC静态资源过滤

SpringMVC静态资源过滤

相信很多小伙伴遇到过页面加载静态资源出现404的情况 这是为什么呢?
因为你的静态资源没有过滤,服务器默认根据静态资源的路径去DispatcherServlet找相对应的请求,最后找不到,就报404了.
下面就来介绍两张静态资源过滤的方法:
1.在web.xml中配置SpringMVC的 前端控制器时有这个节点,这个节点的值一般有两个写法:

1、*.do
在没有特殊要求的情况下,SpringMVC 的前端控制器 DispatcherServlet 的常使用后辍匹配方
式,可以写为*.do 或者 *.action, *.mvc 等。
2、/
可以写为/,但是 DispatcherServlet 会将向静态内容--例如.css、.js、图片等资源的获取请求
时,也会当作是一个普通的 Controller 请求。前端控制器会调用处理器映射器为其查找相应的处理器。肯
定找不到啊,所以所有的静态资源获取请求也均会报 404 错误。

那如果我们是第二种"/"的情况,我们在SpringMVC的配置文件中加上如下内容:

<mvc:default-servlet-handler/>

<!--声 明 了 <mvc:default-servlet-handler /> 后 ,springmvc框架会在容器中创建
DefaultServletHttpRequestHandler处理器对象。该对象会对所有进入 DispatcherServlet的URL
进行检查。如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet 处理。
一般的服务器都有默认的 Servlet。例如咱们使用的Tomcat服务器中,有一个专门用于处理静态资源
访问的 Servlet 名叫 DefaultServlet。其<servlet-name/>为default。可以处理各种静态资源访问
请求。该Servlet注册在 Tomcat 服务器的 web.xml 中。在 Tomcat安装目录/conf/web.xml。-->

或者还有一种方法指定过滤某个包中的资源

<mvc:resources location="/js/" mapping="/js/**" />
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />

在 Spring3.0 版本后,Spring 定义了专门用于处理静态资源访问请求的处理器ResourceHttpRequestHandler。并且添加了< mvc:resources/ >标签,专门用于解决静态资源无法访问问题。

这样网页就不会再报图片,js文件,css文件找不到的原因啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值