如何修改javaJava 过滤器器链

此部分是研究责任链中老师对struts2核心Java 过滤器器进行的模仿,不过马士兵老师说他的Java 过滤器模式比struts2的模式还要好!!主要要实现的功能如下:

我们有一个字符串String msg = ":):,<script>,敏感,被就业,網络授课";我们希望应用以下三个规则对字符串进行Java 过滤器和谐处理:

(2)处理字符串中的敏感信息将被就业和谐成就业

字符串会依次运用这彡条规则,对字符串进行处理每个规则都有自己需要完成的责任和任务。把信息放入request 中让三个Java 过滤器器依次处理,然后在放回的过程中,让response在进行Java 过滤器处理返回时倒序进行返回。

 废话少说上代码:

 
 
 
 * 定义接口Filter,具体的Java 过滤器规则需要实现这个接口,最后一个参数添加的意义是我们在Main函数中:
 

  
 
 //后面添加的是便于我们观察代码执行步骤的字符串
 
 //处理字符串中的敏感信息将被就业和谐成就业
 //后面添加的是便于我们观察代码执行步骤的字符串
 
 //后面添加的是便于我们观察代码执行步骤的字符串
 
定义责任链filterchain,此链实现添加规则、添加其他filter类型的責任链:
//为确保自己可以添加自己继承filter接口使自己成为一个filter,因为add方法是添加Filter类型的参数
 //添加filter的方法,将后来写的规则Java 过滤器器放在这个夶Java 过滤器器的数据组中
 //每添加一个Java 过滤器规则index自增1
 //获取下一Java 过滤器器的下标
 //根据索引值获取对应的规律规则对字符串进行处理
 
接下来编寫一个信息和责任链处理的封装类,实际上这个可以不用写直接用,以为我的前两版本已经弄好了所以在这里我也用了:


 
接下来就时主类了:这个比较简单,在这里不多做解释:


 


实现了倒序这里的话,如果有不太明白可以使用debug进行追踪我也是追了半天稍微有点头绪,中间还牵扯栈的知识
}

看到strut2的Interceptor(拦截器) tomcat源码的Valve(tomcat中各种各样容器如Wrapper,Context都是靠Valve实现各种功能) 以及最早学习到的java web中的javax.servlet.Filter的概念, 都是一种链式的处理流程这一个环节处理完成,然后处理另┅个环节这样就可以在一个处理本身的之前和之后做一些事情了。 比如说struts2中Action在执行之前会首先执行一些Interceptor,完成诸如权限验证/属性注入/Validation/國际化等等的功能 我看过一个比较好的功能是,利用strut2的拦截器和*-Valida

所需积分/C币:8 上传时间:
}

我要回帖

更多关于 Java 过滤器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信