SpringMVC 执行流程:
执行流程简单分析:
1.浏览器提交请求到中央调度器
2.中央调度器直接将请求转给处理器映射器
3.处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后,返回给中央调度器
4.中央调度器根据执行链中的处理器,找到能够执行该处理器的处理器适配器
5.处理器适配器调用执行处理器
6.处理器将处理结果及要跳转的视图封装到一个 ModelAndView中,并将其返回给处理器适配器
7.处理器适配器直接将结果返回给中央调度器
8.中央调度器调用视图解析器,将ModelAndView 中的视图名称封装为视图对象
9.视图解析器将封装了的视图对象返回给中央调度器
10.中央调度器调用视图对象,让其自己渲染,即进行数据填充,形成响应对象
11.中央调度器响应浏览器
API简要说明
1.DispathcerServlet
中央调度器,也称为前端控制器,在 MVC 架构模式中充当控制器 C,DispatcherServlet 是整个流程的控制中心,
由它调用诸如处理器映射器、处理器适配器、视图解析器等其它组 件处理用户请求。中央调度器的存在降低了组件之间的耦合度。
2.HandlerMapping
处理器映射器,负责根据用户请求找到相应的将要执行的 Handler,即处理器。即用于
完成将用户请求映射为要处理该请求的处理器,并将处理器封装为处理器执行链传给中央调 度器。
3.HandlerAdapter
处理器适配器,通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过 扩展适配器可以对更多类型的处理器进行执行。
中央调度器会根据不同的处理器自动为处理 器选择适配器,以执行处理器。
4.Handler
处理器,也称为后端控制器,在 DispatcherServlet 的控制下 Handler 调用 Service 层对具 体的用户请求进行处理。
由于 Handler 涉及到具体的用户业务请求,所以一般情况下需要程 序员根据业务需求自己开发 Handler。
5.ViewResolver
视图解析器,负责将处理结果生成 View 视图,ViewResolver 首先将逻辑视图名解析为 物理视图名,即具体的页面地址,
再生成 View 视图对象。最后将处理结果通过页面形式展示给用户。
SpringMVC 框架提供了很多的 View 视图类型,包括:JstlView、RedirectView 等。一般 情况下需要通过页面标签或页面模版技术
将模型数据通过页面展示给用户,需要由程序员根 据业务需求开发具体的页面。
DispathcerServlet的默认配置
在DispathcerServlet的默认配置DispathcerServlet.properties文件中定义了一些默认映射器,适配器,解析器等
查看这个配置文件可知: