此部分是研究责任链中老师对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
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。