SpringMVC的处理流程

97 阅读2分钟

Spring MVC 是一个基于请求-响应模式的 Web 框架,其处理流程包括多个步骤。下面是一个典型的 Spring MVC 请求处理流程,从接收到请求到返回结果的详细步骤:

  1. 客户端请求: 客户端发起 HTTP 请求,这个请求会被发送到 Web 服务器。

  2. 前端控制器(DispatcherServlet)

    • 请求到达:请求首先由前端控制器 DispatcherServlet 接收。DispatcherServlet 是 Spring MVC 的核心组件,负责整个请求处理的流程。
    • 请求映射DispatcherServlet 根据请求的 URL 和配置的处理器映射(Handler Mapping)找到适合的处理器(即 Controller)。
  3. 处理器映射(Handler Mapping)

    • 选择 ControllerHandler Mapping 根据请求的 URL 找到适合的处理器(Controller)和方法,并将请求分发给对应的处理器。
  4. 处理器适配器(HandlerAdapter)

    • 适配 ControllerHandlerAdapter 负责将请求传递给相应的 Controller,并调用其处理方法。HandlerAdapter 确保请求适配到具体的 Controller,并执行其业务逻辑。
  5. 请求处理(Controller)

    • 调用 ControllerDispatcherServlet 调用 Controller 中相应的方法来处理请求。Controller 处理业务逻辑,可能会访问服务层和数据层。
    • 返回 ModelAndView:处理完请求后,Controller 返回一个 ModelAndView 对象。ModelAndView 包含了视图名(View Name)和模型数据(Model)。
  6. 视图解析(View Resolver)

    • 解析视图DispatcherServlet 将从 Controller 返回的视图名交给视图解析器(View Resolver)。视图解析器负责将视图名解析成实际的视图对象(例如 JSP、Thymeleaf 模板)。
    • 生成视图:视图解析器将视图名转换为具体的视图实现,并返回给 DispatcherServlet
  7. 渲染视图

    • 填充模型数据:视图对象将模型数据填充到视图中。视图负责将模型数据展示给用户,通常会生成 HTML 响应。
    • 渲染响应:视图将渲染结果(如 HTML)返回给 DispatcherServlet
  8. 返回响应

    • 发送响应DispatcherServlet 将渲染后的视图内容发送回客户端,完成请求的处理过程。
  9. 客户端接收响应

    • 客户端接收到服务器返回的响应,通常是 HTML 内容,显示在浏览器上。

总结:

  1. 客户端请求 → 2. DispatcherServlet 接收请求 → 3. HandlerMapping 选择 Controller → 4. HandlerAdapter 适配 Controller → 5. Controller 处理请求 → 6. ViewResolver 解析视图 → 7. 视图渲染内容 → 8. DispatcherServlet 发送响应 → 9. 客户端接收响应