Spring MVC执行流程

在学习框架之前,首先了解一下Spring MVC框架的整体请求流程和使用到的API类.

Spring MVC 框架是高度可配置的,包含多种视图技术,例如JSP、FreeMarker、Tiles、iText和POI. Spring MVC框架并不关心使用的视图技术,也不会强迫开发者使用JSP.

Spring MVC执行流程

Spring MVC执行流程如图所示

流程图

SpringMVC的执行流程如下.

1.用户点击某个请求路径,发起一个HTTP request请求,该请求会被提交到DispatcherServlet(前端控制器);

2.由DispatcherServlet请求一个或多个HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain).

3.DispatherServlet将执行链返回的Handler信息发送给HandlerAdapter(处理器适配器);

4.HandlerAdapter根据Handler信息找到并执行相应的Handler(常称为Controller);

5.Handler执行完毕后会返回给HandlerAdapter一个ModelAndView对象(SpringMVC的底层对象,包括Model数据模型和View视图信息)

6.HandlerAdapter接收到ModelAndView对象后,将其返回给DispatcherServlet.

7.DispatcherServlet接收到ModelAndView对象后,会请求ViewResolver(视图解析器)对视图进行解析;

8.ViewResolver根据View信息匹配到相应的视图结果,并返回给DispatcherServlet;

9.DispatcherServlet接收到具体的View视图后,进行视图渲染,将Model中的模型数据填充到View视图中的request域,生成最终的View(视图)

10.视图负责将结果显示到浏览器(客户端).

Spring MVC 接口

Spring MVC 涉及到的组件有DispatcherServlet(前端控制器),HandlerMapping(处理器映射器),HandlerAdapter(处理器适配器),Handler(处理器),ViewResolver(视图解析器)和View(视图).下面对各个组件的功能说明如下.

1)DispatcherServlet

DispatcherServlet是前端控制器,从流程图中可以看出,Spring MVC的所有请求都要经过DispatcherServlet来统一分发.DispatcherServlet相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一的调度,以降低组件之间的耦合性,有利于组件之间的拓展.

2)HandlerMapping

HandlerMapping是处理器映射器,其作用是根据请求的URL路径,通过注解或者XML配置,寻找匹配的处理器(Handler)信息.

3)HandlerAdapter

HandlerAdapter是处理器适配器,其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler).

4)Handler

Handlers是处理器,和Java Servlet扮演的角色一致.起作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至ModelAndView对象中.

5)View Resolver

View Resolver是视图解析器,其作用是进行解析操作,通过ModelAndView对象中的View信息将逻辑视图名解析成真正的视图View(如通过一个JSP路径返回一个真正的JSP页面).

6)View

View是视图,其本身是一个接口,实现类支持不同的View类型(JSP,FreeMarker,Excel等).

以上组件中,需要开发人员进行开发的事处理器(Handler,常称Controller)和视图(View).通俗的说,要开发处理该请求的具体代码逻辑,以及最终展示给用户的界面.

注意:由于Spring MVC结构比较复杂,所以学习的时候也要掌握学习方法.首先要明确Spring MVC是一个工具,既然是工具,那么我们就需要先掌握工具的使用方法,不要陷入细节中,深入浅出,慢慢通过实际运用来加深对其的理解.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容