- 什么是 Apache Tomcat?
- 核心概念:Servlet 和 JSP
- Tomcat 的核心组件与架构
- 如何安装和运行 Tomcat?
- Tomcat 的目录结构
- Tomcat 的主要优点
- Tomcat 的常见应用场景
什么是 Apache Tomcat?
Apache Tomcat 是一个开源的、轻量级的 Web 应用服务器。

- Web 应用服务器:它是一个软件,负责接收来自客户端(如浏览器)的 HTTP 请求,处理这些请求,并返回 HTTP 响应(通常是 HTML 页面、JSON 数据等)。
- 轻量级:相比于 JBoss、WebLogic、WebSphere 等“重量级”应用服务器,Tomcat 占用资源少、启动速度快、配置简单,非常适合中小型应用和开发测试环境。
- 开源:它是 Apache 软件基金会的顶级项目,免费使用,社区活跃,文档丰富。
一个非常重要的特性是:Tomcat 主要用于运行 Java Web 应用,特别是那些基于 Servlet 和 JSP (JavaServer Pages) 技术的应用。
核心概念:Servlet 和 JSP
要理解 Tomcat,就必须先理解 Servlet 和 JSP,因为它们是 Java Web 开发的基石。
-
Servlet (Server Applet):
- 可以理解为“服务器端的小程序”。
- 它是一个用 Java 语言编写的类,运行在服务器端,用于接收和响应客户端的请求。
- 开发者只需编写处理业务逻辑的代码(如查询数据库、计算数据),而不用关心底层的网络通信、协议解析等复杂工作,Tomcat 会帮你处理这些。
- 一个典型的 Servlet 会接收一个
HttpServletRequest(请求对象) 和一个HttpServletResponse(响应对象),处理完后,通过响应对象将结果写回给浏览器。
-
JSP (JavaServer Pages):
(图片来源网络,侵删)- 一种用于创建动态网页的技术。
- 它看起来像一个普通的 HTML 页面,但里面可以嵌入 Java 代码片段,JSP 文件最终会被 Tomcat 的 JSP 引擎(一个名为 Jasper 的组件)翻译成一个 Servlet 类,然后编译执行。
- JSP 的主要优势是“视图”,即负责页面的展示,它将 Java 代码和 HTML 标签分离,使得前端美工和后端程序员可以更好地协作。
Tomcat 的角色:Tomcat 就是专门用来运行这些 Servlet 和 JSP 的“容器”或“引擎”,它为它们提供了运行所需的环境。
Tomcat 的核心组件与架构
Tomcat 的架构设计非常优雅,由一系列可配置的组件构成,理解这些组件对于配置和优化 Tomcat 至关重要。
- Server (服务器):最顶层的组件,代表一个完整的 Tomcat 实例,一个 Server 可以包含一个或多个 Service。
- Service (服务):一个 Service 将一个或多个 Connector 与一个 Engine 关联起来,它的作用是让 Connector 接收到的请求能够交给 Engine 来处理。
- Engine (引擎):Tomcat 的核心处理引擎,它接收来自 Service 的所有请求,并将请求交给相应的 Host 来处理,一个 Service 中只有一个 Engine。
- Host (虚拟主机):代表一个虚拟主机,也就是一个网站,它可以部署多个 Web 应用(Context)。
www.example.com和api.example.com可以是两个不同的 Host。 - Context (上下文):代表一个 Web 应用程序,当你在 Tomcat 中部署一个
.war文件时,就会创建一个 Context,它是 Tomcat 中最常用的配置单元。 - Connector (连接器):负责处理与客户端的连接和通信,它监听特定的端口(如默认的 8080),接收 HTTP 请求,并将其封装成 Request 对象交给 Engine 处理,Tomcat 常见的连接器有:
- HTTP Connector:处理 HTTP 请求。
- AJP Connector:处理 AJP 协议请求,常用于与 Apache HTTP Server 或 Nginx 等 Web 服务器集成,实现动静分离和负载均衡。
- Container (容器):这是一个总称,包括 Engine, Host, Context,它们负责管理 Servlet 的生命周期和请求的内部流转。
- Valve (阀门):一种可插拔的处理组件,可以放在 Engine, Host 或 Context 级别,它在请求被处理前后执行一些逻辑,类似于“过滤器”或“中间件”,日志记录、访问控制、IP 黑白名单等都可以通过 Valve 来实现。
请求流程简图:
Client -> Connector -> Engine -> Host -> Context -> Servlet -> Response -> Connector -> Client
如何安装和运行 Tomcat?
Tomcat 的安装非常简单,通常只需“解压即用”(解压后即可运行)。

