1.面试资料简单描述版

  1. DispatcherServlet接收浏览器请求
  2. DispatcherServlet查询一个或多个HandlerMaping,通过HandlerMapping寻找到相应的处理器Controller
  3. Controller处理请求并返回ModelAndViewDispatcherServlet
  4. DispatcherServlet查询一个或多个视图解析器,通过视图解析器ViewResolver获取相应的View
  5. View通过Model进行渲染并返回响应给浏览器

    2.面试资料细节描述版

  6. DispatcherServlet接收浏览器请求

  7. DispatcherServlet查询一个或多个HandlerMaping,通过HandlerMapping寻找到相应的处理器Controller以及一系列拦截器Interception
  8. DispatcherServlet通过HandlerAdater调用具体的Controller方法处理请求,并将Controller返回的ModelAndView,传递给DispatcherServlet
  9. DispatcherServlet查询一个或多个视图解析器,通过视图解析器ViewResolver获取相应的View
  10. View通过Model进行渲染并返回响应给浏览器

    3.官方文档版

    官方文档在SpringFramework中的Web Servlet模块章节的1.1.5 Processing章节进行了介绍

  11. WebApplicationContext作为DispatcherServlet的一个属性被获取。

  12. 对请求进行国际化处理,通过本地化解析器Locale Resolver
  13. 对请求进行主题处理,通过主题解析器 Theme Resolver
  14. 若是文件上传类型的请求,会对请求进行文件解析处理,通过文件解析器Multipart File Resolver
  15. 找到处理器以及相关联的执行链(拦截器链),执行后返回View对象
  16. 若同时有Model对象返回,View渲染后返回

贯穿全程的:

  • 异常解析器:HandlerExceptionResolver

    4.来幅图吧

    image.png