用过JSP编程的人都应该知道有个叫filter的东西。 过滤器非常有用,经常用于对字符编程的过滤,也可用于对请求进行统一验证等等。它的过程不难理解,感觉无非是拦截了请求,过滤后再传给其它filter或servlet又或jsp页面。具体理解起来,还挺多东西的。
刚看了《J2EE核心模式》(j2ee core pattern)过滤器,觉得有些东西需要弄明白,就写了个模拟程序。































































































从执行结果可以看到,目标类(Target)只向请求里添加 "-target" 字符串,结果因为经过了过滤器,返回就不只是"-target" 字符串。
以上的实现参照了《J2EE核心模式》书中的示例代码。写完了,运行模拟了一下,觉得效果有点像,虽然离真正标准的过滤器还差得远。所以我决定去查看下JSP的源码,结果失望而归。因为Filter接口的代码只有这么几行。









从这几行代码能看出什么来吗?我看不出名堂来,只知道接口是定义操作,真正的具体的实现工作让容器(比如Tomcat)做了。那可能要去看Tomcat的源码才能完全了解 Filter。算了,不理它。
听说过滤器的实现是使用责任链模式来实现的。于是我再写一个模拟程序,大概用到了责任链模式(因为不熟,只能写个样子)。












































































































目前对过滤器的理解就只能到这里了。以后有空再去学习学习下。