千家信息网

Tomcat的运行方式和整体架构是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关Tomcat的运行方式和整体架构是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。整体架构我们想要了解一个
千家信息网最后更新 2026年11月01日Tomcat的运行方式和整体架构是怎样的

本篇文章给大家分享的是有关Tomcat的运行方式和整体架构是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

整体架构

我们想要了解一个框架,首先要了解它是干什么的,Tomcat我们都知道,是用于处理连接过来的Socket请求的。那么Tomcat就会有两个功能:

  • 对外处理连接,将收到的字节流转化为自己想要的Request和Response对象

  • 对内处理Servlet,将对应的Request请求分发到相应的Servlet中

那么我们整体的骨架就出来了,Tomcat其实就分为两大部分,一部分是连接器(Connnector)处理对外连接和容器(Container)管理对内的Servelet。大体的关系图如下

最外层的大框就是代表一个Tomcat服务,一个Tomcat服务可以对应多个Service。每个Service都有连接器和容器。这些对应的关系我们也可以打开在Tomcat目录配置文件中server.xml中看出来。

                                                              

这里我将其中配置文件中删除了一些内容精简了一下,这里我们可以看到连接器其实就是Connector,一个Service中可以在多个连接器,容器其实对应的就是Engine。

Tomcat的整体架构简单来说就是这样的对应关系。接下来我们简单的介绍连接器的整体架构和容器的整体架构。

连接器

我们可以看到上图中连接器传给容器的是ServletRequest对象,而容器传给连接器的是ServletResponse对象,这些在网络传输过程中是肯定不行的,因为网络传输中传送的字节流。所以连接器的功能需求我们大概能总结出来以下几点。

  • Socket连接

  • 读取请求网络中的字节流

  • 根据相应的协议(Http/AJP)解析字节流,生成统一的Tomcat Requestt对象

  • 将Tomcat Reques传给容器

  • 容器返回Tomcat Response对象

  • 将Tomcat Response对象转换为字节流

  • 将字节流返回给客户端

其实上面的细分都能总结为以下的三点

  • 网络通信

  • 应用层协议的解析

  • Tomcat的Request/Response与ServletRequest/ServletResponse对象的转化

而在Tomcat中它也用了三个类来实现上面的三个功能,分别对应如下

  • EndPoint

  • Processor

  • Adapter

用图表示他们的关系的话就是这样

容器

容器,顾名思义就是装东西的器具,那么这个Tomcat容器是装什么的呢?其实主要的就是装了Servlet的。那么容器是如何设计的呢?Tomcat的容器设计其实是用了组合设计模式。其实从Server.xml中我们也能看到其关系了。

                    

在这里面我们只能看到容器中的两个模块,一个是顶层模块Engine,另一个是Host,其实还有两个模块,一个是Context对应的是我们webapp里面的每个应用文件夹,每个文件夹就是对应一个Context,还有一个模块Wrapper对应的是我们Context中的所有servlet,Wrapper管理了访问关系与具体的Servlet的对应。图表示就是下面这样。

Tomcat中容器所有模块都实现了Container接口,而组合模式的意义就是使得用户对于单个对象和组合对象的使用具有一致性,即无论添加多少个Context其使用就是为了找到其下面的Servlet,而无论添加多少个Host也是为了找个下面的Servlet。而在容器中设计了这么多的模块,一个请求过来Tomcat如何找到对应的Servlet进行处理呢?

请求如何定位

我们就举个最简单的例子,我们本机应用上启动了一个Tomcat,webapp下有我们部署的一个应用buxuewushu。我们在浏览器上输入http://localhost:8080/buxuewushu/add.do是如何找到对应Servlet进行处理呢?

在我们启动Tomcat的时候,连接器就会进行初始化监听所配置的端口号,这里我们配置的是8080端口对应的协议是HTTP。

  • 请求发送到本机的8080端口,被在那里监听的HTTP/1.1的连接器Connector获得

  • 连接器Connector将字节流转换为容器所需要的ServletRequest对象给同级Service下的容器模块Engine进行处理

  • Engine获得地址http://localhost:8080/buxuewushu/add。匹配他下面的Host主机

  • 匹配到名为localhost的Host(就算此时请求为具体的ip,没有配置相应的Host,也会交给名为localhost的Host进行处理,因为他是默认的主机)

  • Host匹配到路径为/buxuewushu的Context,即在webapp下面找到相应的文件夹

  • Context匹配到URL规则为*.do的servlet,对应为某个Servlet类

  • 调用其doGet或者doPost方法

  • Servlet执行完以后将对象返回给Context

  • Context返回给Host

  • Host返回给Engine

  • Engine返回给连接器Connector

  • 连接器Connector将对象解析为字节流发送给客户端

以上就是Tomcat的运行方式和整体架构是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

容器 连接器 对象 就是 处理 整体 模块 架构 文件 面的 配置 网络 应用 两个 功能 文件夹 组合 设计 方式 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 互联网科技海报 上海挚品互联网科技有限公司 科技金融是不是互联网金融 互联网科技小贷 华中科技大学互联网 融势互联网科技 天扬科技互联网广告 互联网科技大会案例 深圳卡尔迅互联网科技有限公司怎么样 科技大学互联网专业好不好 中国航天科技大学国际工业互联网 互联网科技研发水平 世界互联网领先科技成果获奖 互联网企业科技类企业如何做账 上海互联网科技公司ppt 本届互联网大会上的黑科技 陕西云淼互联网科技公司 湖北辰鑫科技互联网 陕西九四连强互联网科技有限公司 美国互联网保险保险科技 互联网通讯科技 科技类互联网 狮子座互联网科技培训 互联网科技和信息 深圳育鹏互联网科技有限公司招聘 互联网科技和法律行业 广州百诚互联网科技有限公司官网 图游互联网科技 山东亿川互联网科技有限责任公司
0