当前位置: 首页 > news >正文

做网站如何写代码苏州建设培训中心

做网站如何写代码,苏州建设培训中心,用word制作网页,网站建设设计技术方案模板下载职责链模式 责任链(Chain of Responsibility)模式:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这…

职责链模式

责任链(Chain of Responsibility)模式:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

案例

实习一个tomcat的过滤器链 A -> B -> C -> 目标方法 -> C -> B -> A

目标方法:

public class My {public void hello(){System.out.println("hello world");}
}

request和response:

public class HttpRequest {String msg;public HttpRequest(String msg) {this.msg = msg;}
}
public class HttpResponse {String content;public HttpResponse(String content) {this.content = content;}
}

过滤器:

public interface Filter {void doFilter(HttpRequest request,HttpResponse response,FilterChain chain);
}
public class HttpFilter implements Filter{@Overridepublic void doFilter(HttpRequest request, HttpResponse response, FilterChain chain) {System.out.println("HttpFilter正在执行");chain.doFilter(request,response,chain);System.out.println("HttpFilter已返回");}
}
public class CharacterFilter implements Filter{@Overridepublic void doFilter(HttpRequest request, HttpResponse response, FilterChain chain) {System.out.println("CharacterFilter 正在执行");chain.doFilter(request,response,chain);System.out.println("CharacterFilter 已返回");}
}
public class EncodingFilter implements Filter{@Overridepublic void doFilter(HttpRequest request, HttpResponse response, FilterChain chain) {System.out.println("EncodingFilter 正在执行");chain.doFilter(request,response,chain);System.out.println("EncodingFilter 已返回");}
}

过滤器链:

public class FilterChain implements Filter{private int cursor = 0;private List<Filter> filters = new ArrayList<>();private My target;public FilterChain(My target) {this.target = target;}public void addFilter(Filter filter){filters.add(filter);}@Overridepublic void doFilter(HttpRequest request, HttpResponse response, FilterChain chain) {if(cursor < filters.size()){Filter filter = filters.get(cursor);cursor++;filter.doFilter(request,response,chain);}else{target.hello();}}
}

测试:

public class Main {public static void main(String[] args) {My my = new My();FilterChain filterChain = new FilterChain(my);filterChain.addFilter(new HttpFilter());filterChain.addFilter(new CharacterFilter());filterChain.addFilter(new EncodingFilter());filterChain.doFilter(new HttpRequest("request"),new HttpResponse("response"),filterChain);}
}
http://www.yayakq.cn/news/521156/

相关文章:

  • 优享微信网站建设网站源码平台
  • 网站建设运营策划方案阿里云wordpress插件
  • 自己做网站要买域名吗wordpress 里程密
  • 网站建设服务商排行网站打开慢原因
  • 光明新区网站建设ppt制作神器
  • 美食类网站模板代理注册公司排名
  • 怎样建官方网站如何编辑html网页
  • 什么网站做ppt好wordpress横菜单间隔
  • 网站内做动图建设部的网站首页
  • 做商城网站怎么做网站建设联系
  • 傻瓜式网站开发软件做网站_你的出路在哪里
  • 汕头网站建设工作wordpress 访客ip
  • 重庆建设银行网站首页怎么注册一个软件平台
  • 丝网外贸做哪些网站网站模板安装步骤
  • 网站在线咨询系统镇江网站开发公司
  • 建设工程监理网站新郑网站建设
  • 除了凡科建站还有什么网站吗wordpress模板之家
  • 红色网站 推荐腾讯云服务器学生机
  • 建设公司网站需要多少钱免费域名注册登录
  • 沧州建设局网站wordpress 微软
  • 手机能看禁止网站的浏览器饰品类网站建设定位
  • 西安网站制作南昌公司动态域名网站
  • 自己怎么用h5做网站wordpress七牛设置
  • 可以做长页的网站营销咨询公司
  • php网站开发工程师招聘会平面设计网页设计师招聘
  • 手机产品展示网站模板上海网页建站
  • 长沙网站开发设计WordPress如何快速排名
  • 做网站是干什么用的自己创建一个网站需要多少钱
  • 对网站建设的讲话简历代写
  • 新手做网站看什么书wordpress 嵌入 插件