iworkh-dev-security
2020-02-28 10:43:50 0 举报
spring-security-oauth2原理图
作者其他创作
大纲/内容
throwable()
Y
requestDispatcherPath:/error
根据errorCode获取到errorpage,塞request信息
DefaultErrorAttributes
找到errorPage
以tomcat为例分析,tomcat原理就不分析了
将errorPage转发出去
error()
status()
这就是为啥默认情况下浏览器和Postman等请求结果不一样的关键
processDispatchResult
一个/error的请求交给tomcat和springmvc处理
/error
custom()
BasicErrorController
如果没有找到errorCode的page,会塞一个0的errorCode继续调用
DefaultHandlerExceptionResolver
doGet()...doPost()
FrameworkServlet
tomcat默认一个errorpage0 ➡ /error
mappedHandler#applyPostHandle()
Y:找到errorPage
StandardHostValve
服务器
ResponseStatusExceptionResolver
ExceptionHandlerExceptionResolver
DispatcherServlet
根据throwable获取到errorpage,塞request信息
doDispatch()
invoke()
ha#handle()
publishRequestHandledEvent()
errorHtml()
SimpleMappingExceptionResolver
如果ExceptionResolver处理不了,就一直往外抛
N:没找到塞500的errorCode,调status方法
doService()
Tomcat处理异常
HandlerExceptionResolverComposite
mappedHandler#applyPreHandle()
processRequest()
N
发生异常
springboot异常处理源码分析
requet是否有javax.servlet.error.exception值
forward()
@ControllerAdvice@ExceptionHandler
RequestDispatcher
异常处理
include()
HandlerExceptionResolver
tomcat默认错误页面:errorCode和ErrorPage对应关系0 ➡ /error(404 ? 500? 自己配置)
0 条评论
下一页