一、简介
SpringMVC是当前最优秀的MVC框架,基本上所有公司都用,本篇文章将总结一下SpringMVC整体的工作流程。
二、工作流程图
工作流程大体分为如下几个步骤:
- 1. 用户发起一个request请求,这个请求将会首先到达前端控制器DispatcherServlet中,由DispatcherServlet统一调度其他组件的使用;
- 2.DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器,由此得知,这个请求该由哪一个Controller来进行处理(并未调用Controller);
- 3. DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller;
- 4. HandlerAdapter处理器适配器去执行Handler,即我们的Controller,然后Handler处理器返回ModelAndView(数据和视图)给HandlerAdapter;
- 5. HandlerAdapter再将ModelAndView(数据和视图)返回给DispatcherServlet;
- 6. DispatcherServlet将ModelAndView交给ViewReslover视图解析器请求进行视图解析,然后返回真正的视图;
- 7. 视图渲染, DispatcherServlet将模型数据填充到request域中;
- 8、DispatcherServlet将结果响应给用户;
各组件作用说明:
- DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,各个组件的调用由它统一调度;
- HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器;
- HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象;
- ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP);
- Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类;