Spring MVC请求流程

xxuncle 2020-01-13

(1)用户通过客户端向服务器发起一个request请求,此请求会被前端控制器(DispatcherServlet)所拦截。

(2)前端控制器请求处理器映射器(handlerMapping)去查找Handler,可以依据XML配置或注解去查找。

(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成),并返回给前端控制器。

(4)前端处理器请求处理器适配器(HandlerAdapter)去执行相应的Handler(常称为Controller)。

(5)处理器适配器会调用并执行Handler处理器,这里的处理器指的是程序中编写的Controller类,也被称为后端控制器。在请求信息到达真正调用Handler的处理方法之前的这段时间内,Spring MVC还完成了很多工作。

(6)Controller执行完毕后会返回给处理器适配器一个ModelAndView对象(Spring MVC底层对象),该对象中会包含View视图信息或者包含Model数据模型和View视图信息。

(7)处理器适配器接收到Controller返回的ModelAndView后,将其返回给前端控制器。

(8)前端控制器接收到ModelAndView后,选择一个合适的视图解析器(ViewReslover)对视图进行解析。

(9)视图解析器解析后,会根据View视图信息匹配到相应的视图结果,反馈给前端控制器。

(10)前端控制器接受到View视图后,进行视图渲染,将模型数据(在ModelAndView对象中)填充到request域。

(11)前端控制器向用户相应结果。

相关推荐