配置过滤器/和/*是不是不一样?

配置过滤器/和/*是不是不一样?

  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

编码过滤器url-pattern中写/*和/一样吗?在配置spring的dispatchServlet时写的是/好像不能写/*;这两种写法应该不一样吧,麻烦老师详细介绍一下

正在回答

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

3回答

同学你好,上面老师的解释有点不严谨,为 /是不会匹配到*.jsp后缀,其他后缀的除外;即:*.jsp不会进入spring的 DispatcherServlet类,如果不配置静态资源,它会把匹配到的所有请求都当做是对控制器的访问;其他的请求都会经过DispatcherServlet,但是当项目访问静态资源时,如.html,.js,.css等文件,这些应该不需要经过核心servlet的,所以是需要配置的

祝学习愉快~


好帮手慕阿园 2021-05-13 15:27:10

同学你好,这里只是表示*.jsp不会进入spring的DispatcherServlet类;但是并没有将静态资源引到默认Servlet处理,而web.xml中配置default的<servlet-mapping>可以将符合的静态页面引到默认Servlet处理。所以这里也是需要进行配置的

祝学习愉快~

  • 提问者 Wonwayshon #1
    DispatcherServlet配置/不处理静态资源,那静态资源是不是自动交给默认Servlet处理?是不是不用手动配置
    2021-05-13 16:11:03
好帮手慕阿园 2021-05-13 11:04:54

同学你好,是的,是不一样

< url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url

< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)。

祝学习愉快~

  • 提问者 Wonwayshon #1

    那这样的话配置dispatchServlet时候urlpattern写的是/,那么是不是不用配置default的servlet也可以做到静态资源交给default处理?

    2021-05-13 11:20:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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