springmvc关于404的异常处理原理

默认url的话其实springmvc会有很多MappingHandler进行适配(HandlerAdapter),

像我们通常的RequestHandlerMappingHandler(通过Controller和 RequestMapping注解定义的路径),

这时候如果我们没有一个requestMapping的url是访问的url,mvc就会匹配到一个ResourceHttpRequestHandler(查找静态文件的处理器),

所以mvc这时候不会报错,但是又其实又没有对应的静态文件。

经过所有filter之后,会来到tomcat的StandardWrapperValue来处理后面的逻辑(实际上就是dispatchServlet处理,之后交由tomcat来处理),

tomcat也没有找到,这时候tomcat就会设置一些错误参数javax.servlet.error.status_code等,就会用到tomcat的errorPage,属性,这里springmvc会自己加上/error路径(对应着springmvc的BasicController),

然后tomcat会重定向到/error,就会到BasicController处理

你可能感兴趣的:(springmvc关于404的异常处理原理)