SpringMVC

一.SpringMVC流程
(1)用户发送请求至前端控制器 DispatcherServlet;
(2) DispatcherServlet 收到请求后,调用 HandlerMapping 处理器映射器,请
求获取 Handle;
(3)处理器映射器根据请求 url 找到具体的处理器,生成处理器对象及处理器
拦截器(如果有则生成)一并返回给 DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter 处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler 执行完成返回 ModelAndView;
(7)HandlerAdapter 将 Handler 执 行 结 果 ModelAndView 返 回 给
DispatcherServlet;
(8)DispatcherServlet 将 ModelAndView 传给 ViewResolver 视图解析器进行
解析;
(9)ViewResolver 解析后返回具体 View;
(10)DispatcherServlet 对 View 进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet 响应用户。
二.核心流程拆解
- 请求入口
用户(Actor)发起URL请求,统一由DispatcherServlet(前端控制器)接收,它是整个流程的核心调度者。 - 映射与拦截器准备
DispatcherServlet通过handlerMapper找到对应的Controller方法,同时获取该方法对应的前置拦截器列表和后置拦截器列表。 - 拦截器与目标方法执行
- 先执行前置拦截器(如权限校验、日志记录)
- 调用目标
Controller方法处理业务逻辑 - 方法执行完成后,返回一个逻辑地址(如
return index;) - 最后执行后置拦截器(如资源清理、响应头处理)
- 视图解析与渲染
DispatcherServlet将逻辑地址(index)拼接成物理地址:前缀(/WEB-INF/jsp/user/)+ 逻辑地址 + 后缀(.jsp)- 最终定位到物理文件
/WEB-INF/jsp/user/index.jsp - 渲染页面,生成静态响应返回给用户
三. 关键组件作用
- DispatcherServlet:整个SpringMVC的“大脑”,负责接收请求、协调所有组件、调度执行流程。
- HandlerMapper:根据URL匹配对应的
Controller方法和拦截器,完成请求到处理器的映射。 - 拦截器(Interceptor):在
Controller方法执行前后插入通用逻辑,实现AOP式的功能增强。 - 视图解析器:将
Controller返回的逻辑视图名解析为具体的物理视图文件路径。