SpringMVC 工作流程

流程图补充说明

待更新…

DispatcherServlet 九大组件

MultipartResolver

多媒体解析器,一般用来实现上传下载的功能

LocaleResolver

国际化解析器,自动从请求头中的地区和语言信息解析并获取 Locale 对象,并设置到响应内容中,来实现国际化。

ThemeResolver

主题解析器,主题是样式、图片及它们所形成的显示效果的集合。一套主题对应一个 properties文件,里面存放着与当前主题相关的所有资源。

List<HandlerMapping>

请求映射处理的集合,作用是判断请求和对应的处理器之间的映射关系,确保请求能找到对应的处理器。

List<HandlerAdapter>

处理器适配器集合,因为在 SpringMVC 中 Handler 可以是任意形式的,比如 @RequestMapping 的方法,实现 Controller 接口的类,为了将这些 Handler 统一规格给 SpringMVC 使用,就需要能转化这些 Handler 的 Adapter。

List<HandlerExceptionResolver>

异常处理解析器集合,判断是否能处理所抛出来的异常,转化为目标的 ModelAndView,如果不能处理,则会将异常抛给 Tomcat。

RequestToViewNameTranslator

请求名到视图名翻译器,当我们自己写的 Handler 没有定义 viewName 的时候,就会调用它,将请求的目标截取,作为 viewName,供 ViewResolver 进行解析。

FlashMapManager

重定向参数传递,当我们将 Post 请求进行重定向为 Get 请求的时候(防止重复提交),为了将 Post 数据体现在 Get 请求页面中,用 FlashMapManager 实现重定向参数传递。

List<ViewResolver>

视图解析器集合,用来通过视图名解析成视图 View 的解析器,从而进行渲染页面。