返回主页 学习路径
Tomcat
轻量级 · 开源 · Java 应用服务器
Apache Tomcat 是由 Apache 软件基金会开发的开源 Java Servlet 容器,自 1999 年发布以来一直是 Java Web 开发的核心工具。Tomcat 实现了 Java Servlet、JavaServer Pages(JSP)、Java Expression Language 和 WebSocket 等 Java EE 规范,是开发和部署 Java Web 应用的首选轻量级服务器。Tomcat 在 Java 开发领域拥有极其广泛的应用,是 Spring Boot 默认的内嵌服务器,也是大多数 Java Web 项目的标准部署环境。
Java Web 容器 · JSP/Servlet
📅 诞生时间1999年 · Apache 软件基金会
🧩 类型Java Servlet 容器 · 多线程
📊 配置语言配置文件(XML)
⚡性能
7/10
📦生态
9/10
🧠易用
8/10
🚀并发
6/10

📑 本文目录

📌 第一部分:Tomcat 概览与定位

1.1 定义与全称

Apache Tomcat 是由 Apache 软件基金会开发的开源 Java Servlet 容器,自 1999 年发布以来一直是 Java Web 开发的核心工具。Tomcat 实现了 Java Servlet、JSP(JavaServer Pages)和 Java Expression Language 等 Java EE 规范。

1.2 核心定位

Tomcat 的核心定位是 轻量级的 Java Web 应用服务器。它提供了:

1.3 主要应用领域

1.4 知名案例


📜 第二部分:Tomcat 的历史与发展演进

2.1 诞生背景(1999年)

Tomcat 由 Apache 软件基金会于 1999 年启动,最初是 Sun Microsystems 的 Java Servlet API 的参考实现。Tomcat 的名字来源于一种小型野猫,寓意"小而强大"。

2.2 关键版本里程碑

2.3 版本兼容性

Tomcat 版本 Servlet 规范 JSP 规范 Java 版本
11.0Servlet 6.0JSP 3.1Java 17+
10.1Servlet 5.0JSP 3.0Java 11+
9.0Servlet 4.0JSP 2.3Java 8+
8.5Servlet 3.1JSP 2.3Java 7+
7.0Servlet 3.0JSP 2.2Java 6+

⚙️ 第三部分:核心配置与特性

3.1 目录结构

tomcat/
├── bin/           # 启动脚本
│   ├── startup.sh
│   └── shutdown.sh
├── conf/          # 配置文件
│   ├── server.xml # 主配置文件
│   ├── web.xml    # 全局 web 配置
│   ├── context.xml
│   └── logging.properties
├── lib/           # 依赖库(JAR)
├── logs/          # 日志文件
├── temp/          # 临时文件
├── webapps/       # 应用部署目录
│   ├── ROOT/      # 根应用
│   └── myapp/
├── work/          # JSP 编译缓存
└── webapps.dist/  # 默认应用备份

3.2 基本配置(server.xml)

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">

  <Service name="Catalina">

    <!-- HTTP Connector -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxThreads="200"
               minSpareThreads="25"
               maxSpareThreads="75"/>

    <!-- AJP Connector(与 Apache 集成) -->
    <Connector protocol="AJP/1.3" port="8009"
               redirectPort="8443"/>

    <!-- Engine -->
    <Engine name="Catalina" defaultHost="localhost">

      <!-- Host 配置 -->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- 上下文配置 -->
        <Context path="/myapp" docBase="myapp" reloadable="true"/>

      </Host>

    </Engine>

  </Service>

</Server>

3.3 虚拟主机配置

<Host name="www.example.com" appBase="/var/www/example"
      unpackWARs="true" autoDeploy="true">

    <Alias>example.com</Alias>

    <Context path="" docBase="/var/www/example/ROOT" reloadable="true"/>

    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="example_access_"
           suffix=".log"
           pattern="%h %l %u %t "%r" %s %b"/>

</Host>

3.4 SSL/HTTPS 配置

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore.jks"
                     certificateKeystorePassword="password"
                     type="RSA"/>
    </SSLHostConfig>
</Connector>

3.5 Web 应用部署

# 方式一:直接放 webapps 目录
cp myapp.war /path/to/tomcat/webapps/
# Tomcat 会自动解压并部署

# 方式二:使用 manager 应用
# 访问 http://localhost:8080/manager/html

# 方式三:通过 context.xml 定义
<Context path="/myapp" docBase="/path/to/myapp" reloadable="true"/>

# 方式四:Spring Boot 嵌入式部署
# Spring Boot 应用自带 Tomcat,直接 java -jar 运行

3.6 JVM 调优

# setenv.sh(Linux)或 setenv.bat(Windows)
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx2048m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MetaspaceSize=128m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxMetaspaceSize=512m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC"
export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"

⚖️ 第四部分:Tomcat 与其他服务器对比

4.1 Tomcat vs Jetty

4.2 Tomcat vs JBoss/WildFly

4.3 Tomcat vs Nginx/Apache

4.4 Tomcat vs Undertow


🧠 第五部分:学习建议

1
基础入门

Tomcat 安装、目录结构、部署 WAR 包、启动和停止

2
核心进阶

server.xml 配置、虚拟主机、SSL 配置、连接池

3
高级特性

集群配置、Session 复制、JVM 调优、安全管理

4
开发集成

Spring Boot 嵌入式、IntelliJ IDEA 集成、Maven Tomcat 插件

推荐学习资源


🎯 总结升华

Tomcat 是 Java Web 开发的"标准容器"。

从 1999 年至今,Tomcat 一直是 Java Web 应用最流行的部署环境。虽然现在有 Jetty、Undertow 等选择,但 Spring Boot 默认使用 Tomcat,确保了 Tomcat 在 Java 生态中的核心地位。

无论你使用 Spring MVC、Spring Boot 还是传统的 JSP/Servlet,Tomcat 都是最值得学习的 Java Web 服务器

"Tomcat 是 Java Web 开发者的老朋友。" ☕

🔖 相关标签
#Java #Servlet #JSP #Web 容器 #Spring Boot #应用服务器 #开源
📄 本文档为 Tomcat 完整白皮书 · 最后更新于 2026年06月28日