Tomcat 体系结构

图解 Tomcat 体系结构 Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。 Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器,被用做 Java Servlet 和 JavaServer Pages 技术的官方参考实现。如果您要了解这两种技术的细节可以查阅参考资料。 让我们先来浏览一下 Tomcat 体系结构中的六个主要概念: Server Service Engine Host Connector Context 立即下载

Tomcat 体系结构

Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来完成 Tomcat 的两大核心功能。

  • 连接器,负责对外交流:处理 Socket 连接,负责⽹络字节流与 Request 和 Response 对象的转化;

  • 容器,负责内部处理:加载和管理 Servlet,以及具体处理 Request 请求;

连接器组件 Coyote

Coyote 是 Tomcat 中连接器的组件名称 , 是对外的接口。客户端通过 Coyote 与服务器建立连接、发送请求并接受响应 。

在这里插入图片描述

  • EndPoint
    EndPoint 是 Coyote 通信端点,即通信监听的接⼝,是具体 Socket 接收和发送处理器,是对传输层的抽象,因此 EndPoint 用来实现 TCP/IP 协议的。

  • Processor
    Processor 是 Coyote 协议处理接口,如果说 EndPoint 是⽤来实现 TCP/IP 协议的,那么 Processor 用来实现 HTTP 协议,Processor 接收来自 EndPoint 的 Socket,读取字节流解析成 Tomcat Request 和 Response 对象,并通过 Adapter 将其提交到容器处理,Processor 是对应用层协议的抽象。

  • ProtocolHandler
    Coyote 协议接口,通过 Endpoint 和 Processor , 实现针对具体协议的处理能力。Tomcat 按照协议和 I/O 提供 6 个实现类:AjpNioProtocol,AjpAprProtocol, AjpNio2Protocol, Http11NioProtocol,Http11Nio2Protocol,Http11AprProtocol。

  • Adapter
    由于协议不同,客户端发过来的请求信息也不尽相同,Tomcat 定义了自己的 Request 类来封装这些请求信息。ProtocolHandler 接口负责解析请求并生成 Tomcat Request 类。但是这个 Request 对象不是标准 ServletRequest,不能用 Tomcat Request 作为参数来调⽤容器。Tomcat 设计者的解决方⽅案是引入 CoyoteAdapter,这是适配器模式的经典运用,连接器调用 CoyoteAdapter 的 Sevice 方法,传入的是 Tomcat Request 对象,CoyoteAdapter 负责将 Tomcat Request 转成 ServletRequest,再调用容器。

Tomcat Servlet 容器 Catalina

**Tomcat **就是一个 Catalina 的实例,因为 Catalina 是 Tomcat 的核心。

Tomcat / Catalina 实例
在这里插入图片描述

  • Catalina
    负责解析 Tomcat 的配置文件(server.xml) , 以此来创建服务器 Server 组件并进行管理。

  • Server
    服务器表示整个 Catalina Servlet 容器以及其它组件,负责组装并启动 Servlet 引擎,Tomcat 连接器。Server 通过实现 Lifecycle 接口,提供了一种优雅的启动和关闭整个系统的方式。

  • Service
    服务是 Server 内部的组件,一个 Server 包含多个 Service。它将若干个 Connector 组件绑定到一个 Container。

  • Container
    容器,负责处理用户的 servlet 请求,并返回对象给 web 用户的模块 Container 组件下有几种具体的组件,分别是 Engine、Host、Context 和 Wrapper。这 4 种组件(容器)是父子关系。Tomcat 通过一种分层的架构,使得Servlet 容器具有很好的灵活性。

    1. Engine 表示整个 Catalina 的 Servlet 引擎,用来管理多个虚拟站点,一个 Service 最多只能有一个 Engine,但是一个引 擎可包含多个 Host。

    2. Host 代表一个虚拟主机,或者说一个站点,可以给 Tomcat 配置多个虚拟主机地址,而一个虚拟主机下可包含多个 Context。

    3. Context 表示一个 Web 应用程序, 一个 Web 应⽤可包含多个 Wrapper。

    4. Wrapper 表示一个 Servlet,Wrapper 作为容器中的最底层,不能包含子容器。

    上述组件的配置其实就体现在 conf/server.xml 中。

