springMVC执行流程
2023.4.3
- 浏览器发送请求给后端,被前端控制器拦截(
DispatcherServlet
) - 前端控制器(
DispatcherServlet
)去找处理器映射器(HanderMapping
)请求查询处理器(Handler
) - 处理器映射器(
HandlerMapping
)向前端控制器(DispatcherServlet
)返回处理器执行链(HandlerExecutionChain
) - 前端控制器(
DispatcherMapping
)拿到返回执行链(HandlerExecutionChain
)去向处理器适配器(HandlerAdaptor
)请求执行处理器(Handler
) - 处理器适配器(
HandlerAdaptor
)向对应的处理器(Handler
)发送请求(request
) - 处理器(
Handler
)向处理器适配器(HandlerAdaptor
)返回响应数据(response
) - 处理器适配器(
HandlerAdaptor
)向前端控制器(DispatcherServlet
)发送ModelAndView
- 前端控制器(
DispatcherServlet
)向视图解析器(ViewResolver
)发送ModelAndView
的解析请求 - 视图解析器(
ViewResolver
)向前端控制器(DispatcherServlet
)发送View
对象 - 前端控制器(
DispatcherServlet
)向视图页面(jsp
)渲染视图 - 前端控制器(
DispatcherServlet
)向浏览器响应视图(jsp
)
这里需要注意一个问题,如果向前端响应的是一个json对象,也就是不使用jsp,那整个步骤依旧要走第8、9步,只是请求的不再是视图解析器,而是其他的解析器