From:http://blog.csdn.net/zuoluoboy/article/details/19766131
DispatcherServlet
/** * This implementation calls {@link #initStrategies}. */ @Override protected void onRefresh(ApplicationContext context) { initStrategies(context); } /** * Initialize the strategy objects that this servlet uses. * <p>May be overridden in subclasses in order to initialize further strategy objects. */ protected void initStrategies(ApplicationContext context) { initMultipartResolver(context); initLocaleResolver(context); initThemeResolver(context); initHandlerMappings(context); initHandlerAdapters(context); initHandlerExceptionResolvers(context); initRequestToViewNameTranslator(context); initViewResolvers(context); initFlashMapManager(context); }
DispatcherServlet中使用的特殊的Bean
DispatcherServlet默认使用WebApplicationContext作为上下文,因此我们来看一下该上下文中有哪些特殊的Bean:
1、Controller:处理器/页面控制器,做的是MVC中的C的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理;
2、HandlerMapping:请求到处理器的映射,如果映射成功返回一个HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象;如BeanNameUrlHandlerMapping将URL与Bean名字映射,映射成功的Bean就是此处的处理器;
3、HandlerAdapter:HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;如SimpleControllerHandlerAdapter将对实现了Controller接口的Bean进行适配,并且掉处理器的handleRequest方法进行功能处理;
4、ViewResolver:ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;如InternalResourceViewResolver将逻辑视图名映射为jsp视图;
5、LocalResover:本地化解析,因为Spring支持国际化,因此LocalResover解析客户端的Locale信息从而方便进行国际化;
6、ThemeResovler:主题解析,通过它来实现一个页面多套风格,即常见的类似于软件皮肤效果;
7、MultipartResolver:文件上传解析,用于支持文件上传;
8、HandlerExceptionResolver:处理器异常解析,可以将异常映射到相应的统一错误界面,从而显示用户友好的界面(而不是给用户看到具体的错误信息);
9、RequestToViewNameTranslator:当处理器没有返回逻辑视图名等相关信息时,自动将请求URL映射为逻辑视图名;
10、FlashMapManager:用于管理FlashMap的策略接口,FlashMap用于存储一个请求的输出,当进入另一个请求时作为该请求的输入,通常用于重定向场景,后边会细述
相关推荐
Spring MVC 核心流程图,清晰介绍了spring mvc中的控制流程
三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...
在 Spring MVC 中,核心流程图如下: 1. 客户端发送 HTTP 请求 2. DispatcherServlet 接收到请求,并将其转发给 HandlerMapping 3. HandlerMapping 将 URL 映射到 Controller 中的方法上 4. HandlerAdapter 将 ...
三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...
三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...
Spring MVC + MyBatis的图书馆管理系统,充分展示了Java企业级开发的强大之处,通过合理的技术选型和设计模式,实现了功能完善的图书管理服务,同时也为开发者提供了良好的开发体验和高效的开发流程。
总结,Spring MVC 提供了一套完整的 Web 开发解决方案,通过注解驱动和依赖注入简化了开发流程。通过实例化的增删改查操作,我们可以深入了解其工作原理,并结合源码分析,进一步掌握 Spring MVC 的精髓。
在本项目中,我们利用了Java技术栈中的四个核心组件:Spring MVC、Spring、Hibernate以及Bootstrap,构建了一个全面的图书管理系统。这个系统旨在提供高效、用户友好的图书管理功能,涵盖了从图书入库、检索到借阅、...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了...通过学习和实践这个Demo,你可以更好地理解Spring MVC的运作机制,以及如何利用Gradle来优化项目构建流程。
它基于Spring框架,提供了模型-视图-控制器(MVC)架构模式,简化了从前端到后端的数据处理流程。本实例将深入探讨如何实现一个完整的Spring MVC CRUD操作。 首先,我们来了解CRUD操作的基本概念。CRUD是Create...
#### 三、Spring MVC 工作流程 1. **请求接收**:HTTP 请求首先被 DispatcherServlet 接收。 2. **请求映射**:DispatcherServlet 使用 HandlerMapping 找到相应的控制器。 3. **处理请求**:控制器处理请求,并...
总结来说,这个项目是一个典型的Java企业级应用,通过结合Activiti的工作流管理和Spring MVC的Web开发能力,为开发者提供了一个完整的业务流程自动化解决方案。通过深入学习和实践,你可以掌握如何利用这些技术构建...
Spring MVC 的运行流程涉及多个组件协同工作,确保了请求的正确处理和响应的生成。以下是详细的步骤解释: 1. **启动阶段**:当客户端(通常是浏览器)发起一个HTTP请求时,请求首先被Web应用服务器接收。如果请求...
"动图演示"可能是一些动画教程,展示如何使用这个系统,或者演示Spring MVC和JDBC Template在实际操作中的流程。这些动图有助于直观理解系统的运行机制。 总的来说,本项目提供了学习和实践Spring、Spring MVC和...
二、Spring MVC核心流程: 1. 用户发起请求到达DispatcherServlet。 2. DispatcherServlet根据HandlerMapping找到合适的处理器(Controller)。 3. 使用HandlerAdapter将请求传递给Controller方法。 4. Controller...
英文版:Expert Spring MVC and Web Flow 内容简介 《深入解析Spring MVCgn Web Flow》是Spring MVC 和Web Flow 两个框架的权威指南,书中包括的技巧和提示可以让你从这个灵活的框架中汲取尽可能多的信息。书中包含...
在“简单纯粹的Spring MVC架构J2EE项目”中,我们看到的是一个基于 J2EE 平台构建的轻量级 Web 开发解决方案,利用了 Spring MVC 的优势来实现高效的开发流程。 1. **项目结构** - 项目的部署结构通常包括 `WEB-...
**Spring MVC 简介** Spring MVC 是 Spring 框架的一个模块,它为构建基于 Java 的 Web 应用程序提供了一个模型-视图-控制...理解 Spring MVC 的核心组件、配置以及工作流程对于开发高质量的 Java Web 应用至关重要。
`img` 文件夹很可能包含了一些示例截图或者流程图,帮助解释一些复杂的概念,比如请求处理流程、视图解析机制等。 学习Spring MVC,你需要理解的核心概念包括: 1. **DispatcherServlet**:作为Spring MVC的前端...