hooyantsing's Blog

0x000E-了解SpringMVC的处理流程吗

2023/08/05

面试回答

  1. 请求首先进入 DispatcherServlet
  2. DispatcherServlet 转发给 HandlerMapping,其匹配对应的 Handler,封装成执行链返回给 DispatcherServlet;
  3. DispatcherServlet 收到执行链,找到对应的 HandlerAdaper 执行,封装成 ModelAndView 对象返回给 DispatcherServlet;
  4. DispatcherServlet 收到 ModelAndView 对象,转交给 ViewResolver 解析,封装成 Model 对象返回给 DispatcherServlet;
  5. DispatcherServlet 收到 Model 对象,调用 View 对页面渲染,最终响应给用户。

问题详解

c501afa8fdba4fca95dc7990b7bb6167

  • DispatcherServlet(前端控制器):统一处理用户发来的请求并和响应,减少的耦合性;
  • HandlerMapping(处理器映射器):根据请求发来的 url 和 method 找到对应的 Handler;
  • Handler(程序员创建的控制器):业务处理逻辑;
  • HandlerAdaper(处理器适配器):处理器适配器会将 Handler 处理成 ModelAndView 逻辑视图;
  • ViewResolver(视图解析器):视图解析器根据逻辑视图名解析成物理视图名,生成 View 视图对象;
  • View(视图):根据 model 对象的要求来渲染页面。

参考阅读

CATALOG
  1. 1. 面试回答
  2. 2. 问题详解
  3. 3. 参考阅读