public class JavaWEBFilter {
public static void main(String[] args) {
String msg = "我们是共产主义接班人!";
Request request = new Request();
Response response = new Response();
response.setStr(msg);
request.setStr(msg);
FilterChain fc = new FilterChain();
Filter f1 = new Filter1();
Filter f2 = new Filter2();
fc.addFilter(f1);
fc.addFilter(f2);
fc.doFilter(request, response, fc);
System.out.println(request.getStr());
System.out.println(response.getStr());
}
}
----------
import java.util.ArrayList;
import java.util.List;
public class FilterChain implements Filter {
int index=0;
List<Filter> list = new ArrayList<Filter>();
Filter ft;
public FilterChain addFilter(Filter f){
list.add(f);
return this;
}
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
if(index==list.size()) return;
ft = list.get(index);
index++;
ft.doFilter(request, response, this);
}
}
----------
public class Filter1 implements Filter{
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
String r = request.getStr().replace("我","你");
request.setStr(r);
//执行完部分功能给Filterlian说一声
chain.doFilter(request, response, chain);
r = response.getStr()+"1";
response.setStr(r);
}
}
----------
public class Filter2 implements Filter{
@Override
public void doFilter(Request request, Response response, FilterChain chain) {
String r = request.getStr().replace("!", "............");
request.setStr(r);
chain.doFilter(request, response, chain);
r = response.getStr()+"2";
response.setStr(r);
}
}
----------
public class Response {
String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
FilterChain
最新推荐文章于 2021-09-10 14:10:42 发布