`
fang289040324
  • 浏览: 1860 次
文章分类
社区版块
存档分类
最新评论

java filterchain

阅读更多


马士兵的filterchain练习一下,有点小改动
 

package filter;

import filterChain.FilterChain;
import information.Request;
import information.Response;

public interface Filter {
	public void doFilter(Request rq, Response rp, FilterChain fc);
}

 

package filterChain;

import information.Request;
import information.Response;

import java.util.ArrayList;
import java.util.List;

import filter.Filter;

public class FilterChain implements Filter {

	List<Filter> chain = new ArrayList<Filter>();
	int i = 0;

	public Filter addFilter(Filter f) {
		chain.add(f);
		return this;
	}

	public void doFilter(Request rq, Response rp){
		doFilter(rq, rp, this);
	}
	
	public void doFilter(Request rq, Response rp, FilterChain fc) {
		if (i == chain.size())
			return;
		Filter f = chain.get(i);
		i++;
		f.doFilter(rq, rp, fc);
	}
}

 

package filter.impl;

import information.Request;
import information.Response;
import filter.Filter;
import filterChain.FilterChain;

public class TextFilter implements Filter {

	public void doFilter(Request rq, Response rp, FilterChain fc) {
		rq.setS(rq.getS().replace("fang", "方"));
		fc.doFilter(rq, rp);
		rp.setS(rp.getS()+"TextFilter ");
	}
}

 

package filter.impl;

import information.Request;
import information.Response;
import filter.Filter;
import filterChain.FilterChain;

public class AddFilter implements Filter {

	public void doFilter(Request rq, Response rp, FilterChain fc) {
		rq.setS("姓名: "+rq.getS());
		fc.doFilter(rq, rp);
		rp.setS(rp.getS() + "AddFilter ");
	}

}

 

package information;

public class Request {
	String s;

	public String getS() {
		return s;
	}

	public void setS(String s) {
		this.s = s;
	}
}

 

package information;

public class Response {
	private String s;

	public String getS() {
		return s;
	}

	public void setS(String s) {
		this.s = s;
	}
	
}

 

package test;

import filter.impl.AddFilter;
import filter.impl.TextFilter;
import filterChain.FilterChain;
import information.Request;
import information.Response;

public class Test {
	public static void main(String[] args) {
		Request rq = new Request();
		Response rp = new Response();
		TextFilter f = new TextFilter();
		AddFilter af = new AddFilter();
		FilterChain fc = new FilterChain();
		
		rq.setS("fangshaowei");
		rp.setS("返回信息: ");
		fc.addFilter(f);
		fc.addFilter(af);
		fc.doFilter(rq, rp, fc);
		
		System.out.println(rq.getS());
		System.out.println(rp.getS());
	}
}

 

  • 大小: 34 KB
分享到:
评论

相关推荐

    自定义FilterChain的编写

    不使用Servlet Filter接口,自定义FilterChain处理多个Filter执行顺序问题

    java sql注入l

    03 import java.io.IOException; 04 import java.util.Enumeration; 05 06 import javax.servlet.Filter; 07 import javax.servlet.FilterChain; 08 import javax.servlet.FilterConfig; 09 import ...

    JSE基础与设计模式

    * 当前类名:FilterChain.java * 项目名称:JavaStudy * 创建时间:2011-12-28 */ package org.java.com.design.filter; import java.util.ArrayList; import java.util.List; public class FilterChain ...

    JSE基础与设计模式实例

    * 当前类名:FilterChain.java * 项目名称:JavaStudy * 创建时间:2011-12-28 */ package org.java.com.design.filter; import java.util.ArrayList; import java.util.List; public class FilterChain ...

    JAVA J2EE 类库文档

    FilterChain FilterConfig GenericServlet HttpServlet HttpServletRequest HttpServletRequestWrapper HttpServletResponse HttpServletResponseWrapper HttpSession HttpSessionActivationListener ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 592 20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 592 20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与...

    java servlet 监听器

    FilterChain chain) throws IOException, ServletException { MyRequest myRequest = null; HttpServletRequest request2 = (HttpServletRequest) request; if (request2.getMethod() == "post") { ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 592 20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 592 20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与...

    聊天室程序下载

    import java.io.IOException; import javax.servlet.*; public class CharacterEncodingFilter implements Filter{ protected String encoding = null; protected FilterConfig filterConfig = null; public ...

    购物车源码

    import java io IOException; import javax servlet Filter; import javax servlet FilterChain; import javax servlet FilterConfig; import javax servlet RequestDispatcher; import javax servlet ...

    一个简单的JAVA字符集过滤器实现

    代码如下:package dw05prj.util.filter; import javax.servlet.Filter; import javax.servlet.FilterConfig... import javax.servlet.FilterChain; import java.io.IOException; /*页面字符集过滤流*/ /* 在web.xml中配

    Filter_Listener相信代码使用

    import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest...

    Filter过滤器

    在 Servlet API 中定义了三个接口类来开供开发人员编写 Filter 程序:Filter, FilterChain, FilterConfig。 Filter 程序是一个实现了 Filter 接口的 Java 类,与 Servlet 程序相似,它由 Servlet 容器进行调用和...

    郑州大学软件学院机试题-2011-2012_JSP程序设计

    2. FilterChain接口中仅定义一个方法:public void doFilter(ServletRequest req,ServletResponse res),该方法的作用是。() (1分) A.用于将请求/响应继续沿过滤器链向后传给下一个过滤器。如果调用该方法的过滤...

    struts2-1.zip

    模型:封装应用程序的数据和业务逻辑(POJO一个普通的JAVA类) 视图:实现应用程序的信息显示功能(JSP) 控制器:接收来自用户的输入,调用模型层,响应对应的试图组件(Servlet Filter) 使用Filter 作为控制...

    c3p0工具包(jdbc)

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet....

    jsp实现登录验证的过滤器

    本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下 1.新建一个Dynamic Web Project项目,里面新建1个filter文件、1个servlet文件...import javax.servlet.FilterChain; import javax.servlet.Fi

    跨域访问Filter实例

    JAVA配置跨越访问Filter APP要访问WEB系统,需要进行跨域设置 关键: public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {}

Global site tag (gtag.js) - Google Analytics