java 之 编码实现Filter学习示例
2015-04-20 11:46
281 查看
public interface Filter { void doFilter(Request request,Response response,FilterChain chain); } public class HTMLFilter implements Filter { @Override public void doFilter(Request request, Response response, FilterChain chain) { request.setRequestStr(request.getRequestStr().replace('<', '[').replace('>', ']')); chain.doFilter(request, response, chain); response.setResponseStr("-----------HtmlFilter()"); } } public class SensitiveFilter implements Filter { @Override public void doFilter(Request request, Response response, FilterChain chain) { request.setRequestStr(request.getRequestStr().replace("s","js")); chain.doFilter(request, response, chain); response.setResponseStr("-----------SensitiveFilter()"); } } import java.util.ArrayList; import java.util.List; public class FilterChain implements Filter { List<Filter> filters = new ArrayList<Filter>(); int index = 0; public FilterChain addFilter(Filter f) { this.filters.add(f); return this; } @Override
public void doFilter(Request request, Response response, FilterChain chain) { if(index==filters.size()) { return; } Filter f = filters.get(index); index++; f.doFilter(request, response, chain); } } public class Request { private String requestStr; public String getRequestStr() { return requestStr; } public void setRequestStr(String requestStr) { this.requestStr = requestStr; } } public class Response { private String responseStr="response"; public String getResponseStr() {
return responseStr; } public void setResponseStr(String responseStr) { this.responseStr += responseStr; } } public class TestFilter { /** * @param args */ public static void main(String[] args) { String msg = "<script>"; Request request = new Request(); request.setRequestStr(msg); Response response = new Response(); FilterChain fc = new FilterChain(); fc.addFilter(new HTMLFilter()).addFilter(new SensitiveFilter()); fc.doFilter(request, response, fc); System.out.println(request.getRequestStr()); System.out.println(response.getResponseStr());
} } 打印结果: [jscript] response-----------SensitiveFilter()-----------HtmlFilter()
相关文章推荐
- java 之 编码实现Filter学习示例
- 今天看到了一个用java实现复制,剪切,删除文件或文件夹的示例,感觉不错,欢迎学习(带详细注释)
- 我的Java开发学习之旅------>Base64的编码思想以及Java实现
- java学习之利用TCP实现的简单聊天示例代码
- java使用http实现文件下载学习示例
- java实现fibonacci数列学习示例分享(斐波那契数列)
- Java实现二维码QRCode的编码和解码与示例解析
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- 【JAVAWEB学习笔记】24_filter实现自动登录和解决全局的编码问题
- 我的Java开发学习之旅------>Base64的编码思想以及Java实现
- Android/Java 实现PCM与G.711编码互转
- java学习:ArrayList的实现及原理
- Java学习中遇到的编码问题
- 算法(第四版)学习笔记之java实现希尔排序
- 深入Java集合学习系列:HashMap的实现原理
- JWT(JSON Web Token) Java与.Net简单编码实现
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- java基础知识学习之代理深入学习(用动态代理实现AOP,FacotryBean)
- 跟小刀学习 java 数据结构 栈和队列的实现
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解