SpringMVC工作流程分析
- 用户通过浏览器发送请求到前端控制器DispatcherServlet。
- 前端控制器直接将请求转给处理器映射器HandleMapping。
- 处理器映射器HandleMapping会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链HandlerExecutionChina后返回给前端控制器DispatcherServlet。
- 前端控制器DispatcherServlet根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器HandlerAdaptor。
- 处理器适配器HandlerAdaptor调用执行处理器Controller。
- 处理器Controller将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给处理器适配器HandlerAdaptor。
- 处理器适配器直接将结果返回给前端控制器DispatcherServlet。
- 前端控制器调用视图解析器,将 ModelAndView 中的视图名称封装为视图对象。
- 视图解析器ViewResolver将封装了的视图View对象返回给前端控制器DispatcherServlet。
- 前端控制器DispatcherServlet调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
- 前端控制器响应浏览器。