springmvc前端控制器url的写法问题[重要]

在这里插入图片描述
前端所有的请求都需要经过Servlet处理,包括请求静态资源html css jpg等(静态资源使用tomcat默认的servlet处理)

静态资源使用
访问jsp会使用tomcat中自带的jspservlet处理,访问静态资源会使用tomcat中自带的defaultServelt处理的,这是一个缺省servlet, url匹配路径是 / ,优先级最低,在servlet中优先级排名为:
1.精确匹配
2.路径匹配 /
3.后缀名匹配 如
.jsp .do
4./ 缺省(其他servle匹配不上的由此缺省servlet匹配)

所以在前端控制器 dispatcherServlet中,如果url写/*,会拦截到所有请求.包括controller要返回给视图解析器的 字符串jsp, 访问jsp又进入dispacherServlet,找不到对应的controller就会出现404.
如果url写 / ,jsp不会出现这个问题,但又会出现静态资源被拦截出现404的问题(因为静态资源的默认defaultServlet的url也是 /,被dispatcherServelt覆盖了,),所以需要在springmvc容器中配置一个tomcat默认的defaultServlet;在这里插入图片描述此时为什么jsp不会被dispatcherServlet拦截?因为此时有tomcat的jspservlet处理,该servlet是匹配 *.jsp的.说到底还是servlet 中url优先级的问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值