<mvc:default-servlet-handler/>和<servlet-mapping>区别

<mvc:default-servlet-handler/>和<servlet-mapping>区别

http://img1.sycdn.imooc.com//climg/5dd8dc5f084e4d2d09850430.jpghttp://img1.sycdn.imooc.com//climg/5dd8dc750871e36710630681.jpg<mvc:default-servlet-handler/>这不是过滤了静态资源了吗?为什么还要再设置一遍过滤啊?

我的理解是,因为<mvc:default-servlet-handler/>过滤了静态资源,spring MVC就不处理这些静态资源,但是你也不能不处理这些静态资源吧,要不图片什么的怎么显示出来?所以这时候再配置一个默认的servlet,专门处理静态资源,是这样理解吗?我看了回答里面的,还是懵的

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2019-11-23 16:27:20

同学你好,web.xml中配置default的<servlet-mapping>可以将符合的静态页面引到默认Servlet处理。而<mvc:default-servlet-handler />在 WEB 容器启动的时候会在上下文中定义一个 DefaultServletHttpRequestHandler,它会对DispatcherServlet的请求进行处理,如果该请求已经作了映射,那么会接着交给后台对应的处理程序,如果没有作映射,就交给 WEB 应用服务器默认的 Servlet 处理,从而找到对应的静态资源。

关于同学的理解,在web.xml中配置了<servlet-mapping>,对请求中的资源进行过滤,如果是静态资源则交由默认的servlet处理。而<mvc:default-servlet-handler />将会对DispatchServlet时的请求进行处理,如果原来有映射,则交由对应的映射进行处理,如果没有映射,将会由默认的servlet进行处理。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 老师,这两个配置一般是搭配使用的吗?还是过滤静态资源只需要他们当中的其中一个就可以了?
    2020-03-26 12:30:48
  • 同学你好,可以搭配使用。祝:学习愉快~
    2020-03-26 15:09:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师