`
海角七号
  • 浏览: 17872 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在SSH结构的web应用中,如何让自定义的过滤器Filter获取spring管理的实例

阅读更多

       最近我在做项目中遇到一个问题,就是自定义一个过滤器Filter,我想在改过滤器里面获取Service,从而进行一些业务操作,但是,我怎么也获得不到交给spring管理的Service,后来在网上找了很久,终于把这个问题解决了,这个错误就是我在web.xml里面配置是按照Servlet过滤器配置的,在过滤器初始化的时候,spring的实例还没有初始化,所以无法获得spring的实例,后来参考网上的方案,使用DelegatingFilterProxy解决了这个问题。

          DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。

        DelegatingFilterProxy的使用方法,

         首先在web.xml中配置:

 

<filter>
    <filter-name>urlFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>urlFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping> 

 

    然后在Spring的配置文件中,配置具体的Filter类的实例。

 

<bean id="urlFilter" class="com.nxt.count.filter.UrlFilter">
	<property name="visitLogService" ref="visitLogService"/>
</bean>

    注意:在Spring中配置的bean的name要和web.xml中的<filter-name>必须一致

     

    或者在DelegatingFilterProxy的filter配置中配置初始参数:targetBeanName,对应到Spring配置中的beanname。 

 

   如果要保留Filter原有的init,destroy方法的调用,还需要配置初始化参数targetFilterLifecycle为true,该参数默认为false

分享到:
评论

相关推荐

    java web Xss及sql注入过滤器.zip

    Java Web 开发中,安全是至关重要的一个环节。XSS(Cross Site Scripting)和 SQL ...开发者可以通过研究项目源码,了解如何自定义过滤器、配置安全策略以及利用Spring Boot的安全特性,提升自己的Web应用开发技能。

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    Spring Web模块包含了Servlet监听器、过滤器、DispatcherServlet等核心组件,它们协同工作以接收请求、解析请求参数、执行业务逻辑并返回响应。此外,Spring还提供了事务管理、数据访问/集成、AOP等功能,极大地增强...

    Java:SSH-Spring整合struts2&hibernate;框架

    1. 配置Struts2:在Web项目的web.xml中配置Struts2的前端控制器Filter,以及相关的Struts2核心过滤器和配置文件路径。 2. 引入Hibernate:配置Hibernate的sessionFactory,包括数据库连接信息、实体类扫描路径等。...

    完整的SSH的例子源代码

    在`web.xml`中,我们配置了Spring容器的初始化和Struts2框架的过滤器: 1. **Spring 初始化**:通过`&lt;context-param&gt;`定义了Spring的配置文件路径,这里是`classpath:beans.xml`。`ContextLoaderListener`是一个...

    SSH环境简单搭建方法

    在SSH项目中,web.xml通常需要配置Struts核心过滤器和Spring监听器。 配置Spring主要涉及创建和配置applicationContext.xml文件,以及可能的属性文件config.properties。在Spring配置文件中,会通过bean元素声明...

    SSH2框架整合搭建实例

    在配置文件`web.xml`中,我们需要定义一个名为`struts`的Filter,并指定过滤器类`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,然后将`.do`等请求映射到该Filter上。 Struts2的配置...

    原创 Struts Spring Hibernate (SSH) 整合实例

    `web.xml` 是Web应用程序的核心配置文件之一,它定义了应用程序中的过滤器、监听器、servlet等元素。 - **过滤器** (`CharacterEncodingFilter`):该过滤器用于设置字符编码,确保数据正确传输。代码片段如下: ``...

    ssh2整合步骤_带图_实例

    在这里,我们需要配置Struts2的前端控制器Filter,Spring的DispatcherServlet以及可能的其他过滤器和监听器,以确保它们按正确的顺序启动和处理请求。 完成以上步骤后,SSH2整合的基本框架就搭建完成了。现在,...

    SSH整合实例(经实践,可直接套用的)

    SSH整合是指将Struts2、Spring和Hibernate三个开源框架整合在一起,用于构建高效、灵活的企业级Web应用程序。在这个实例中,我们将看到一个基于Struts2.1.x、Spring2.5.x和Hibernate3.2.x的简单登录功能的实现。 ...

    SSH整合Shiro源码

    - 配置Shiro的Web过滤器:在Spring的web.xml中配置`DelegatingFilterProxy`,指向Shiro的Filter配置。 - 创建Shiro配置类:在Spring Boot项目中,可以创建一个@Configuration类,使用@Bean方法配置所需的Shiro组件...

    ssh(structs,spring,hibernate)框架中的上传下载

    数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。 3在Spring中使用org.springframework...

    SSH项目搭建步骤

    - 配置 `web.xml`,设置过滤器,让 Spring 初始化容器,并在启动时加载配置。 - 在 `web.xml` 中配置 Struts2 的前端控制器 Filter。 - 如果需要,还可以配置 `hibernate.cfg.xml` 中的相关参数。 7. **创建实体...

    SSH_Configurations

    在这个SSH应用中,它可能包含了Struts2的Filter配置,Spring的DispatcherServlet配置,以及其他必要的Web应用设置。 `applicationContext-common.xml`和`applicationContext-beans.xml`都是Spring的配置文件,用来...

    SSH2 实例

    在IT行业中,SSH框架指的是Spring、Struts2和Hibernate三个开源框架的组合,它们常用于构建企业级的Java Web应用程序。SSH2实例是基于这三个框架的整合应用,为初学者提供了一个良好的学习平台。SSH框架整合的优势...

    SSH框架配置文件及web.xml jar包

    在SSH框架中,web.xml通常用于注册DispatcherServlet(Spring MVC的前端控制器)、Filter(如Struts2的FilterDispatcher)以及Spring的ContextLoaderListener,以启动Spring应用上下文。 5. **jar包**:SSH框架所需...

    java中SSH框架主要说明SSH各部分的作用

    SSH框架,全称为Struts+Hibernate+Spring,是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。下面将详细解释SSH各部分的作用,并提供相关的配置和代码示例。 首先,Struts是MVC(模型-视图-...

    spring+hibernate+struct2框架整合

    3. 在`web.xml`中配置Spring的上下文加载监听器`ContextLoaderListener`和`ContextConfigLocation`,以便在应用启动时加载Spring配置。 4. 配置Hibernate的相关属性,如数据源、数据库连接参数、实体映射文件等。 5....

    ssh整合小实例学习

    在项目的`WEB-INF`目录下创建`web.xml`文件,该文件是Web应用的基本配置文件,其中包含了对Spring、Struts和过滤器的配置。示例中的`web.xml`部分代码展示了如何配置Spring的上下文加载监听器、字符编码过滤器以及...

    javaSSH框架搭建配置

    为了确保Web应用中数据的一致性和正确性,还需要配置字符编码过滤器。 ```xml &lt;!--Spring字符编码过滤器--&gt; &lt;filter&gt; &lt;filter-name&gt;Springcharacterencodingfilter&lt;/filter-name&gt; &lt;filter-class&gt;org.spring...

    一个SSH整合后的空项目

    接着,需要在web.xml文件中配置过滤器和监听器,以启动Struts2和Spring。Struts2的过滤器(`filter-class`为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`)会处理所有的HTTP请求,而...

Global site tag (gtag.js) - Google Analytics