web前端控制器拦截路径的url-pattern写 / 与 /* 的区别

本文详细介绍了在web应用中,servlet配置中url-pattern使用/和/*的区别。当设置为/时,servlet仅替换默认servlet处理所有未匹配的请求,静态资源和JSP由相应servlet处理。而设置为/*时,servlet会拦截所有请求,包括静态资源和JSP,可能导致编码问题和静态资源无法正常显示。通过实例展示了这两种设置在SpringMVC项目中的具体表现。
摘要由CSDN通过智能技术生成

/与/*的区别
/:
servlet的url-pattern设置为/时, 它仅替换servlet容器的默认内置servlet,用于处理所有与其他注册的servlet不匹配的请求。直白点说就是,所有静态资源(js,css,image,html等)的访问都将交给该servlet处理,而jsp页面则交给servlet容器内置的JSP servlet处理。

/*:
servlet的url-pattern设置为/时,它会覆盖其他所有的servlet,包括servlet容器提供的所有servlet,如缺省servlet和JSP servlet。 无论你发出什么请求,都会在该servlet拦截处理。通常我们不会这么做。如果你只是想使用/,那么你可以在Filter中使用,它处理完后会将url交给servlet处理。

实例说明
直接解释/与/*的区别,可能不是那么直观,我们用实验来说话吧。
有一个SpringMVC项目中,已开启静态资源访问,所有编码均为UTF-8:

有一个Controller,处理/hello请求,返回/index.jsp页面
有一个hello.html文件
有一个hello.jsp文件
有一个index.html文件
有一个index.jsp文件
DispatcherServlet的url-pattern设置为/时:
在这里插入图片描述

我们可以看到结果

/hello.html没有访问到自己本该访问到的页面说明静态

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值