1.用户发送请求到DispatcherServlet(前端处理器)
2.DispatcherServlet调用HandlerMapping(处理器映射器)
3.HandlerMapping根据配置(xml/注解)找到最终要执行的Handler,生成处理器对象及处理器拦截器返回给DispatcherServlet
4.DispatcherServlet调用HandlerAdapter(处理器适配器)
5.HandlerAdapter根据规则执行相应的Controller
6.Controller执行完成返回ModelAndView
7.HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)
9.ViewReslover解析完成返回具体View给DispatcherServlet
10.DispatcherServlet根据View渲染视图,将模型数据转为Response响应
说明:作为前端控制器,是整个流程的控制中心,控制其他组件执行,统一调度,降低组件之间的耦合性,提个组件的扩展性。相当于MVC中的C
作用:接收请求,相应结果,相当于转发器、中央处理器
说明:通过扩展处理器映射器实现不同的映射方式(例如:配置文件方式、实现接口方式、注解方式等)
作用:根据请求url查找Handler
说明:适配器模式的应用,通过扩展处理器适配器,支持更多类型的处理器
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
说明:Handler是后端控制器(即Controller),在DispatcherServlet的控制下Handler对具体的用户请求进行处理(Handler一般为具体的业务请求)
作用:处理具体用户请求
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
说明:ViewResolver负责将处理结果生产View视图。首先根据逻辑视图名解析成物理视图名(即页面地址),再生成View视图对象,最后渲染View返回。SpringMVC支持更多类型的视图解析(例如:JSP、freemarker,PDF,Excel等View)
作用:进行视图解析,根据逻辑视图名解析成真正的视图
参考:https://blog.csdn.net/qq_43378945/article/details/90907427
原文:https://www.cnblogs.com/wangkai821/p/13493954.html