Spring MVC 的执行流程

157 阅读2分钟

Spring MVC 的执行流程

组件的介绍

● 前端控制器:接收请求、响应结果,相当于转发器,它是SpringMVC框架最核心的组件,有了它就能减少其他组件之间的耦合度。(不需要程序员开发)

● 处理器映射器:根据配置的映射规则(根据请求的URL),找到对应的处理器。(不需要程序员开发)

● 处理器适配器:适配调用具体的处理器,并且执行处理器中处理请求的方法,执行完毕之后返回一个ModelAndView对象。

● 处理器:(需要程序员手动开发)。

● 视图解析器:会根据传递过来的ModelAndView对象进行视图解析,根据视图解析名解析称真正的视图View。(不需要程序员开发)

● 视图:View是一个接口,它的实现类支持不同类型的视图。比如:JSP、freemarker、Thymeleaf等等

image.png

流程解析

(1)当用户通过浏览器发起一个HTTP请求,请求直接到前端控制器DispatcherServlet;

(2)前端控制器接收到请求以后调用处理器映射器HandlerMapping,处理器映射器根据请求的URL找到具体的Handler,并将它返回给前端控制器;

(3)前端控制器调用处理器适配器HandlerAdapter去适配调用Handler;

(4)处理器适配器会根据Handler去调用真正的处理器去处理请求,并且处理对应的业务逻辑;

(5)当处理器处理完业务之后,会返回一个ModelAndView对象给处理器适配器,HandlerAdapter再将该对象返回给前端控制器(这里的Model是返回的数据对象,View是逻辑上的View)。

(6)前端控制器DispatcherServlet将返回的ModelAndView对象传给视图解析器ViewResolver进行解析,解析完成之后就会返回一个具体的视图View给前端控制器。(ViewResolver根据逻辑的View查找具体的View)

(7)前端控制器DispatcherServlet将具体的视图进行渲染,渲染完成之后响应给用户(浏览器显示)

总结

image.png