一、组件
1、前置控制器 DispatcherServlet:相当于一个调度中心,负责分发请求、对各个组件进行调度、控制整个流程的执行;
2、处理器映射 HandlerMapping:根据URL地址寻找匹配的处理器Handler;
3、处理器适配器 HandlerAdapter:根据Handler适配具体的Controller并执行具体方法;
4、模型和视图 ModelAndView:封装了数据与逻辑视图名,决定向用户展示哪一个视图;
5、视图解析器 ViewResolver:将ModelAndView中的逻辑视图名解析成实际视图View。
二、工作流程
1、DispatcherServlet接收并拦截请求;
2、DispatcherServlet调用HandlerMapping,由HandlerMapping根据URL找到并返回Handler给DispatcherServlet;
3、DispatcherServlet调用HandlerAdapter,由HandlerAdapter根据Handler适配具体的Controller并执行,然后由Controller返回ModelAndView给HandlerAdapter,HandlerAdapter再将ModelAndView对象返回给DispatcherServlet;
4、DispatcherServlet调用ViewResolver将ModelAndView中的逻辑视图名解析成实际视图View返回给DispatcherServlet;
5、DispatcherServlet对View进行渲染,将Model中的模型数据填充到View视图中的request域生成最终的View;
6、View负责将结果显示到浏览器,呈现给用户。
三、参考资料
B站狂神说——SpringMVC执行原理https://www.bilibili.com/video/BV1aE41167Tu?p=5&vd_source=18add245858bb01410866b08c994e66bSpringMVC入门_長樂er.的博客-CSDN博客_springmvc入门https://blog.csdn.net/weixin_66277385/article/details/123938677SpringMVC框架流程详解:_愿天堂没有java的博客-CSDN博客_springmvc流程简述https://blog.csdn.net/weixin_61752937/article/details/125663640PS:本文为一名Java初学者的知识整理及备忘,如有错漏,欢迎前辈们指正。