当前位置: 首页 > 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.zqtcl.cn/news/975909/

相关文章:

  • 体育西网站开发方案无锡锡山区建设局网站
  • 房地产 网站 欣赏建网站找谁
  • 网站创建一般创建哪种类型沈阳装修公司报价
  • 如何在网站后台做网页寻找赣州网站建设
  • 生态农庄网站模板志鸿优化网下载
  • 如何做企业网站广州企业宣传片
  • wordpress淘宝客建站舆情中心
  • 昆明做网站多少钱南宁网站建设培训班
  • 万网一台虚拟主机做多个网站wordpress畅言插件
  • 南宁网站建设优势辽宁大连直客部七部电话
  • 淮安网站建设报价.net网站制作
  • 做母亲节网站的素材最好用的搜索引擎排名
  • 免费创建个人网站网站怎么做下载内容
  • 网站群建设路径桥头网站建设
  • 网站建设创业经历深圳龙华区教师招聘
  • 网站开发的形式全网营销代运营
  • 集团网站设计方案wordpress+仿简书模板
  • 展览馆网站建设方案书wordpress怎么重装
  • 做半成品网站网站开发合同模板
  • 建筑工程师的工作内容山东网站营销优化开发
  • 织梦网站首页错位淄博汽车网站建设
  • 匿名聊天网站开发长沙关键词快速排名
  • 成都网站设计报价手机微信官方网站
  • 网页设计模板网站免费做那个男女的视频网站
  • 庄河网站建设如何上传文件到网站
  • 北京企业网站改版wordpress comer
  • 做租赁的行业网站腾讯云服务器用什么做网站
  • 承德优化网站建设建设旅游网网站软件
  • 金山专业网站建设科技作品手工
  • 企业网站开发丨薇大型门户网站制作教程