博主在纯手写SpringMVC逻辑的时候,也就是这篇文章:纯手写SpringMVC逻辑代码,遇到一个找了很久的问题,在配置手写的DispatcherServlet过程中,写addMapping的拦截请求的时候使用的是dynamic.addMapping("/*")
,最后返回视图的时候一直报404,debug之后发现,视图也被拦截了。
之后才发现“/”和“/*”是不同的。
< url-pattern>/</url-pattern>
会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern>
会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和*.html等)
当使用< url-pattern>/*</url-pattern>
会匹配*.jsp,会出现返回jsp视图时会再次进入spring的DispatcherServlet 类,导致找不到对应的controller方法,所以报404错