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:临时文件目录
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
2、Tomcat的运行模式
Tomcat的核心组件:
这些核心组件的作用:
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 应用的配置和运行环境。
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
每个组件都由“类”来实现,有些组件的实现还不止一种:
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.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.