java學(xué)習(xí)

          java學(xué)習(xí)

           

          設(shè)計(jì)模式之職責(zé)鏈實(shí)現(xiàn)攔截器棧

          public interface Filter {
          void doFilter(Request request, Response response, FilterChain chain);
          }
          public class FilterChain implements Filter {
          List<Filter> filters = new ArrayList<Filter>();
          int index = 0;
          public FilterChain addFilter(Filter f) {
          this.filters.add(f);
          return this;
          }
          @Override
          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);
          }
          }
          public class HTMLFilter implements Filter {
          @Override
          public void doFilter(Request request, Response response, FilterChain chain) {
          //process the html tag <>
          request.requestStr = request.requestStr.replace('<', '[')
            .replace('>', ']') + "---HTMLFilter()";
          chain.doFilter(request, response, chain);
          response.responseStr += "---HTMLFilter()";
          }
          }
          public class SesitiveFilter implements Filter {
          @Override
          public void doFilter(Request request, Response response, FilterChain chain) {
          request.requestStr = request.requestStr.replace("", "")
          .replace("", "") + "---SesitiveFilter()";
          chain.doFilter(request, response, chain);
          response.responseStr += "---SesitiveFilter()";
          }
          }
          public class Request {
          String requestStr;
          public String getRequestStr() {
          return requestStr;
          }
          public void setRequestStr(String requestStr) {
          this.requestStr = requestStr;
          }
          }
          public class Response {
          String responseStr;
          public String getResponseStr() {
          return responseStr;
          }
          public void setResponseStr(String responseStr) {
          this.responseStr = responseStr;
          }
          }
          public class Main {
          /**
          * @param args
          */
          public static void main(String[] args) {
          String msg = "";
          Request request = new Request();
          request.setRequestStr(msg);
          Response response = new Response();
          response.setResponseStr("response");
          FilterChain fc = new FilterChain();
          fc.addFilter(new HTMLFilter())
           .addFilter(new SesitiveFilter())
           ;
          fc.doFilter(request, response, fc);
          System.out.println(request.getRequestStr());
          System.out.println(response.getResponseStr());
          }
          }

          posted on 2017-09-04 17:52 楊軍威 閱讀(264) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 波密县| 汝阳县| 天水市| 泽库县| 石河子市| 德保县| 林州市| 清流县| 柯坪县| 锦屏县| 镶黄旗| 如皋市| 道真| 景德镇市| 辰溪县| 惠州市| 广安市| 皋兰县| 女性| 怀柔区| 徐闻县| 西乡县| 彩票| 丰都县| 兴仁县| 客服| 大渡口区| 丰顺县| 涟水县| 礼泉县| 枣阳市| 景东| 射洪县| 北安市| 峨山| 河北省| 宁都县| 阿坝县| 拜城县| 靖州| 辽宁省|