`

设计模式之责任链模式(tomcat filters)

阅读更多


责任链模式是指由某件任务可以由很多处理者处理,这些处理者保存着下一个处理者的引用,行程一条链,每个处理者只能处理该任务或者将任务交由下一个处理者处理,直到该任务被某个处理者处理或者最终没有处理者为止,该任务由最开始并不知道是谁来处理这个任务,只是把任务抛给第一个处理者而已。

 

责任链模式类图:



 

个人觉得也可以不用把一个handler注入另一个handler,虽然与原始的责任链模式类图有点儿出入,单只要理解责任链模式思想,灵活运用就可以。

 

我是用如下的方式用的



 

Tomcat过滤器(filter)实现原理即是用的责任链模式,但也不是一个filter引用另一个filter,是一个FilterChain统一管理所有filters为一个链,以下为我画的tomcat filter原理类图,有一些实现细节没有全画出来,比如ApplicationFilterChain类其实维护的是一个ApplicationFilterConfig(对filter的包装,加入了filterName、mapping关系等属性)类的数组,并不直接是Filter类的数组,但为了能更直观简单的体现原理,就没有把太细节的东西画出来

 

 

  • 大小: 22.5 KB
  • 大小: 23.4 KB
  • 大小: 47.2 KB
分享到:
评论

相关推荐

    apache-tomcat-7.0.40-src源码

    9. **扩展性**:Tomcat源码允许开发者自定义Valves(请求处理管道中的组件)、Filters(过滤器)、Listeners(监听器)等,以实现特定功能。 10. **模块化设计**:Tomcat的模块化设计使得各个组件之间松耦合,方便...

    Tomcat 跨域包

    【标题】"Tomcat 跨域包"涉及的是在J2EE环境中,使用Tomcat服务器解决Web应用跨域访问问题的技术。...理解并熟练掌握CORS机制及其在Tomcat中的实现,对于从事J2EE开发的工程师来说是非常重要的技能之一。

    Professional Servlets and JSP The J2EE Web Tier

    本书深入探讨了Servlet和JSP的众多组件,其中包括自定义标签库(Custom Tag Libraries)、可用的新过滤器(filters)和流行的Servlet与JSP设计模式。自定义标签库能够帮助开发者创建可重用的代码组件,增强代码的...

    利用Servlet和JSP设计并实现简单的图书管理系统汇编.pdf

    MVC(Model-View-Controller)是软件设计模式之一,用于分离应用程序的数据模型、用户界面和控制逻辑。在这个系统中,Servlet作为Controller处理用户请求,JSP作为View展示结果,而数据模型(Model)通常由JavaBean...

    利用Servlet和JSP设计并实现简单的图书管理系统.pdf

    【描述】: 本实验旨在通过Servlet和JSP技术来构建一个基本的图书管理系统,涉及JDBC操作、Servlet与JSP的结合、MVC设计模式以及监听器和过滤器的运用。 【知识点详解】: 1. **JDBC基础操作**: JDBC(Java ...

    阿里面试题目总结.pdf

    6. **设计模式**:通常需要了解单例、工厂、观察者、装饰器、适配器、代理等常见的23种设计模式,以及六大设计原则:单一职责、开闭原则、里氏替换、依赖倒置、接口隔离和迪米特法则。 7. **UML模型图**:类图中的...

    jsp在线论坛.zip

    4. **MVC设计模式**:该在线论坛可能采用了Model-View-Controller架构,这是一种常见的Web应用设计模式。模型负责业务逻辑,视图负责展示,控制器负责协调两者。掌握MVC有助于代码组织和可维护性。 5. **数据库交互...

    跟我学Java Web随书源代码

    此外,你可能会发现使用了MVC设计模式,这是一种常见的软件设计模式,用于分离应用程序的数据模型、用户界面和控制逻辑。在Java Web中,这通常表现为:Model代表业务逻辑和数据,View负责展示,而Controller处理用户...

    崔希凡JavaWeb视频教程_day19-资料源码

    5. **MVC(Model-View-Controller)模式**:在讲解Web开发时,崔希凡可能会提到MVC设计模式,它是Web应用架构的标准,有助于分离业务逻辑、数据模型和用户界面。 6. **数据库交互**:JavaWeb应用通常需要与数据库...

    Java开发指南--Servlets和JSP篇

    MVC(Model-View-Controller)设计模式常被用来组织这些组件,其中模型(Model)存储和管理数据,视图(View)负责显示,控制器(Controller)处理用户输入和协调模型与视图。 为了开发Servlets和JSP应用,你需要...

    《Java Web开发学习手册》项目源码

    3. **MVC设计模式** Model-View-Controller模式是Java Web开发中的常用架构,有助于分离业务逻辑、数据模型和用户界面。通过分析源码中的Controller、Model和View组件,可以了解如何实现MVC,提高代码的可维护性和...

    struts step by step 教程

    最简单的方法是使用Struts编辑器的图形设计模式。Struts编辑器提供了一个拖放工具,可以方便地从视觉上生成页面流程。 以下是一个示例应用程序的流程图: - **初始状态**: 显示用户登录页面。 - **用户登录**: ...

    JavaWeb习题解析与实验指导_JavaWeb习题解析与实验指导_

    4. **MVC(Model-View-Controller)模式**:这是一种设计模式,常用于Web应用开发。理解模型、视图和控制器之间的关系以及它们如何协同工作是关键。 5. **Filter和Listener**:这两种组件在JavaWeb中用于扩展和增强...

    struts Key Technologies Primer.pdf

    它是基于MVC(Model-View-Controller)设计模式,用来帮助开发者构建具有高扩展性、易于维护的Web应用程序。本篇primer将详细阐述运行一个Struts项目所需了解的关键技术知识。 首先,我们需要了解HTTP和HTML的基础...

    Java EE基础实用教程[郑阿奇]

    此外,教程可能还会涵盖Web服务(如JAX-WS和JAX-RS)、过滤器(Filters)、监听器(Listeners)以及MVC设计模式等内容。通过学习这些知识,开发者能够具备构建复杂企业级应用的能力,为职业发展奠定坚实的基础。

    Java Web 教程

    3. **MVC架构**:Model-View-Controller是Java Web开发中的常用设计模式。模型负责数据管理,视图负责显示数据,控制器接收用户输入并调用模型和视图。理解如何将应用程序逻辑分解到这三个组件中是关键。 4. **JSTL...

    apache-solr-ref-guide-5.4

    在本文中,我们将详细介绍 Apache Solr 的一些核心概念和操作,包括安装、管理用户界面、文档、字段和模式设计、分析器、分词器和过滤器的了解。 首先,对于“Getting Started”部分,它将引导用户完成 Solr 的安装...

    More-Servlets-and-JSP

    1. **MVC(Model-View-Controller)设计模式**:如何使用Servlets和JSP实现MVC架构,将业务逻辑、数据模型和用户界面分离,提高代码的可维护性和可扩展性。 2. **过滤器(Filters)**:在Servlets中,过滤器可以对...

    30天学通java web项目案例开发(第四章)源码

    4. **MVC架构**:这是一种设计模式,将应用分为模型(Model)、视图(View)和控制器(Controller)三个部分,以实现逻辑与展示的解耦。学习者可能会接触到Spring MVC框架的简单应用。 5. **会话管理**:学习者会...

Global site tag (gtag.js) - Google Analytics