SpringMVC-执行流程

137 阅读1分钟

SpringMVC的执行流程是这个框架最核心的内容,分为两个阶段:

  • 视图阶段(老旧JSP等)
  • 前后端分离阶段(接口开发、异步)

一、 视图阶段(JSP)

假设现在有一个请求http://localhost:8080/user/getById/1, 它在SpringMVC中的执行流程如下图所示。

a8gLm8DdiC.jpg

  1. 用户发出请求到前端控制器DispatcherServlet。
  2. DispatcherServlet收到请求调用HandlerMapping。
  3. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdaptor。
  5. HandlerAdaptor经过适配调用具体的处理器(handler/controller)。
  6. 处理器执行完成返回ModelAndView对象。
  7. HandlerAdaptor将ModelAndView对象返回给DispatcherServlet。
  8. DispatcherServlet将ModelAndView对象传给ViewResolver。
  9. ViewResolver解析后返回具体的View。
  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充到视图中)。
  11. DispatcherServlet响应用户。

二、前后端分离阶段(接口开发,异步请求)

20230807-131816.jpg

  1. 用户发出请求到前端控制器DispatcherServlet。
  2. DispatcherServlet收到请求调用HandlerMapping。
  3. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdaptor。
  5. HandlerAdaptor经过适配调用具体的处理器(handler/controller)。
  6. 处理器方法上添加了@ResponseBody注解。
  7. 通过HttpMessageConverter将返回结果转换为JSON并响应。