面试题之SpringMVC整体工作流程

一、简介

SpringMVC是当前最优秀的MVC框架,基本上所有公司都用,本篇文章将总结一下SpringMVC整体的工作流程。

二、工作流程图

工作流程大体分为如下几个步骤:

  • 1. 用户发起一个request请求,这个请求将会首先到达前端控制器DispatcherServlet中,由DispatcherServlet统一调度其他组件的使用;
  • 2.DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器,由此得知,这个请求该由哪一个Controller来进行处理(并未调用Controller);
  • 3. DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller;
  • 4. HandlerAdapter处理器适配器去执行Handler,即我们的Controller,然后Handler处理器返回ModelAndView(数据和视图)给HandlerAdapter;
  • 5. HandlerAdapter再将ModelAndView(数据和视图)返回给DispatcherServlet;
  • 6. DispatcherServlet将ModelAndView交给ViewReslover视图解析器请求进行视图解析,然后返回真正的视图;
  • 7. 视图渲染, DispatcherServlet将模型数据填充到request域中;
  • 8、DispatcherServlet将结果响应给用户;

各组件作用说明:

  • DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,各个组件的调用由它统一调度;
  • HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器;
  • HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象;
  • ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP);
  • Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类;
发布了197 篇原创文章 · 获赞 86 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/Weixiaohuai/article/details/103977069