DispatcherServlet 工作流程

继承关系

DispatcherServlet > FrameworkServlet > HttpServletBean > HttpServlet > GenericServlet > Servlet

Servlet 容器每次接收到请求时都会调用 service() 方法,子类 HttpServlet 复写了 service() 方法,内部会根据请求的类型(GET、POST 等)调用相应的 doGet()doPost() 等方法...

根据调用链分析,最终会交由 DispatcherServlet.doDispatch() 来处理

前后不分离请求处理流程

  1. 客户端请求:浏览器向服务器发起请求。
  2. DispatcherServlet 接收请求DispatcherServlet 作为前端控制器(Front Controller)接收请求。
  3. HandlerMappingDispatcherServlet 会通过 HandlerMapping 找到合适的处理器,其实返回的是一个处理器执行链(拦截器)。
  4. 找到能执行当前处理器的 HandlerAdapter
  5. HandlerAdapter:通过 HandlerAdapter 调用具体的 Controller 方法进行处理。
  6. 处理请求:Controller 处理请求并返回模型数据和视图信息。
  7. ViewResolverDispatcherServlet 根据 Controller 返回的视图名称,通过 ViewResolver 查找并渲染视图。
  8. 响应客户端:渲染后的视图返回给客户端。
ControllerViewViewResolverHandlerAdapterHandlerHandlerMappingDispatcherServletClientControllerViewViewResolverHandlerAdapterHandlerHandlerMappingDispatcherServletClient发起请求查找处理器返回 url 对应的处理器(HandlerChain)找到能执行该处理器的 HandlerAdapterHandlerAdapter 执行 Handler(controller 中的方法)返回 ModelAndView解析视图返回视图返回视图给客户端

前后分离请求处理流程

  1. 客户端请求:浏览器或客户端发起请求。
  2. DispatcherServlet 接收请求DispatcherServlet 作为前端控制器接收请求。
  3. HandlerMappingDispatcherServlet 会通过 HandlerMapping 找到合适的处理器,其实返回的是一个处理器执行链(拦截器)。
  4. 找到能执行当前处理器的 HandlerAdapter
  5. HandlerAdapter:通过 HandlerAdapter 调用具体的 Controller 方法进行处理。
  6. 处理请求并返回数据:Controller 处理请求并返回数据(通常是一个 POJO 或 Map)。
  7. MessageConverterDispatcherServlet 使用 HttpMessageConverter 将返回的对象转换为 JSON 格式。
  8. 响应客户端:返回的 JSON 数据通过 HTTP 响应返回给客户端。
ControllerHttpMessageConverterHandlerAdapterHandlerHandlerMappingDispatcherServletClientControllerHttpMessageConverterHandlerAdapterHandlerHandlerMappingDispatcherServletClient发起请求查找处理器返回 url 对应的处理器(HandlerChain)找到能执行该处理器的 HandlerAdapterHandlerAdapter 执行 Handler(controller 中的方法)返回数据(如 POJO)HttpMessageConverter 转换数据为 JSON返回 JSON 数据返回 JSON 数据
posted @   CyrusHuang  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示