一、概述
- Spring MVC中的Front controller、Page controller
- Spring MVC中各角色交互图
- Spring MVC骨架处理流程逻辑结构
- Spring MVC更加饱满的处理流程逻辑结构
二、Spring MVC的五虎将:HandlerMapping 、Controller、ModelAndView、ViewResolver、View
-
忙碌的协调人HandlerMapping
- HandlerMapping帮助DispatcherServlet进行Web请求的URL到具体处理类的匹配。
-
我们的亲密伙伴Controller
- Controller是Spring MVC框架支持的用于处理具体Web请求的handler类型之一。
- 规范操作派的Controller,以BaseCommandController为首的,对Web
-
ModelAndView
- Controller在将Web请求处理完成后,通常会返回一个ModelAndView实例。
- 该ModelAndView实例通常包含两部分内容:
- 视图相关内容:逻辑视图名称orView实例
- 模型数据:视图渲染过程中会把这些模型数据合并入最终的视图输出。
- ★简单来说,ModelAndView实际上就是一个数据对象。不过通过该数据对象,我们却可以解除具体的Web请求处理Controller与视图渲染之间的紧密耦合,使得这两个方面能够独立演化
-
视图定位器ViewResolver
- 根据Controller所返回的ModelAndView中的逻辑视图名,为DispatcherServlet返回一个可用的View实例。
-
各司其职的View
- View是Spring MVC中将原本可能存在于DispatcherServlet中的视图渲染逻辑得以剥离出来的关键组件。通过引入该策略抽象接口,我们可以极具灵活性支持各种视图渲染技术。
- 各种View实现类的主要职责就是在render()方法中实现最终的视图渲染工作,但这些对DispatcherServlet来说是透明的