-
- public interface Filter {
- public void doFilter(Request req,Response res,FilterChain c);
- }
-
-
-
- public class HTMLFilter implements Filter{
- @Override
- public void doFilter(Request req, Response res,FilterChain fc) {
- req.requestStr=req.requestStr.replace("<", "[");
- req.requestStr=req.requestStr.replace(">", "]")+"--HTMLFilter";
- fc.doFilter(req, res, fc);
-
-
-
- res.responseStr+="--HTMLFilter";
- }
- }
-
-
-
- public class SensitiveFilter implements Filter{
- @Override
- public void doFilter(Request req, Response res,FilterChain fc) {
- req.requestStr=req.requestStr.replace("敏感", "mingan")+"--SensitiveFilter";
- fc.doFilter(req, res, fc);
- res.responseStr+="--SensitiveFilter";
- }
- }
-
-
-
- public class Request {
- public String requestStr;
- }
-
-
-
- public class Response {
- public String responseStr;
- }
-
-
- public class FilterChain implements Filter{
- private List<Filter> list=new ArrayList<Filter>();
- public FilterChain addfilter(Filter filter){
- list.add(filter);
- return this;
- }
- int index=0;
- @Override
- public void doFilter(Request req, Response res,FilterChain fc) {
- if(index==list.size())return;
- Filter f=list.get(index);
- index++;
-
- f.doFilter(req, res, fc);
- }
- }<PRE class=java name="code">public class Client {
-
-
-
-
-
-
- public static void main(String[] args) {
- Request req=new Request();
- Response res=new Response();
- req.requestStr="这是我的一个敏感链接<a>优酷</a>";
- res.responseStr="response";
- FilterChain fc=new FilterChain();
- fc.addfilter(new HTMLFilter());
-
- FilterChain fc1=new FilterChain();
- fc1.addfilter(new SensitiveFilter());
- fc.addfilter(fc1);
-
- fc.doFilter(req, res,fc);
- System.out.println(req.requestStr);
- System.out.println(res.responseStr);
- }
-
-
-
-
-
- }</PRE>
- <PRE></PRE>
|