package com.huawei.oss.filter;
public interface Filter {
void doFilter(Request request,Response response,FilterChain chain);
}
package com.huawei.oss.filter;
public class FaceFilter implements Filter {
public void doFilter(Request request, Response response,FilterChain chain) {
request.requestStr=request.requestStr.replace("<","{").replace(">","}")+"---->faceFilter";
chain.doFilter(request,response,chain);
response.responseStr +="---->FaceFilterResponse";
}
}
package com.huawei.oss.filter;
public class HtmlFilter implements Filter {
public void doFilter(Request request, Response response,FilterChain chain) {
request.requestStr=request.requestStr.replace("java","O(∩_∩)O~")+"---->HtmlFilterRequest";
chain.doFilter(request,response,chain);
response.responseStr +="--->HtmlFilterResponse";
}
}
package com.huawei.oss.filter;
public class SessionFilter implements Filter{
public void doFilter(Request request, Response response,FilterChain chain) {
request.requestStr=request.requestStr.replace("找工作","就业")+"--------->SessionFilter";
chain.doFilter(request,response,chain);
response.responseStr +="---->SessionFilterResponse";
}
}
package com.huawei.oss.filter;
import java.util.*;
public class FilterChain implements Filter {
private int index = 0;
private List<Filter> filters = new ArrayList<Filter>();
public FilterChain addFilter(Filter f)
{
this.filters.add(f);
return this;
}
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);
}
}
package com.huawei.oss.filter;
public class Request {
String requestStr;
public String getRequestStr() {
return requestStr;
}
public void setRequestStr(String requestStr) {
this.requestStr = requestStr;
}
}
package com.huawei.oss.filter;
public class Response {
String responseStr ;
public String getResponseStr() {
return responseStr;
}
public void setResponseStr(String responseStr) {
this.responseStr = responseStr;
}
}
package com.huawei.oss.filter;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String msg = "现在社会找工作难,<java>找的工作工资高";
Request request = new Request();
request.setRequestStr(msg);
Response response = new Response();
response.setResponseStr("response");
FilterChain chain = new FilterChain();
chain.addFilter(new HtmlFilter())
.addFilter(new FaceFilter())
.addFilter(new SessionFilter());
chain.doFilter(request,response,chain);
System.out.println(request.getRequestStr());
System.out.println(response.getResponseStr());
}
}