Spring MVC 的执行流程可以分为几个主要的步骤。
1. 客户端请求
用户通过浏览器发起一个请求(HTTP 请求)。
2. 前端控制器(DispatcherServlet)
所有请求首先到达 DispatcherServlet。
DispatcherServlet0+ 是 Spring MVC 的核心,它负责处理请求和响应。
3. 请求映射(Handler Mapping)
DispatcherServlet 根据请求的 URL 查找适当的控制器(Controller)。这通常是通过 HandlerMapping 接口来完成的。
4. 调用控制器(Handler)
找到对应的控制器后,DispatcherServlet 调用控制器的方法(处理请求的逻辑)。
5. 处理业务逻辑
控制器在收到请求后,通常会调用服务层(Service)来处理业务逻辑,并准备数据模型(Model)以供视图使用。
6. 返回视图名称
控制器处理完请求后,返回一个视图名称(可能附带模型数据)。
7. 视图解析(View Resolver)
DispatcherServlet 使用 ViewResolver(视图解析器)将视图名称解析为实际的视图对象,比如 JSP 或 Thymeleaf 模板。
8. 渲染视图
视图(如 JSP)使用模型数据进行渲染,然后生成 HTML 响应。
9. 响应客户端
DispatcherServlet 将渲染后的视图返回给用户的浏览器。
以下是一个示例的简化代码流程:
@Controller
public class MyController {@RequestMapping("/hello")public String hello(Model model) {model.addAttribute("message", "Hello, World!");return "helloView"; // 返回视图名称}
}
假设有一个名为 helloView.jsp 的 JSP 文件,出现在视图解析器的配置中,DispatcherServlet 会根据 helloView 来找到这个 JSP 文件并渲染。