#30天专注成长计划# day12 DispatcherServlet详解

DispatcherServlet详解

一、DispatcherServler

参考文档:

http://jinnianshilongnian.iteye.com/blog/1602617

DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,与Spring Ioc容器无缝集成。

DispatcherServlet主要用于控制流程,职责如下:

-文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;

-通过HandlerMapping,将请求映射到处理器;

-通过HandlerAdapater支持多种类型的处理器;

-通过ViewResolver解析逻辑视力名到具体视图实现;

-本地化解析;

-渲染具体的视图等;

-如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

-DispatcherServler在web.xml中的配置

#30天专注成长计划# day12 DispatcherServlet详解_第1张图片
图片发自App


Load-on-startup:表示启动容器时初始化该Servlet

Url-pattern:表示哪些请求交给Spring Web MVC处理

DispatcherServlet可以配置自己的初始化参数,来覆盖默认配置:

#30天专注成长计划# day12 DispatcherServlet详解_第2张图片
图片发自App


-DispatcherServlet中使用的特殊Bean

DispatcherServlet默认使用WebApplicationContext作为上下文:

-Controller:处理器/页面控制器,是MVC中的C

-HandlerMapping:请求到处理器的映射,如果映射成功返回一个HandlerExecutionChain对象,映射成功的Bean就是此处的处理器

-HandlerAdapater:HandlerAdapater将处理器包装为甜酸器,从而支持多种类型的处理器,即甜酸器设计模式的应用,从而很容易支持很多类型的处理器,并调用处理器的HandlerRequest方法进行功能处理

-ViewResolver:ViewResolver将逻辑视力名解析为具体的View,通过这种策略模式,很容易更换视图技术

-LocalResolver:本地化解析

-ThemeResolver:主题解析,通过它来实现一个页面多套风格,即觉的类似于软件皮肤效果

-MultipartResolver:文件上传解析,用于支持文件上传

-HandlerExceptionResolver:处理器异常解析,可以将异常映射到相应的统一错误界面,从而显示用户友好的界面

-RequestToViewNameTranalator:当处理器没有返回逻辑视力名等相关信息时,自动将请求URL映射为逻辑视图名

-FlashMapManager:用于管理FlashMap的策略接口,FlashMap用于存储一个请求的输出,当进入另一个请求时作为该请求的输入,通常用于重定向场景。

#30天专注成长计划# day12 DispatcherServlet详解_第3张图片
图片发自App

你可能感兴趣的:(#30天专注成长计划# day12 DispatcherServlet详解)