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

潘家园网站建设公司自己电脑做网站服务器

潘家园网站建设公司,自己电脑做网站服务器,文具网站建设理念,北京软件公司名单java责任链设计模式在本教程中#xff0c;我们将学习如何在Java中实现责任链模式。 责任链设计模式涉及到拥有一系列负责处理请求的对象链。 当客户端发送请求时#xff0c;第一个处理程序将尝试处理该请求。 如果可以处理#xff0c;则请求处理在此结束。 但是#xff0c… java责任链设计模式 在本教程中我们将学习如何在Java中实现责任链模式。 责任链设计模式涉及到拥有一系列负责处理请求的对象链。 当客户端发送请求时第一个处理程序将尝试处理该请求。 如果可以处理则请求处理在此结束。 但是如果处理程序无法处理用户请求则它将转到链中的下一个处理程序。 该过程将继续进行直到链中的任何一个处理程序成功处理请求或链结束为止。 如果整个链条都无法处理该请求则意味着该请求仍然无法满足。 为什么要使用责任链 责任链是我们软件行业中非常重要的设计模式。 它具有以下优点 由于用户不需要关心哪个对象将处理其请求因此它促进了用户与系统之间的松散耦合。 Java异常处理机制也利用了这种模式。 如果找不到合适的catch块则将请求委托给调用方方法进行处理直到找到合适的处理程序为止 通过让请求通过一系列过滤器该模式还可以找到其在过滤用户请求中的应用 UML表示形式 责任链模式的UML表示类似于 在这里我们具有以下类型的对象 客户发出用户请求的代码 处理程序 抽象超类或定义请求处理程序方法的接口 ConcreteHandler Handler的实现类 处理程序对象在链中从一个连接到另一个。 另外 每个具体处理程序都以其自己独特的方式处理请求。 定义抽象处理程序 让我们使用责任链实现请求过滤逻辑。 首先我们将定义一个抽象的RequestFilter类 public abstract class RequestFilter {     private RequestFilter next;  public RequestFilter(RequestFilter next) { this .next next; }  public boolean doFilter(HttpServletRequest request);     public void getNext() { return this .next; } .next; } } 定义具体处理程序 现在让我们定义链中的第一个过滤器类它将阻止来自可疑IP地址的请求 public class SuspiciousRequestFilter extends RequestFilter {     public SuspiciousRequestFilter(RequestFilter next) { super (next); }   public boolean doFilter(HttpServletRequest request) { if (hasMaliciousIntent(request.getRemoteAddr()) { //blocks the request return false ; } else if (next null ) { //filter chain ended return false ; } return this .getNext().doFilter(request); }  public boolean hasMaliciousIntent(String ipAddress) { ... } } 同样让我们​​定义链中的第二个过滤器它将阻止未授权的请求 public class UnauthorizedRequestFilter extends RequestFilter {     public UnauthorizedRequestFilter(RequestFilter next) { super (next); }   public boolean doFilter(HttpServletRequest request) { if (isUserUnauthorized(request)) { //blocks the request return false ; } else if (next null ) { //filter chain ended return false ; } return this .getNext().doFilter(request); }  public boolean isUserUnauthorized(HttpServletRequest request) { ... } } 最后一个过滤器将识别和阻止尝试登录次数超出的用户 public class ExceededLoginAttemptsRequestFilter extends RequestFilter {     public ExceededLoginAttemptsRequestFilter(RequestFilter next) { super (next); }   public boolean doFilter(HttpServletRequest request) { if (hasExceededLoginAttempts(request)) { //blocks the request return false ; } else if (next null ) { //filter chain ended return false ; } return this .getNext().doFilter(request); }  public boolean hasExceededLoginAttempts(HttpServletRequest request) { ... } } 调用链 最后是时候将它们编织成链了 HttpServletRequest httpServletRequest ...   //the last filter in our chain RequestFilter exceededAttemptsFilter new ExceededLoginAttemptsRequestFilter( null );   RequestFilter unauthorizedFilter new UnauthorizedRequestFilter(exceededAttemptsFilter); RequestFilter suspiciousActivityFilter new SuspiciousRequestFilter(unauthorizedFilter);   suspiciousActivityFilter.doFilter(httpServletRequest); 在这里每个用户请求将遵循以下过滤链 这些过滤器标准之一一旦匹配匹配的过滤器就会过滤掉该用户请求。 这也意味着剩余的链将被跳过。 结论 在本教程中我们学习了如何以及何时使用责任链设计模式。 翻译自: https://www.javacodegeeks.com/2019/09/chain-of-responsibility-design-pattern-in-java.htmljava责任链设计模式
http://www.pierceye.com/news/975909/

相关文章:

  • 找外包公司做网站的好处和坏处wordpress 访问量大
  • 淄博 网站设计越秀公司网站建设
  • 网站该如何做本地网站搭建软件
  • 如何做汽车团购网站学做馒头面包哪个网站好
  • 中国科技成就总结莱芜网站优化排名公司
  • 中国建设银行网站企业网银收费北京网站建设小程序开发
  • 成交型网站倡导公司网络营销课程总结1000字
  • 网站建设注册前端开发培训机构推荐
  • 遵义网站推广中国房地产app下载安装最新版
  • c语言网站建设禅城网站开发
  • 宁波品牌网站制作哪家好太平阳电脑网网站模板
  • seo网站外链工具看设计比较好的网站
  • 济南道驰网站建设有限公司怎么样某网站网站的设计与实现
  • 服装印花图案设计网站设计一个网站要多久
  • ai怎么做自己的网站getpage wordpress使用详解
  • 龙岩做网站推广龙岗网站 建设深圳信科
  • 沈阳网站建设 网络服务广告公司首页
  • 旅游网站建设导航栏中国哪里正在大开发大建设
  • 哪能建设网站建设网站需要哪些流程图
  • 网站YYQQ建设o2o型网站
  • 给客户做网站 赚钱吗赣州省住房和城乡建设厅网站
  • 营销优化型网站怎么做手机app网页制作
  • 上海网站建设服wordpress友情链接排序
  • 沈阳市和平区网站建设编程课适合多大孩子学
  • 东阳网站优化懒人图库
  • 马关县网站建设专注营销型网站建设
  • 微信公众号公众平台太原seo关键词优化
  • 沈阳网站建设方案二级网站怎样被百度收录
  • 厦门数字引擎 怎么打不开网站youku网站开发技术
  • 中小企业网站建设论文郑州网站服务公司