springmvc中的静态资源处理方式


首先要明确的是不是任何时候都要配置静态资源的访问的,只有当自定义的中央调度器的servlet的url-pattern映射范围为 / 时,才要配置,使用了映射范围 / ,后,就不需要将controller方法指定为什么*.do等带后缀的url了。

当自定义一个servlet后,在里边设置中央调度器后,之前的中央调度器所在的servlet的映射范围为:*.do,默认只处理.do结尾的请求。
而我们知道,Tomcat服务器自身也有servlet,用于处理静态资源,如html、js、css、图片等。但如果将中央调度器所在的servlet的映射范围改为 / ,则自定义的这个中央调度器的servlet会覆盖Tomcat服务器的映射范围,导致所有静态资源也由自定义的servlet来处理,而自定义的servlet没有处理静态资源的能力,则会报404找不到资源。

针对将自定义的servlet的url-pattern映射范围改为 / 后,处理静态资源的问题出错,有如下解决方案(2常用):

方式1:使用< mvc:default-servlet-handler/>(了解)

这种方式的缺点是任然依赖Tomcat服务器处理静态资源

<!--    方式1-->
<!--    这种方法配合web.xml中的自定义servlet映射范围为 /  的情况,类似于框架创建了一个对象,这个对象可以将自定义的servlet不能处理的资源转发给了Tomcat的servlet进行处理-->
    <mvc:default-servlet-handler />

方式2:使用< mvc:resources/>(掌握)

这种方式可以不依赖服务器的servlet处理静态资源!
将所有静态资源放在static目录下:
在这里插入图片描述
在springmvc.xml中配置:

<!--    方式2-->
<!--    不依赖Tomcat的servlet处理静态资源,框架自身创建对象进行处理,下面既包含了创建对象,也包含了指定待处理的静态资源的位置-->
    <mvc:resources mapping="/static/**" location="/static/" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毋小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值