责任链模式

了解了一下责任链模式,简单的说下自己的理解吧:

   责任链就是说待处理的数据在request的时候,先经过filter1的处理,再经过filter2的处理,然后response时,先经过filter2的处理,在经过filter1的处理。


实现思路是FilterChain包括filter1和filter2,同时,filter1和filter2同时都拥有FilterChain的引用,在FilterChain(fc)调用filter1之后,通过自身持有的fc再次调用fc的下一个filter。

那么在执行完最后一个filter之后,会返回到前一个filter。



public class FilterChain {

    private List<Filter> filters = new ArrayList<Filter>();

    int index = 0;

public void doFilter(Request request , Response response , FilterChain fc){    
        
        if(index == filters.size()){    
            return;
        }
        
        Filter f = filters.get(index);
        
        index++;
        
        f.doFileter(request, response,fc);
        
    }

}


public interface Filter {
    public void doFileter(Request request , Response response , FilterChain filterChain);

//实现类中,在执行完之后再次调用dofilter方法

/**public void doFileter(Request request, Response response ,FilterChain filterChain) {
        
        request.requestStr = request.requestStr.replace("喵", "猫");
        
        filterChain.doFilter(request, response, filterChain);//执行完第一步之后调用dofilter方法,继续调用下一个filter
        
        response.responseStr += "111";
    }

**/


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值