步骤(以 Windows 为例,Linux/macOS 类似):
- 下载:访问 Tomcat 官网,选择一个稳定版本(如 Tomcat 10, 9, 8.5),下载对应的二进制包(
apache-tomcat-10.1.x-windows-x64.zip)。 - 解压:将下载的 ZIP 文件解压到一个不含空格和中文的目录,
D:\apache-tomcat-10.1.x。 - 配置环境变量(可选,但推荐):
- 新建系统变量
CATALINA_HOME,值为 Tomcat 的根目录(如D:\apache-tomcat-10.1.x)。 - 将
%CATALINA_HOME%\bin添加到系统的Path变量中。
- 新建系统变量
- 运行:
- 进入 Tomcat 的
bin目录。 - 双击运行
startup.bat(Windows) 或在终端中执行./startup.sh(Linux/macOS)。
- 进入 Tomcat 的
- 验证:打开浏览器,访问
http://localhost:8080,如果看到 Tomcat 的欢迎页面,说明安装成功!
其他常用脚本:
shutdown.bat/./shutdown.sh:关闭 Tomcat 服务器。
Tomcat 的目录结构
了解 Tomcat 的目录结构有助于管理和部署应用。
/bin:存放启动 (startup.sh)、关闭 (shutdown.sh) 和其他脚本文件。/conf:存放核心配置文件,最重要的server.xml就在这里。/lib:存放 Tomcat 运行以及 Web 应用程序需要依赖的 JAR 包。/logs:存放 Tomcat 的日志文件(如catalina.out,localhost.log),排查问题时,这里是第一个要看的地方。/temp:存放 Tomcat 运行时产生的临时文件。/webapps:Web 应用程序的默认部署目录,只需将你的.war文件或解压后的应用文件夹放到这里,Tomcat 就会自动部署。/work:存放 JSP 文件被编译后生成的 Servlet 源码和类文件。
Tomcat 的主要优点
- 开源免费:无需支付任何费用。
- 轻量高效:资源占用小,启动速度快,非常适合中小型应用。
- 易于使用和配置:相比商业应用服务器,配置简单直观。
- 社区活跃:遇到问题很容易找到解决方案,版本更新快。
- 技术成熟稳定:作为 Java Web 领域的事实标准之一,经过了大量项目的检验。
Tomcat 的常见应用场景
- Web 应用开发和测试:是 Java 开发者首选的本地开发和测试服务器。
- 中小型网站后端:为中小型企业网站、电商平台、博客系统等提供后端服务。
- 微服务架构:在 Spring Boot 等微服务框架中,Tomcat 通常被内嵌作为默认的 Web 服务器,用于运行单个微服务。
- 构建 CI/CD 流水线:在持续集成和持续部署环境中,Tomcat 用于快速部署和验证应用程序。
Apache Tomcat 是一个功能强大、稳定可靠且易于使用的 Web 应用服务器,它虽然专注于 Servlet 和 JSP 规范,但这恰恰是 Java Web 开发的核心,对于绝大多数 Java Web Tomcat 都是一个完美的选择。
无论是初学者学习 Java Web,还是企业构建生产环境,Tomcat 都以其轻量、高效和开源的特性,赢得了全球开发者的广泛信赖,它就像一个可靠的“引擎”,驱动着无数的 Java 应用在互联网上高效运行。
