📚 分类
spring
🕵🏽‍♀️ 问题描述
spring的mvc的执行流程
👨‍🏫 问题讲解
❒ 前端控制器(DispatcherServlet)
✔ Spring MVC 的核心入口,相当于 "总指挥"。负责接收所有客户端请求,协调其他组件工作,统一分发请求到后续处理器,处理完后整合结果并返回响应,是整个请求流程的中枢。
❒ 处理器映射器(HandlerMapping)
✔ 相当于"导航仪"。根据请求 URL,查找对应的处理器(如Controller方法)及拦截器,返回处理器执行链,解决"请求该找谁处理"的问题。
❒ 处理器适配器(HandlerAdapter)
✔ 相当于"翻译官/适配器"。适配不同类型的处理器(如注解式Controller、HttpRequestHandler),统一执行逻辑,让前端控制器无需关心处理器类型,直接调用执行,解决"怎么调用处理器"的问题。
❒ 视图解析器(ViewResolver)
✔ 相当于"视图翻译官"。根据处理器返回的视图名称,解析出具体的视图对象(如JSP、Thymeleaf 模板),解决"如何找到并渲染视图"的问题。

❒ 视图阶段(老旧JSP等)
✔ 用户发送出请求到前端控制器。
✔ 前端控制器收到请求调用处理器映射器。
✔ 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给前端控制器。
✔ 前端控制器调用处理器适配器。
✔ 处理器适配器经过适配调用具体的处理器(Handler/Controller)。
✔ Controller执行完成返回ModelAndView对象。
✔ 处理器适配器将Controller执行结果ModelAndView返回给前端控制器。
✔ 前端控制器将ModelAndView传给ViewReslover(视图解析器)。
✔ ViewReslover解析后返回具体View(视图)。
✔ 前端控制器根据View进行渲染视图(即将模型数据填充至视图中)。

❒ 前后端分离阶段(接口开发,异步)
✔ 用户发送出请求到前端控制器DispatcherServlet。
✔ DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。
✔ HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
✔ DispatcherServlet调用HandlerAdapter(处理器适配器)。
✔ HandlerAdapter经过适配调用具体的处理器(Handler/Controler)。
✔ 方法上添加了@ResponseBody。
✔ 通过HttpMessageConverter来返回结果转换为JSON并响应。
🏳️‍🌈 问题总结
❒ mvc四大组件
✔ 前端控制器(总指挥),处理器映射器(导航仪),处理器适配器(翻译官/适配器),视图解析器(视图翻译官)

请求进门找调度,  
调度喊映射指路。
映射转拨适配叔,  
处理完毕找视图。

  
📖 问题信息
📈 浏览次数:36 | 📅 更新时间:2025-12-04 03:45:07
📦 创建信息
🏷️ ID:48 | 📅 创建时间:2024-10-14 12:03:08