springMVC请求调用流程浅析
2022-03-20 22:49:40 2 举报
springMVC请求调用流程浅析
作者其他创作
大纲/内容
DispatcherServlet
获取当前处理器的拦截器
HttpServletRequest processedRequest = checkMultipart(request)
HandlerInterceptor[] interceptors = getInterceptors()
service()
寻找此处理器Handler的一个合适的适配器HandlerAdapter
mappedHandler为null
doService
其实就是执行请求方法,如果请求接口返回不是视图,那么mv为null。如:返回json,其值是放在response中
倒序执行他所有拦截器的postHandle()方法
通过适配器HandlerAdapter处理当前Handler,返回一个ModelAndView
通过处理器映射器HandlerMapping查找合适的处理器,返回处理器执行链
ModelAndView font color=\"#b71c1c\
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler())
倒序执行他所有拦截器的afterCompletion()方法
请求
此方法,是处理视图,但是在前后端分离项目中,此mv一般为null,所以我们可以忽略他处理视图的过程
循环执行他拦截器的preHandle()方法,如果返回true,表示放行此请求,如果有一个拦截器返回false,此请求会中止,但在中止前会倒序执行他所有拦截器的afterCompletion()方法
HandlerExecutionChain mappedHandler = getHandler(processedRequest)
发布请求处理完后的事件ServletRequestHandledEvent
0 条评论
下一页