0
点赞
收藏
分享

微信扫一扫

SpringMVC9大组件_执行流程


文章目录

  • ​​1. HandlerMapping​​
  • ​​2.HandlerAdapter​​
  • ​​3.HandlerExceptionResolver​​
  • ​​4.ViewResolver​​
  • ​​5.RequestToViewNameTranslator​​
  • ​​6.LocaleResolver​​
  • ​​7.ThemeResolver​​
  • ​​8.MultipartResolver​​
  • ​​9.FlashMapManager​​
  • ​​10.SpringMvc执行流程​​

1. HandlerMapping

根据Request得到处理器

在SpringMVC中会有很多请求,每个请求都需要一个Handler处理,具体接收到一个请求之后使用哪个Handler进行处理呢?这就是HandlerMapping需要做的事。

2.HandlerAdapter

调用处理器的映射器

因为SpringMVC中的Handler可以是任意的形式,只要能处理请求就ok,但是Servlet需要的处理方法的结构却是固定的,都是以request和response为参数的方法。如何让固定的Servlet处理方法调用灵活的Handler来进行处理呢?这就是HandlerAdapter要做的事情。

3.HandlerExceptionResolver

对异常的处理。

具体来说,此组件的作用是根据异常设置ModelAndView,之后再交给render方法进行渲染。

4.ViewResolver

String类型的视图和Locale为View类型的视图

View是用来渲染页面的,ViewResolver需要找到渲染所用的模板和所用的技术(也就是视图的类型)进行渲染,具体的渲染过程则交由不同的视图自己完成。

5.RequestToViewNameTranslator

有的处理器返回值为void,从Request得到ViewName,方便找到后序的View

6.LocaleResolver

从Request解析Locale,i18n

解析视图需要两个参数:一是视图名,另一个是Locale。视图名是处理器返回的,Locale由LocaleResolver从Request解析出Locale。
SpringMVC主要有两个地方用到了Locale:一是ViewResolver视图解析的时候;二是用到国际化资源或者主题的时候。

7.ThemeResolver

主题解析.

SpringMVC中一个主题对应一个properties文件,里面存放着跟当前主题相关的所有资源、如图片、css样式等。SpringMVC的主题也支持国际化,同一个主题不同区域也可以显示不同的风格。SpringMVC中跟主题相关的类有 ThemeResolver、ThemeSource和Theme。主题是通过一系列资源来具体体现的,要得到一个主题的资源,首先要得到资源的名称,这是ThemeResolver的工作。然后通过主题名称找到对应的主题(可以理解为一个配置)文件,这是ThemeSource的工作。最后从主题中获取资源就可以了。

8.MultipartResolver

处理上传请求,request->MultipartHttpServletRequest,后者可以直接调用getFile方法获取File.如果上传多个文件,还可以调用getFileMap得到FileName->File结构的Map。

9.FlashMapManager

管理FlashMap,FlashMap用于在重定向中传递参数

10.SpringMvc执行流程

SpringMVC9大组件_执行流程_mvc

举报

相关推荐

0 条评论