最近我在做项目中遇到一个问题,就是自定义一个过滤器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
相关推荐
使用SSH构建Web应用系统使用SSH构建Web应用系统使用SSH构建Web应用系统
新SSH(spring、spring mvc、hibernate)框架结构的java web案例实践
SSH全注解实例详解,hibernate,struts,spring,转自大象
随着struts的安全问题的暴露,原由Struts2+spring+hibernate构成的SSH2已经被越来越多的开发者所弃用,反而,由Spring+SpringMVC+Hibernate构成的SSH框架越来越受欢迎!这里提供了一个案例代码,希望对大家搭建环境...
SSH笔记-分别使用通过配置listener类和调用HttpServlet类和通过配置ContextLoaderListener,实现web中使用Spring
用于中文乱码问题,仅限于表单提交,不适于JS提交,JS提交请自己另设response
SSH三大框架登录小实例,以及spring的登录增删改查实例,这个导入即可运行出来
1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩...基于SSH框架的学生成绩管理系统源码+数据库,Struts2、Spring与Hibernate整合应用,实验报告
基于SSH的WEB开发ppt演示,用一个实例简述了Struts+Hibernate+Spring的开发架构
SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理
ssh2框架整合,struts2和hibernate均交由spring管理,用注解的方式由spring注入
ssh开发实例ssh开发实例ssh开发实例 ssh开发实例chm版本
java web 过滤器防止Xss、sql注入,基于spring boot 2.0框架开发。
SSH登陆实例(spring strus hibernate集成登陆实例)
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的拦截器、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射...
分析了Hibernate和Spring整合实现持久层和服务层,以及Spring和Struts的整合实现WEB层,提出了一种基于SSH的web应用开发策略。在这种策略中,可大大降低代码的耦合性以及提高系统的开发效率。
struts+spring+hibernate ssh框架整合的一个实例
SSH实例 SSH实例 SSH实例 SSH实例 SSH实例
SSH中 struts hibernate spring 各起什么作用`介绍的非常详细~
SSH总结之Spring