过滤器filter和拦截器interceptor的区别

1、filter是servlet,jsp里面的东西,应该说是属于规范了,而拦截器是struts的东西,不通用。
2、一个请求,get,post等方式,到后台,必须先经过filter,然后经过Interceptor,最后在通过在filter或者Interceptor里面的跳转,跳到指定的页面或者action或者servlet中。
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
4、filter是链式处理的,也就是一个filter过滤完后,如果还有过滤,那就得继续。顺序根据web.xml里面的顺序来。
5、filter是servlet包里面的一个接口,写一个filter,只要实现它,然后实现它的几个方法就算一个filter了,别忘记还得再web.xml里面配置。
6、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
7、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
8、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

猜你喜欢

转载自lukesun1987.iteye.com/blog/2379180