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文件中定义了一些默认映射器,适配器,解析器等
查看这个配置文件可知: