tomcat组成与运行原理

1、tomcat的目录结构:

bin:脚本及启动时用到的类

lib:类库

conf:配置文件
    server.xml:主配置文件。包含服务器、服务、连接器、引擎、虚拟主机等的配置信息。
    context.xml:每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的                        
                WEB.INF目录中,用于定义会话管理器、JDBC等。conf/context.xml是为各webapp提供默认配置。
    web.xm1:每个webapp“部署”之后才能被访问,此文件则用于为所有的webapp提供默认部署相关的配置。
    tomcat-users.xml:用户认证的账号和密码配置文件。
    catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略。
    catalina.properties:Java属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数。
    logging.properties:日志相关的配置信息。

logs:日志文件

webapps:应用程序默认部署目录

work:工作目录

temp:临时文件目录

2、Tomcat的运行模式

        standalone:通过内置的web server(http connector)来接收客户端请求。

        proxy:由专门的web server服务客户端的http请求。

        in-process:部署于同一主机。

        network:部署于不同主机。

Tomcat的核心组件:

1. Server 组件:代表整个 Tomcat 服务器。
2. Service 组件:包含一个或多个连接器(Connector)和一个引擎(Engine)。
3. Connector 组件:负责接收客户端的连接请求,并将请求转交给容器进行处理。
4. Engine 组件:处理来自 Connector 的请求,并将请求分发到对应的虚拟主机(Host)。
5. Host 组件:代表一个虚拟主机,可配置多个 Web 应用。
6. Context 组件:表示一个 Web 应用。

这些核心组件的作用:

Tomcat Instance:运行中的tomcat进程(java进程)

Server:即一个tomcat实例。对整个服务器进行总体管理和控制。

Service:用于将connector关联至engine组件:一个service只能包含一个engine组件和一个或多个connector组件

Engine:Tomcat的核心组件,用于运行jsp或servlet代码,负责请求的路由和处理逻辑。

Connector:接入并解析用户请求,将请求映射为Engine中运行的代码:之后,将运行结果构建成响应报文:http, ajp,实现客户端与服务器的通信连接。

Host:类似httpd中的虚拟主机。隔离不同虚拟主机的配置和应用。

Context:类似于httpd中的alias,管理单个 Web 应用的配置和运行环境。

每个组件都由“类”来实现,有些组件的实现还不止一种:
 

顶级类组件:server

服务淤组件:service

容器类组件:即可以部署webapp的组件,engine,host,context

连接器组件:connector

被嵌套类组件:valve,logger,realm

Tomcat 的工作原理

1. 启动与初始化
 
- Tomcat 服务器启动时,会读取配置文件(如  server.xml )来初始化服务器的各种组件和设置。
2. 接收连接请求
 
- 客户端(如浏览器)向 Tomcat 发送 HTTP 请求。Connector 组件负责监听指定的端口,接收这些连接请求。
3. 协议解析与请求处理
 
- Connector 对收到的请求进行协议解析,如 HTTP 协议的解析,将请求转换为 Tomcat 内部的格式。
4. 引擎处理
 
- 解析后的请求被传递给 Engine 组件。Engine 会根据请求的主机名等信息,将请求路由到对应的 Host 组件。
5. 虚拟主机处理
 
- Host 组件根据请求的应用上下文路径,将请求转发到相应的 Context 组件。
6. Web 应用处理
 
- Context 组件确定要处理请求的 Servlet 或其他资源。如果是 Servlet 请求,会创建 Servlet 实例,并调用其相应的方法(如  doGet()  或  doPost() )来处理请求。
7. 响应生成与发送
 
- Servlet 处理完请求后,生成响应结果。响应经过一系列的处理和转换,通过 Connector 组件发送回客户端。
8. 资源管理与线程处理
 
- Tomcat 会有效地管理服务器资源,如内存、线程等,以确保高效地处理并发请求。同时,对于空闲的连接和资源会进行适当的回收和清理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值