
| 组件 | 作用 | 为什么重要 |
| DispatcherServlet |
前端控制器(所有请求入口) |
统一处理请求,避免重复代码 |
| HandlerMapping |
查找Controller(根据URL) |
决定哪个Controller处理请求 |
| Controller |
处理业务逻辑(@Controller) |
业务逻辑核心,返回数据和视图 |
| ModelAndView |
封装数据和视图 |
传递模型数据和视图名称给View |
| ViewResolver |
解析视图(如JSP/Thymeleaf) |
将视图名转换为实际视图文件 |
| View |
渲染HTML(如JSP/Thymeleaf) |
生成最终响应内容 |
- Model(模型)
- 作用:处理数据和业务逻辑(如数据库操作、数据验证)。
- 示例:Spring中的
Service 层、Repository 层。
- View(视图)
- 作用:负责数据的展示(如HTML页面、JSON响应)。
- 示例:Thymeleaf模板、JSP、前端框架(如Vue.js)。
- Controller(控制器)
- 作用:接收用户请求(如HTTP请求),调用Model处理数据,并返回View。
- 示例:Spring中的
@Controller 或 @RestController 类。
- 为什么Spring MVC 不能用 @RestController
@Controller:返回视图名(如 "home")
@RestController:直接返回JSON(@Controller + @ResponseBody)
为什么区分?
传统Web应用用 @Controller 返回HTML,RESTful API用 @RestController 返回JSON。