Tomcat Filter过滤器责任链模式,过滤器拦截器区别?

 1、责任链模式:将⼀个事件处理流程分派到⼀组执⾏对象上去,这⼀组执⾏对象形成⼀个链式结构,事件处理请求在这⼀组执⾏对 象上进⾏传递。

2、过滤器和拦截器:

1、过滤器filter:是在java web中,你传⼊的request,response提前过滤掉⼀些信息,或者提前设置⼀些参数,然后 再传⼊servlet或者struts的 action进⾏业务逻辑,⽐如过滤掉⾮法url(不是login.do的地址请求,如果⽤户没有登陆都过滤 掉),或者在传⼊servlet或者 struts的action前统⼀设置字符集,或者去除掉⼀些⾮法字符;

2、拦截器interceptor:是在⾯向切⾯编程的就是在你的service或者⼀个⽅法,前调⽤⼀个⽅法,或者在⽅法后调⽤⼀个 ⽅法⽐如动态代理就是拦截器的简单实现,在你调⽤⽅法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调⽤⽅法后打印出 字符串,甚⾄在你抛出异常的时候做业务逻辑的操作。拦截是AOP的⼀种实现策略;

3、区别: a. 拦截器是基于java的反射机制的,⽽过滤器是基于函数回调。 b. 拦截器不依赖于servlet容器,过滤器依赖与servlet容器。 c. 拦截器只能对action请求起作⽤,⽽过滤器则可以对⼏乎所有的请求起作⽤。 d. 拦截器可以访问action上下⽂、值栈⾥的对象,⽽过滤器不能访问。 e. 在action的⽣命周期中,拦截器可以多次被调⽤,⽽过滤器只能在容器初始化时被调⽤⼀次

posted @ 2023-09-09 17:08  CGoodHabits  阅读(305)  评论(0)    收藏  举报