【Tomcat 体系结构介绍】 NULL 博文链接:https://gaojingsong.iteye.com/blog/2389970 立即下载

相关推荐

Tomcat的体系结构

Tomcat的体系结构,基本配置,server.xml

Tomcat 的体系结构(超详细)

1.Tomcat架构 1.整体架构 HTTP 服务器接收到请求之后把请求交给Servlet容器来处理,Servlet 容器通过Servlet接⼝调⽤业务 类。Servlet接⼝和Servlet容器这⼀整套内容叫作Servlet规范。 注意:Tomcat既按照Servlet规范的要求去实现了Servlet容器,同时它也具有HTTP服务器的功能。 Tomcat的两个重要身份 ​ 1)http服务器也可以看成一个连接器(Connector) ​ 2)Servlet容器(Container) 2.请求处理流程

Baron的技术blog 3316

Tomcat 系统架构与设计模式

Tomcat 系统架构与设计模式,第 1 部分 工作原理

详细描述Tomcat体系结构(图文并茂)

首先,我们要知道Tomcat是什么,先看一下官网介绍: The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. 翻译:Apache Tomcat软件是Java Servlet、JavaServer Pages、Java表达式语言和Java WebSoc

weixin_42444325的博客 551

Linux下CUDA 11.8与vllm的完美搭配:从环境配置到避坑指南

本文详细介绍了在Linux系统中为CUDA 11.8环境部署vLLM的完整实战指南。针对cu118与vLLM的版本兼容性核心问题,提供了从Python、PyTorch版本选择,到关键依赖vllm-nccl-cu11的安装避坑,以及环境调优、生产级容器化部署的全面解决方案,帮助开发者高效构建稳定的大模型推理服务。

weixin_29095049的博客 310

基于FPGA的DDS信号发生器

之前的博客讲到了DDS的基本原理,现在用Verilog代码实现DDS,能够产生四种波形,方波,三角波,正弦波,锯齿波,用按键来控制频率和选择波形。其中按键消抖模块来自小梅哥的FPGA自学笔记设计与验证这本书。 module DDS_Module( Clk, Rst_n, EN, Fword, Key1, Pword, DA_Clk, DA_Data ); input Clk...

qq_43534451的博客 9950

Tomcat体系结构详解

关于tomcat服务器的启动工作流程: 当我们启动tomcat服务器的时候,会跟着启动service服务,service在启动的过程中会启动多个连接器处理多个不同的请求(HTTP,HTTPS,AJP,其他协议等等),连接器收到请求后,会启动引擎,然后通过引擎去找到主机(服务器上可以配置多个 网站,可以有多个主机),主机收到请求后找到web应用,web应用收到请求后找web资源,然后提供相应的服务...

瓶中水 344

Solidworks曲面建模学习(三)——样条曲线

本文主要演示平面的空间样条曲线的一些绘制。

东东不熬夜的博客 6506

学习servlet——tomcat体系结构

之前介绍了tomcat的目录结构,今天

笨鸟的专栏 1061

010Editor实战:5分钟破解Zip伪加密文件(附BUUCTF真题解析)

本文详细介绍了如何使用010Editor快速破解Zip伪加密文件,包括BUUCTF真题的完整解析。通过修改关键字节,轻松解除伪加密状态,适用于CTF竞赛和实际工作场景,提升文件处理效率。

weixin_29325007的博客 326

Altium Designer操作技巧(1)——原理图中如何批量替换元器件?

《AltiumDesigner批量替换元器件技巧分享》摘要:本文介绍了两种在AltiumDesigner中批量替换元器件的实用方法。方法一通过“查找相似对象”功能,可精准匹配并批量修改器件参数;方法二利用ActiveBOM功能,在BOM表中直观操作器件替换,推荐使用第二种方法可使BOM管理更高效。这些技巧能有效减少物料种类、降低贴装成本,特别适用于电阻电容等常用器件的批量替换。关注公众号获取更多电子设计技巧。

