Spring MVC 工作原理可分为六个核心步骤,其处理流程遵循前端控制器模式:
-
请求接收阶段
所有HTTP请求首先由DispatcherServlet
(前端控制器)接收,该组件作为中央调度器统一管理请求分发。 -
处理器映射查询
DispatcherServlet
通过HandlerMapping
组件: -
处理器适配调用
HandlerAdapter
根据处理器类型执行具体方法:- 解析方法参数( @ R e q u e s t P a r a m @RequestParam @RequestParam, @ P a t h V a r i a b l e @PathVariable @PathVariable)
- 处理数据绑定( @ M o d e l A t t r i b u t e @ModelAttribute @ModelAttribute)
- 执行验证逻辑( @ V a l i d @Valid @Valid)
-
业务逻辑处理
Controller方法返回处理结果封装对象:
ModelAndView = { 视图名称 模型数据 \text{ModelAndView} = \begin{cases} \text{视图名称} \\ \text{模型数据} \end{cases} ModelAndView={视图名称模型数据 -
视图解析阶段
ViewResolver
将逻辑视图名转换为具体视图技术实现:// 示例配置 @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; }
-
响应渲染输出
视图对象通过模型数据生成最终响应内容,常见技术实现包括:- JSP/JSTL
- Thymeleaf
- FreeMarker
- JSON序列化( @ R e s p o n s e B o d y @ResponseBody @ResponseBody)
关键扩展机制:
- 拦截器(Interceptor):实现预处理/后处理逻辑
- 异常处理器( @ E x c e p t i o n H a n d l e r @ExceptionHandler @ExceptionHandler):统一错误处理
- 类型转换器(Converter):自定义数据转换规则
- 验证器(Validator):实现业务校验逻辑