jsp无法解析,直接在浏览器输出html源码问题

今天在用springmvc+tomcat做一个小的测试程序时,访问jsp页面出现无法解析,直接在浏览器输出html源码:


于是各种检查:

1.web.xml已设置了编码过滤器:


2.jsp文件存储编码为UTF-8



3.项目各种编码都设置为了UTF-8:

4.jsp头也已经设置了编码:


问题到底出现在哪?!

最后经过多次调试,发现只要将springmvc主过滤器路径匹配规则设置为“/”,问题就可以解决:





在网上找到如下相应的解释:

博客地址:https://blog.csdn.net/jinghuashuiyue2/article/details/78589655?locationNum=7&fps=1


在配置为“/”时,将会覆盖Tomcat中的conf/web.xml中的缺省Servlet,即DefaultServlet,因为 DefaultServlet主要处理的是静态资源,这个Servlet处理规则是其它Servlet不能匹配的请求将由它进行处理。 而在Tomcat中的DefalutServlet(默认Servlet、缺省Servlet)的路径配置恰巧是 "/",覆盖后html静态资源将无法解析,




因此需要在springmvc配置文件中配置如下默认servlet静态资源处理:



"/"与"/*区别"

其实/和/*都可以匹配所有的请求资源,但其匹配的优先顺序是不同的。/在所有的匹配路径中,优先级最低,即当别的路径都无法匹配时,/所匹配的缺省Servlet才会进行相应的请求资源处理。而 /星号 匹配的优先级是高于/路径和星号.后缀的路径的(如星号.action,星号.jsp等路径)。


  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值