`
刘琛颖
  • 浏览: 50263 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Tomcat请求处理(四) -- Request, Response, 和Pipeline

阅读更多
1. Request和Response
当处理请求的时候,Tomcat使用org.apache.coyote.Request和org.apache.coyote.Response对象来封装对Socket的数据处理,就好像它们是输入流和输出流一样。
Request和Response是low-level的,并不是用于在开发中使用的,所以,Tomcat使用了适配器模式定义了两个类org.apache.catalina.connector.Request和org.apache.catalina.connector.Response来对前面的low-level对象进行封装,并且扩展了HttpServletRequest和HttpServletResponse接口,实现了Servelt规范。

2. Pipeline和Valve(不是half-life那个)
Tomcat有四个级别的容器,在server.xml中出现了出现过3个,Engine,Host,Context。另外一个是Wrapper,是对Servlet,JSP或者静态资源调用的一种封装,是最后一层容器了。Tomcat使用Pipeline模式在各层容器间传递请求,将请求通过管道依次通过Engine,Host,Context和Wrapper。另外,每一个容器都可以设置一系列的Valve去对请求进行拦截,就像管道中的阀一样对请求的行为进行一些干涉。
分享到:
评论

相关推荐

    tomcat8.0源码

    - 最终Request到达Servlet,调用Servlet的`service`方法处理请求。 - Servlet的响应通过Response对象返回给客户端。 4. **部署与启动**: - `bin/catalina.sh`或`.bat`脚本用于启动和停止Tomcat服务。 - 配置...

    tomcat工作原理-框架

    - 深入阅读Tomcat源码有助于理解其工作原理,例如`org.apache.catalina.connector.Request`和`org.apache.catalina.connector.Response`类是处理请求和响应的核心。 - `org.apache.catalina.Context`和`org.apache...

    apache-tomcat-9.0.11源码

    - **Pipeline和Valve**:Tomcat的请求处理链,每个Valve执行特定的任务,如认证、日志记录等。 - **ClassLoader机制**:了解Tomcat如何加载和管理Web应用的类。 - **Session管理**:研究如何创建、更新和销毁用户...

    tomcat源码解析

    - **流水线(Pipeline)任务**:描述了处理请求的一系列操作。 - **Pipeline**:一个容器中的Pipeline由一系列Valve组成。 - **Valve接口**:定义了容器中执行特定任务的操作。 - **ValveContext接口**:提供上下文...

    tomcat工作原理(中文版)

    2. **容器(Container)**:包括一系列层次化的组件,如Engine、Host、Context和Wrapper,用于处理请求并将请求转发给合适的Servlet或资源。 3. **管道和阀门(Pipeline and Valve)**:容器中的每个层次都有一个...

    how-tomcat-works中文 doc文档

    本文档将对Tomcat的工作原理进行深入探讨,并通过分析其核心组件和流程来帮助读者理解它是如何处理HTTP请求的。 #### 二、适合读者 本文档主要面向具有一定Java基础知识并对Web应用服务器有一定了解的技术人员。...

    S03-tomcat源码调试以及架构学习1

    4. **Request Processor(请求处理器)**: 当请求到达Catalina层,Request和Response对象被创建,它们封装了原始的HTTP请求和响应数据。 5. **Context(上下文)**: 根据请求的URL,找到对应的Web应用上下文,并加载...

    Tomcat源代码学习研究

    主要有Engine(引擎)、Host(主机)、Context(上下文)和Wrapper(封装器)四个层次,它们按照层级结构处理请求。 2. **设计模式** - **工厂模式**:Tomcat使用工厂模式创建Servlet实例,如StandardWrapper类中...

    Tomcat7 核心包 catalina包源码

    在Pipeline和Valve方面,`org.apache.catalina.connector.Request`和`org.apache.catalina.connector.Response`分别代表HTTP请求和响应对象,它们在Valve链中传递,Valves通过调用`Request`和`Response`的方法来处理...

    深入剖析Tomcat

    - **Pipeline和Valve**:Pipeline是容器组件处理请求的链条,Valve是处理链上的每个节点。 - **生命周期管理**:观察组件如何启动、初始化、运行和停止。 **5. 安全与部署** Tomcat的安全配置涉及SSL/TLS支持、...

    how tomcat works

    - **5.2.1 Pipeline**:容器中的管道模型,用于处理请求和响应。 - **5.2.2 Valve接口**:定义了管道中的阀门组件,用于执行特定的任务。 - **5.2.3 ValveContext接口**:提供了访问阀门上下文信息的方法。 - **...

    《深入剖析Tomcat(中文版+英文版)》.rar

    4.7 处理请求 4.7.1 解析连接 4.7.2 解析请求 4.7.3 解析请求头 4.8 简单的container应用程序 4.9 小结 第5章 servlet容器 5.1 container接口 5.2 管道任务 5.2.1 pipeline接口 5.2.2 valve接口 5.2.3 ...

    Tomcat源码研究

    当请求到达,连接器如` CoyoteAdapter`会将其转换为内部的`Request`和`Response`对象。然后,请求会被传递到`Pipeline`(管道),这是一个基于链表的数据结构,包含了多个`Valve`(阀门)。每个阀门都可以对请求进行...

    mytomcat.zip

    在手写Tomcat中,你需要理解如何配置并启动Catalina来处理请求。 2. **Connector**:这是Tomcat与外界交互的接口,负责接收和发送HTTP请求。在我们的项目中,可能有一个简单的Socket编程实现,模拟了连接器的功能。...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    4.8 处理request对象 25 4.8.1 解析连接 28 4.8.2 解析request 28 4.8.3 解析请求头 28 4.9 简单的container程序 30 第5章 container 31 5.1 Container接口 31 5.2 流水线(pipeline)任务 32 5.2.1 Pipeline 34 ...

Global site tag (gtag.js) - Google Analytics