在思考Tomcat怎么处理资源的时候了解到Tomcat config目录下的web.xml定义了defaultservlet(拦截路径为 /),jspservlet(拦截路径为 .jsp等),
后来想到springmvc的路径也为 /,猜测路径覆盖了,查阅资料看到很多博文说 /* 是拦截所有,/则放过jsp等,这让我愈发凌乱。
很明显的是,所有的匹配规则必然是有一套流程的(终于功夫不负有心人),参考如下,请细读。
https://www.cnblogs.com/canger/p/6084846.html
可是springmvc是怎么进行资源处理的呢,如果覆盖了Tomcat资源处理的实现,那么必然spring mvc有实现,mvc:default-servlet-handler/是处理资源的,参考如下。
https://blog.csdn.net/abc997995674/article/details/80513203
这里再谈谈视图解析器,jsp的解析是由Tomcat的jspservlet处理的,视图解析器是拼接路径转发,或者重定向,就是redirect和forward方法,调用jsp解析后的servlet,根据匹配规则,解析后的jsp生成的servlet应该是精准匹配,如果没有调用jspservlet解析jsp。
于是我们知道springmvc的diapatcherservlet不能配置为/的原因是根据匹配规则.jsp的匹配永永远远被dispatcherservlet拦截。