其对应的初始化方法是 initHandlerAdapters(context)
从名字上看,它就是一个适配器。HandlerAdapters 要做的事情就是如何让固定的
Servlet 处理方法调用灵活的 Handler 来进行处理
6、HandlerExceptionResolver 异常处理器
对应的初始化方法是 initHandlerExceptionResolvers(context)
它的主要作用是处理其他组件产生的异常情况。
7、RequestToViewNameTranslator 视图名称翻译器
其对应的初始化方法是 initRequestToViewNameTranslator(context)
它的作用是从请求中获取 ViewName。
有的 Handler 处理完后并没有设置 View 也没有设置 ViewName,这时就需要从
request 中获取,而 RequestToViewNameTranslator 就是为 request 提供获取
ViewName 的实现。
8、ViewResolvers 页面渲染处理器
其对应的初始化方法是 initViewResolvers(context)
ViewResolvers 的主要作用是将 String 类型的视图名和 Locale 解析为 View 类型的视
图。
9、FlashMapManager 参数传递管理器
其对应的初始化方法是 initFlashMapManager(context)
在实际应用中,为了避免重复提交,我们可以在处理完 post 请求后重定向到另外一个
get 请求,这个 get 请求可以用来返回页面渲染需要的信息。
FlashMap 就是用于这种请求重定向场景中的参数传递。
在 Spring MVC 的九大组件中,涉及到请求处理响应的核心组件分别是:
1. HandlerMapping、
2. HandlerAdapter、
3. ViewResolver
这张图表示这三个组件的整体执行流程,具体调用分为以下几个步骤:
1、HandlerMapping 回到调用 HandlerAdapter
2、HandlerAdapter 会返回 ModelAndView
3、ModelAndView 根据用户传入参数得到 ViewResolvers
4、ViewResolvers 会将用户传入的参数封装为 View,交给引擎进行渲染。
注意:有大家最熟悉的两个类:ModelAndView 和 View 类并不属于 Spring MVC 九
大组件之列。
以上,就是我对 Spring MVC 的理解!
?二、粉丝福利
我是浮生,一个工作十四年经验的Java程序员!
最近很多同学问我有没有java学习资料,我根据我从小白到架构师多年的学习经验整理出来了一份50W字面试解析文档、简历模板、学习路线图、java必看学习书籍?、 需要的小伙伴 可以关注我
公众号:“?灰灰聊架构?”, 回复暗号:“?321?”即可获取