u012526819的博客 2590

Tomcat体系结构

Tomcat体系结构 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来完成 Tomcat 的两大核心功能。 连接器,负责对外交流: 处理Socket连接,负责⽹络字节流与Request和Response对象的转化; 容器,负责内部处理:加载和管理Servlet,以及具体处理Request请求; 连接器组件Coyote Coyote 是Tomcat 中连接器...

零一的博客 1216

YOLOv11改进 | 引入SFSConv空间频率选择卷积(含SFSC3k2二次创新),空间频率特征协同作用,检测性能全面提升

本文提出在YOLOv11中引入SFSConv空间频率选择卷积模块,通过显式分离和动态融合空间域与频率域特征,解决传统卷积对多尺度目标检测的局限性。SFSConv包含空间频率分离、动态权重融合和协同特征重建三个核心机制,并进一步创新提出SFSC3k2结构,通过双路频率分支增强特征协同作用。该改进显著提升了YOLOv11在遥感、医学等多尺度复杂场景下的检测性能,实验显示在微小目标检测任务中mAP提升5%-10%。代码实现展示了SFSConv模块的核心逻辑及其在PyTorch中的高效实现。

走向CTO的路上... 768

图解TOMCAT 体系结构

<br />Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器。<br />原文:http://www.solol.org/technologic/java/j-tomcatarch/<br />    Apache Tomcat 是一款非常著名的开源 Servlet/JSP 容器,被用做 Java Servlet 和 JavaServer Pages 技术的官方参考实现。如果您要了解这两种技术的细节可以查阅参考资料。<br />让我们先来浏览一下 Tomcat 体系结构中的六个

easyjsf的专栏 568

【华为OD】华为性格测试(综合测试)高分策略

1、性格测试非常重要,是一次否决制,18 个月有效期,所以态度一定要认真对待,不要随便乱选;2、做题原则:正向原则,积极乐观向上3、时间为 25-30 分钟,会频繁出现重复选项重复出现的题目注意一致性。

笑着的程序员的博客 3万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

简述Tomcat体系结构

简述Tomcat体系结构Tomcat请求处理流程Tomcat核心组件Coyote 连接器Catalina 容器 Tomcat请求处理流程 流程大致说明: 用户请求至Tomcat服务器,Tomcat将其封装为ServletRequest对象。 Servlet容器初始化时会初始化部署在tomcat下业务类,放入Servlet容器中(用户请求前,tomcat启动时)。 第1步执行完后会使用ServletRequest对象中的信息(url,请求方式)等去Servlet容器中寻找对应的Servlet。 如果Ser

GrayGo的博客 272

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tomcat6体系结构

本文分为三部分,分别为: Tomcat文件系统Tomcat的主要组成部分Tomcat各组成部分之间的关系以及它们如何协作,构成一个系统     1。Tomcat文件系统        Tocmat6的结构与之前的结构有很大不同,文件目录都不一样。我个人感觉与之前的版本相比,Tomcat6的结构更清晰简洁,也更容易理解一些。改变的原因据说所为了解决一些由文件系统结构带来的问题,详细的内

用法之妙,存乎一心。 1552

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

tomcat体系结构及源码导读索引

tomcat之导入源码

liuxigiant的专栏 833

一些java笔记和Tomcat体系结构的知识

第一章、java的一些知识 1、什么是API         API(Application Programming Interface)。应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。另外,它里面提供的函数其实就是system call。 2、POSIX规范。         POS

曹立禄的个人博客 642

tomcat服务器体系结构

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> ...

木瓜煲鸡脚的博客 92

Tomcat类加载器体系结构

Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器: (1).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互隔离。 (2).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互共享。 (3).许多Web服务器本身使用java语言实现,因此服务器所使用的类库应与应用程序的类库相互独立。 (4).支持J

stronger的专栏 1708
上一篇: Spring
下一篇: URLClassLoader
LiveForCode
博客等级 码龄5年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值