SpringMVC执行流程
- 一个请求匹配前端控制器
DispatcherServerlet
的请求映射路径(web.xml
中指定),web容器将请求转交给前端控制器DispatcherServerlet
处理。 - 前端控制器
DispatcherServerlet
接收到请求后,根据请求的信息交给处理器映射器HandlerMappering
。 - 处理器映射器
HandlerMappering
根据用户的url请求查找匹配该url的Handler
,并返回
一个执行链
。 - 前端控制器
DispatcherServerlet
再请求处理器适配器HandlerAdapter
调用相应的Handler
进行处理并返回ModleAndView
给前端控制器DispatcherServerlet
。 - 前端控制器
DispatcherServerlet
将ModleAndView
请求视图解析器ViewReslover
解析,返回具体View
对象。 - 前端控制器
DispatcherServerlet
对View
进行渲染视图(模型数据填充至视图)。 - 前端控制器
DispatcherServerlet
将页面相应给用户
组件说明
DispatcherServerlet
:前端控制器
请求到达前端控制器DispatcherServerlet
,相当于MVC中的C,是整个流程的中心和入口,降低了组件间的耦合性。HandlerMappering
:处理器映射器
根据用户的请求的url找到处理器Handler
,SpringMVC提供了不同映射器的不同映射方式,例如:配置文件方式,实现接口方式,注解方式。Handler
:处理器
继前端控制器DispatcherServerlet
的后端控制器,在前端控制器DispatcherServerlet
的控制下处理器Handler
对用户的请求进行处理。由于处理器Handler
涉及到具体业务,所以由程序员根据业务逻辑开发处理器Handler
。HandlerAdapter
:处理器适配器
通过处理器适配器HandlerAdapter
对处理器Handler
进行执行,通过扩展适配器可以对更多类型的处理器进行执行。ViewReslover
:视图解析器
视图解析器ViewReslover
负责处理结果生成View
视图,视图解析器ViewReslover
首先根据逻辑视图名解析成物理视图名,从而生成View
对象,最后对View
进行渲染将处理结果通过页面展示给用户。View
:视图
SpringMVC框架提供了很多的视图View
类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。