因为Filter是在ApplicationContext之外运行的,它们不能直接inject其他的Bean到Filter对象中。使用其他的Bean,Filter需要通过ServletContext,得到Spring的ApplicationContext。Spring提供了WebApplicationContextUtils的getWebApplicationContext来方便获取。
代码:
public void doFilter(ServletRequest req, ServletResponse rep,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
ApplicationContext ac =WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
User user = (User)ac.getBean("user1");
System.out.println(user.getId());
}
对不起 ,以上得到的ApplicationContext 是新的。如下则可以
ServletContext servletContext =config.getServletContext();
ap= (WebApplicationContext)servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
分享到:
相关推荐
<bean id="doubleSubmitInterceptor" class="com.ccc.filter.DoubleSubmitInterceptor"> <property name="mappingURL" value=".html" /> <property name="viewURL" value=".html" /> </bean> ...
这些代理类负责从Spring的WebApplicationContext中获取实际的Filter或Servlet实例,并将请求委托给它们。 3. **配置WebApplicationContext的初始化** 在`web.xml`中,使用`ContextLoaderListener`来初始化Spring...
### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...
在Spring MVC中,常见的Filter包括字符编码Filter、登录验证Filter等。 - `CharacterEncodingFilter`:确保请求和响应的字符编码一致,防止乱码问题。配置示例: ```xml <filter> <filter-name>...
在“spring4的所有jar包+applicationContext.xml+web.xml”这个组合中,我们主要讨论以下几个关键知识点: 1. **Spring框架的jar包**:Spring框架由多个模块组成,每个模块都有相应的jar包。主要包括Spring Core、...
2. **Filter**: 同样,可以在Filter的init()方法中获取ApplicationContext,或者通过ServletContextAware接口,将Spring上下文注册到ServletContext,然后在doFilter()方法中使用。 3. **Listener**: 在监听器的...
- **功能简介**:为 Spring 核心提供了大量扩展,包括使用 Spring ApplicationContext 特性时所需的全部类,JDNI 所需的全部类,UI 方面的类,以及校验 Validation 相关的类。 - **应用场景**:适用于需要使用 ...
在Java Web开发中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们分别负责不同的职责:Spring作为核心容器管理应用组件,SpringMVC处理Web请求,而MyBatis则专注于数据库操作。将这三个框架整合在一起...
同时,Spring的`applicationContext.xml`中需配置SessionFactory和数据源,以便Spring能够管理Hibernate的会话。 对于登录示例,可以创建一个Action类,该类由Spring管理并实现登录逻辑。Action类会调用Hibernate的...
首先,需要从 Spring Security 官网下载最新的 jar 文件,然后将其拷贝到项目的 lib 目录下。这样便可以使用 Spring Security 3 框架来保护我们的应用程序。 配置 Spring Security 3 在 classpath 下添加 security...
spring-web.jar(必须) :这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。...
这意味着 Spring 将在 WEB-INF/classes/spring 目录下寻找以“-config.xml”结尾的配置文件,并将其加载到 Spring ApplicationContext 中。 在 Spring 3.0.x 中,还引入了基于注解的依赖注入机制,使用 @Autowired ...
在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...
可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。 外部依赖spring-beans, (spring-aop)。 5. spring-context-support-4.1.1....
这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类, 包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 spring的核心类,提供了核心HTTP...
3. **配置Spring**:在`applicationContext.xml`文件中,你需要定义你需要的bean,包括业务逻辑层(Service)和数据访问层(DAO)。Spring通过DI管理这些bean的生命周期,并负责初始化和销毁。 4. **Action类与...
Struts2会自动从Spring容器中查找并注入Action所需的bean。 通过这样的整合,我们能够实现业务逻辑和视图层的解耦,使代码更加模块化,便于维护和扩展。同时,Spring的IoC和AOP特性也能够更好地支持企业级应用的...
在Spring的配置文件`applicationContext.xml`中,我们需要配置Spring Security的相关设置。通过`<http>`元素定义安全策略,例如URL模式的访问控制。`<authentication-manager>`定义认证管理器,`<cas-filter>`和`...
可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。...
其中`servletContext`是`ServletContext`对象,通常可以从Servlet或Filter中获得。 6. **部署要求**: 这样的配置要求你的Web应用部署在支持Servlet 2.3及以上版本的容器中。 7. **WebApplicationContext与...