Spring的MVC框架是围绕一个DispatcherServlet其实就是个Servlet(它继承自HttpServlet基类)来设计的,
它支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染、文件上传等
控制器通常负责准备一个Map模型、填充数据、返回一个合适的视图名等,同时它也能够直接将数据
写到响应流中
Spring的web模块支持许多web相关的特性:
一、清晰的职责分离 二、强大、直观的框架和应用bean的配置 三、强大的适配能力、非侵入性和灵活性
四、可复用的性 五、可定制的数据绑定和验证 六、可定制的处理器映射和视图解析 七、灵活的模型传递
八、可定制的本地化信息、时区和主题解析 九、一个简单但功能强大的JSP标签库 十、新增生命周期
仅绑定到当前HTTP请求或HTTP会话的Bean类型
DispatcherServlet初始化bean
bean的类型 做用
HandleMapping 处理器映射。它会根据某些规则将进入容器的请求映射到具体的处理器
以及一系列处理器拦截器上。
HandlerAdapter 处理器适配器。拿到请求所对应的处理器后,适配器将负责去调用该处
理器,这使得DispatcherServlet无需关心具体的调用细节
HandlerExceptionResolver 处理器异常解析器。它负责将捕获的异常映射到不一样的视图上去,此处
还支持更复杂的异常处理代码
ViewResolver 视图解析器。它负责将一个表明逻辑视图名的字符串映射到实际的视图
类型View上
LocaleResolver&
LocaleContextResolver 地区解析器和地区上下文解析器。它们负责解析客户端所在的地区信息
甚至时区信息,为国际化的视图定制提供了支持
ThemeResovler 主题解析。它负责解析你web应用中可用的主题,好比提供一些个性化定
制的布局等
MultipartResolver 解析multi-part的传输请求,好比支持经过HTML表单进行的文件上传等
FlashMapManager FlashMap管理器。它可以存储并取回两次请求之间的FlashMap对象。后
者可用于在请求之间传递数据,一般是在请求重定向的情境下使用
DispatcherServlet维护了一个列表,其中保存了其所依赖的全部bean的默认实现。这个列表保存在包
org.springframework.web.servlet下的DispatcherServlet.properties文件中。若是在web应用上下文
WebApplicationContext中配置了某个特殊bean(如InternalResourceViewResolver)后,那么框架就
不会再使用bean ViewResolver的默认实现web