本文主要总结了SpringMVC的工作流程及原理
一、工作流程
1、 客户端向服务端发送请求,这个请求会直接请求到前端控制器DispatcherServlet(也叫中央控制器)。
2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器,解析对应的Handler。
3、解析到对应的Handler后,DispatcherServlet调用HandlerAdapter处理器适配器。
4、HandlerAdapter处理器适配器会根据Handler调用真正的处理器处理请求,去执行Controller并得到ModelAndView(数据和视图,Model是返回的数据对象,View是个逻辑上的View),并层层返回给DispatcherServlet
5、DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,视图解析器会根据这个逻辑上的View去找实际的View,然后返回真正的视图。
6、DispatcherServlet将模型数据填充到视图中
7、DispatcherServlet将结果响应给用户
二、核心组件说明
- DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件由它统一调度。
- HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器Handler,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。
- HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。
- ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。
- Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类。