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

贝斯特专业网站昆明做网站排名

贝斯特专业网站,昆明做网站排名,网页设计实训总结ppt,大连做网站的一、什么是责任链模式 责任链模式#xff08;Chain of Responsibility Pattern#xff09;是一种行为型设计模式。其核心思想是将请求的发送者和接收者解耦#xff0c;通过一个中介链来传递请求#xff0c;使得多个对象都有可能接收请求#xff0c;从而避免请求发送者和接…一、什么是责任链模式 责任链模式Chain of Responsibility Pattern是一种行为型设计模式。其核心思想是将请求的发送者和接收者解耦通过一个中介链来传递请求使得多个对象都有可能接收请求从而避免请求发送者和接收者之间的耦合关系。 二、责任链模式的角色 抽象处理者Handler角色作为责任链模式的核心这个接口定义了统一的处理请求的方法并定义了如何将请求传递给下一个处理者。 具体处理者Concrete Handler角色实现抽象处理者的处理方法判断能否处理本次请求。如果可以处理请求则直接处理否则将请求传递给下一个处理者。 三、责任链模式的典型应用 多层拦截器在Web开发中可以使用责任链模式来实现多层拦截器每个拦截器都可以对请求进行预处理或后处理实现多层拦截的功能 。 可改变顺序的处理者必须按顺序执行多个处理者尤其在运行时执行顺序可改变时可以使用责任链模式。 多个对象可以处理请求当系统中存在多个对象每个对象都可能处理同一个请求但具体由哪个对象处理应在运行时决定。避免复杂的条件判断当请求需要根据多个条件进行不同的处理可以使用责任链模式避免使用嵌套的if-else语句使代码更加简洁易读。 四、责任链模式在FilterChain中的应用 责任链模式在FilterChain中的应用是Java Servlet API中一个经典的例子。在这种应用中每个过滤器Filter都有机会处理HTTP请求并且可以决定是否将请求传递给链中的下一个过滤器或目标资源。以下是每个类在责任链模式中的角色以及一个简单的代码案例 抽象处理者Handler 在FilterChain中Filter接口扮演了抽象处理者的角色。它定义了所有过滤器必须实现的doFilter方法该方法接收请求ServletRequest、响应ServletResponse和一个FilterChain实例 。 具体处理者Concrete Handler 具体过滤器类实现了Filter接口。在doFilter方法中每个过滤器可以对请求和响应进行处理然后通过调用FilterChain的doFilter方法将请求传递给链中的下一个过滤器  。 客户端Client 在这个上下文中客户端可以是任何发起HTTP请求的实体如Web浏览器。客户端发送请求到Servlet容器该容器负责构建过滤器链并处理请求 。 FilterChain责任链 FilterChain接口定义了doFilter方法用于调用链中的下一个过滤器或最终的资源如Servlet。FilterChain的实现类负责管理过滤器链的执行顺序  。 以下是一个简单的代码案例展示了两个过滤器如何在FilterChain中按顺序工作 1.定义第一个过滤器LoggingFilter public class LoggingFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println(LoggingFilter 初始化);}Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println(LoggingFilter: 请求开始...);// 执行下一个过滤器或目标资源chain.doFilter(request, response);System.out.println(LoggingFilter: 响应返回...);}Overridepublic void destroy() {System.out.println(LoggingFilter 销毁);} } 2.定义第二个过滤器AuthenticationFilter public class AuthenticationFilter implements Filter {Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println(AuthenticationFilter 初始化);}Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest (HttpServletRequest) request;Cookie[] cookies httpRequest.getCookies();if (cookies ! null) {for (Cookie cookie : cookies) {System.out.println(Found cookie: cookie.getName() cookie.getValue());}}// 继续执行过滤器链chain.doFilter(request, response);}Overridepublic void destroy() {System.out.println(AuthenticationFilter 销毁);} } 3.定义目标资源DemoServlet public class DemoServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(DemoServlet: 处理请求...);resp.getWriter().write(Hello, FilterChain!);} } 在这个例子中LoggingFilter和AuthenticationFilter是具体处理者它们实现了Filter接口并在doFilter方法中处理请求。FilterChain的实例通过chain.doFilter(request, response)调用传递请求给下一个过滤器或最终的Servlet资源。当访问DemoServlet时过滤器链将按顺序执行首先执行LoggingFilter然后是AuthenticationFilter最后是DemoServlet处理请求 。
http://www.zqtcl.cn/news/967994/

相关文章:

  • 免费网站排名优化在线南通科技网站建设
  • 辽宁网站建设招标怎么建设像天猫的网站
  • 新闻类网站排版网站建设东莞正规网站建设
  • 网站开发亿玛酷出名5重庆公司买深圳社保
  • 网站建设开发报价单苏州网上注册公司流程
  • 网站开发包含河南洛阳网络公司
  • 个人网站建设方案书使用几号纸网站出租目录做菠菜 有什么坏处
  • 烟台做网站案例产品设计欣赏
  • 长安网站建设多少钱室内设计学校培训的
  • 驻马店北京网站建设怎么用网站做转换服务器
  • 成都网站建设cdxwcx百度搜索关键词排名优化推广
  • 框架网站怎么做o2o是什么意思的
  • 山东响应式网站网页设计素材电影
  • 新都区网站建设网站设计公司排行榜
  • 网站建设需求分析调研表建筑品牌网站
  • html5商城网站如何查询网站建设者
  • 做重视频网站教育网站改版方案
  • 小网站谁有网站上线后做什么
  • 松江网站建设培训手机网站你们
  • 荆州网站建设 众火网北京小客车指标调控管理信息系统
  • 域名和网站一样吗自己开发小程序要多少钱
  • 咨询公司网站源码手机优化软件哪个好用
  • 行业网站模板小型影视网站源码
  • 湖北网站建站系统哪家好微信小程序怎么注销账号
  • 温州网站推广公司沈阳网站建设服务电话
  • 2019年的阜南县建设修路网站洛阳哪里有做网站的
  • 家里电脑可以做网站服务器吗佛山网络公司哪家最好
  • 做网站属于无形资产还是费用网站制作二维码
  • ps为什么做不了视频网站最近做网站开发有前途没
  • 平面设计师参考网站做网站建设推广好做吗