springmvc中配置了前端控制器时,静态资源访问不到的问题

如果springmvc工程的web.xml中配置了前端控制器,且其路径为’/’ 如下

  <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

那么,有可能在你访问工程中的静态资源时,会访问失败。
原因是:如果你访问的地址在web.xml中没有做单独配置,且url-pattern的值为’/’,即缺省值,找不到mapping的请求都会被前端控制器捕获,并由前端控制器,继续在controll中查找,是否有匹配的mapping.
如果最终没有找到匹配mapping,那就什么也不做,即找不到资源。
作为静态资源,我们一般是直接存放在工程目录下,没有配置mapping.此时若想访问资源,那就有两种方法。


方法一:在spring-mvc.xml配置开放资源路径,即访问这些路径时,springmvc不会再处理,而是直接可以访问。

<!--    配置开放资源访问 -->
    <mvc:resources mapping="/jquery/**" location="/jquery/"/>

mapping="/jquery/**“是配置要访问的地址
location=”/jquery/"是配置要访问的资源的路径

方法二:在spring-mvc.xml配置默认处理方式

<!--    配置当springmvc找不到匹配的mapping时,把请求交由原始容器处理,
我们的原始容器一般是tomcat,tomcat可以直接访问这些静态资源 -->
    <mvc:default-servlet-handler/>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值