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用于存储一个请求的输出,当进入另一个请求时作为该请求的输入,通常用于重定向场景.
相关推荐
在Java Web开发中,DispatcherServlet和ContextLoaderListener都是Spring框架中的关键组件,它们各自承担着不同的职责,共同构建了一个高效、灵活的Web应用程序。这里我们将深入探讨这两个组件的区别及其工作原理。 ...
在 Spring Boot 中配置多个 DispatcherServlet 需要使用 ServletRegistrationBean 来注册不同的 DispatcherServlet,每个 DispatcherServlet 都需要指定不同的上下文和映射路径。通过这种方式,我们可以轻松地配置多...
在 initServletBean() 方法中,DispatcherServlet 会读取 web.xml 中的配置信息,并将其设置到相应的 Bean 中。 在 initServletBean() 方法中,DispatcherServlet 会调用 refresh() 方法来刷新 ApplicationContext...
当我们在Servlet环境中工作时,有时需要在Servlet中直接访问由Spring管理的Bean,以便利用Spring提供的服务和功能。以下是如何在Servlet中直接获取Spring框架中的Bean的方法。 首先,我们理解Spring容器,即...
在Servlet的service方法中,DispatcherServlet会接收到请求并进行分发。在FrameworkServlet类中,service方法被重写以支持PATCH方法,这使得DispatcherServlet可以处理更多类型的HTTP请求。同时,DispatcherServlet...
为了使用Request作用域,需要在web.xml中配置ContextLoaderListener或DispatcherServlet。 - 示例配置:`<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>` 4. **Session作用域**: - ...
这一行代码注册了一个`ResourceEditor`,允许我们在`<init-param>`中使用`classpath:`或类似方式指定Spring配置文件的位置。`ResourceEditor`使得字符串能被解析成`Resource`对象,便于加载配置文件。 2. **设置...
每个DispatcherServlet都拥有自己的WebApplicationContext,这是Spring容器的一个实例,它负责管理Bean并处理依赖注入。默认情况下,DispatcherServlet会尝试从`WEB-INF`目录下找到以`servlet-name}-servlet.xml`...
要想在程序中使用DispatcherServlet,我们需要在web.xml中配置一个DispatcherServlet。配置的方法是,在web.xml文件中,配置一个 `<servlet>` 节点,它的子节点 `<servlet-name>` 可以自定义一个名字,例如sample, ...
- **请求处理与响应渲染**:DispatcherServlet 委托给特殊 Bean 来处理请求并呈现适当的响应。这里所谓的“特殊 Bean”是指由 Spring 管理的对象实例,这些对象实现了 Web MVC 框架合同。这些 Bean 通常具有内置合同...
在本篇文章中,我们将对SpringMVC的DispatcherServlet进行深入分析,并了解其在Web应用程序中的作用。 一、DispatcherServlet的配置 在SpringMVC中,DispatcherServlet是核心Servlet,负责处理所有的HTTP请求。 在...
在Spring MVC框架中,DispatcherServlet扮演着至关重要的角色,它是整个框架的核心。本文将深入探讨DispatcherServlet的两个核心设计原则及其在Spring MVC中的应用。 1. 对扩展开放,对修改封闭 Spring MVC遵循...
3. **@Configuration和@Bean**:在Java配置中,@Configuration注解标记一个类为配置类,其中的方法可以使用@Bean注解来声明Bean。@Bean注解告诉Spring容器该方法返回的对象应该被注册为一个Bean。这种方法允许更灵活...
在本项目中,`Spring-MVC-DispatcherServlet-Example`是一个使用Maven构建的示例项目,展示了如何利用Spring MVC来开发应用程序。 ### Maven项目结构 Maven是一个项目管理和集成工具,它通过定义项目对象模型(POM...
在Spring Boot中,Servlet的使用变得非常简便,因为Spring Boot内置了Servlet容器,如Tomcat或Jetty,这些容器会自动处理Servlet的注册和管理。本文将详细介绍如何在Spring Boot中添加自定义Servlet。 首先,Spring...
在"java-spring-master"这个压缩包中,可能包含了Spring项目的源代码示例,涵盖了MyBatis的配置和使用、Spring MVC的控制器编写、视图渲染以及Bean的定义和管理等内容。通过学习这些示例,你可以更深入地理解如何在...
在 web.xml 文件中,我们可以使用 ContextLoaderListener 来初始化 Root WebApplicationContext,然后使用 DispatcherServlet 来初始化 Servlet WebApplicationContext。代码示例: ```xml <listener-class>org....
16.4.3 在JSF页面中使用Spring Bean 16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 ...
16.4.3 在JSF页面中使用Spring Bean 16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 ...
DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的...