Filter过滤器 和 java回调机制的一点理解

过滤器

Filter 是AOP(面向切面)思想的一种实现 .
OOP(面向对象) 的编程实现 利用 继承 封装 多态 把一切的事务打造成对象结构. 很好的帮我们梳理了 从上到下 的关系 然后 所有的事务都有共同的行为 如果强行将这个些行为封装到一个类中 让所有的对象都继承这个类. 好比将一切不相干的东西 拧在一起 未免有些生硬.
AOP 思想则是对 OOP的一个补充 很好的帮我们梳理了 从左到右的关系 比如 日志功能,登陆校验 等等…

Java常见的AOP实现有两种 Filter 和 动态代理 (也可以称之为 过滤器 和 拦截器 )
Filter 是基于回调机制实现的.

这里不得不说的 什么是java回调机制
现实场景: 领导 通知 员工 做 A 事情. 当员工完成A事情则需要通知 领导完成的结果.

首先定义了一个 收到信号后的接口
Filter过滤器 和 java回调机制的一点理解

领导既然要接受干完事情的结果 那么就必须 实现CallBackInterface接口

Filter过滤器 和 java回调机制的一点理解
而员工做事必须知道是哪个领导分配的任务. 只要领导实现了 CallBackInterface接口 那么就一定可以通过 over方法 来通知领导

Filter过滤器 和 java回调机制的一点理解
这就是 java回调机制 那么到这里 我们说Filter是基于java回调机制的

我们可以吧 FilterChain 看成是 领导 request 和 response 看成是我们需要处理的文件

Filter过滤器 和 java回调机制的一点理解
我们再 doFilter中 对 request 和 response 进行处理
然后通过 filterChain的doFilter 来通知领导 并且将处理的文件(request ,response )交换给老板.