内容

Apache Tomcat 版本

Apache Tomcat® 是 Jakarta EE(正式名称为 Java EE)技术子集的开源软件实现。针对不同版本的规范,提供了不同版本的 Apache Tomcat。规范与各自 Apache Tomcat 版本之间的映射关系如下:这些规范与各自的 Apache Tomcat 版本之间的映射关系如下:

当前支持的版本

Servlet 规范 Pages 规范 JDSOL 规范 EL 规范 WebSocket 规范 身份验证规范 (JASPIC) Annotation 规范 Apache Tomcat 版本 最新发布版本 支持的 Java 版本
6.1 4.0 2.0 6.0 2.2 3.1 3.0 11.0.x 11.0.8 17 及更高版本
6.0 3.1 2.0 5.0 2.1 3.0 2.1 10.1.x 10.1.42 11 及更高版本
4.0 2.3 1.0 3.0 1.1 1.1 1.3 9.0.x 9.0.106 8 及更高版本

不受支持的版本

这些版本的 Apache Tomcat 已达到生命周期结束,建议用户升级到受支持的版本。

Servlet 规范 Pages 规范 JDSOL 规范 EL 规范 WebSocket 规范 身份验证规范 (JASPIC) Annotation 规范 Apache Tomcat 版本 最终1 发布版本 支持的 Java 版本 EOL 日期
5.0 3.0 2.0 4.0 2.0 2.0 2.0 10.0.x (已取代) 10.0.27 (已取代) 8 及更高版本 2022-10-31
3.1 2.3 1.0 3.0 1.1 1.1 1.2 8.5.x (已归档) 8.5.100 (已归档) 7 及更高版本 2024-03-31
3.1 2.3 1.0 3.0 1.1 不适用 1.2 8.0.x (已取代) 8.0.53 (已取代) 7 及更高版本 2018-06-30
3.0 2.2 1.0 2.2 1.1 不适用 1.1 7.0.x (已归档) 7.0.109 (已归档) 6 及更高版本
(WebSocket 需 7 及更高版本)
2021-03-31
2.5 2.1 1.0 2.1 不适用 不适用 1.0 6.0.x (已归档) 6.0.53 (已归档) 5 及更高版本 2016-12-31
2.4 2.0 1.0 不适用 不适用 不适用 不适用 5.5.x (已归档) 5.5.36 (已归档) 1.4 及更高版本 2012-09-31
2.3 1.2 不适用 不适用 不适用 不适用 不适用 4.1.x (已归档) 4.1.40 (已归档) 1.3 及更高版本 2009-06-25
2.2 1.1 不适用 不适用 不适用 不适用 不适用 3.3.x (已归档) 3.3.2 (已归档) 1.1 及更高版本 2004-03-09
* “最终”版本永远不会是“绝对”最终版本,但在此之后发布版本极其罕见。

每个 Tomcat 版本都支持符合上表最后一列要求的任何稳定 Java 版本。

Tomcat 也应适用于符合上表最后一列要求的任何 Java 抢先体验版。例如,在第一个稳定 Java 8 版本发布前数月,用户就成功在 Java 8 上运行 Tomcat 8。然而,抢先体验版的用户应注意以下事项:

  • 最初的抢先体验版包含可能导致在 Tomcat 上运行的 Web 应用程序出现问题的 Bug 并不罕见。
  • 如果新 Java 版本引入了新的语言特性,则默认的 JSP 编译器可能无法立即支持它们。将 JSP 编译器切换到 javac 可能会使这些新的语言特性在 JSP 中使用。
  • 如果您在使用 Java 抢先体验版时发现问题,请寻求帮助。Tomcat 用户邮件列表可能是最好的起点。

下面将更详细地描述这些版本,以帮助您确定哪个版本适合您。有关每个版本的更多详细信息,请参阅相关的发布说明。

请注意,尽管我们提供旧版本(如 Apache Tomcat 9.x)的下载和文档,但我们强烈建议用户尽可能使用最新稳定版本的 Apache Tomcat。我们认识到跨主要版本升级可能不是一项简单的任务,并且邮件列表仍然为旧版本的用户提供一些支持。然而,由于采用社区驱动的支持方式,您的版本越旧,感兴趣或能够支持您的人就越少。

Alpha / Beta / 稳定版

在对发布版进行投票时,审阅者会指定他们认为该发布版已达到的稳定性级别。新主要版本的初始发布通常会在几个月内从 Alpha 阶段进展到 Beta 阶段,再到稳定阶段。然而,稳定级别只有在该发布版所实现的 Java 规范最终确定后才能获得。这意味着,一个在所有其他方面都被认为是稳定的发布版,如果其规范尚未最终确定,仍可能被标记为 Beta 版。

下载页面将始终显示最新的稳定发布版,以及任何存在的新 Alpha 或 Beta 发布版。Alpha 和 Beta 发布版在下载页面上总是清晰地标记。

稳定性是主观判断,您应始终仔细阅读您打算使用的任何版本的发布说明。如果您是某个版本的早期采用者,我们很乐意在投票中听取您对其稳定性的意见:投票在开发邮件列表上进行。

Alpha 版本可能包含规范要求的大量未经测试/缺失的功能和/或重大错误,并且预计无法长时间稳定运行。

Beta 版本可能包含一些未经测试的功能和/或一些相对较小的错误。Beta 版本预计无法稳定运行。

稳定版本可能包含少量相对较小的错误。稳定版本旨在用于生产环境,并预计能够长时间稳定运行。

支持版本详情

Apache Tomcat 11.0.x (稳定版)

Apache Tomcat 11.0.x 是当前开发的重点。它基于 Tomcat 10.1.x 构建,并实现了 Servlet 6.1JSP 4.0EL 6.0WebSocket 2.2Authentication 3.1 规范(Jakarta EE 11 平台要求的版本)。

Apache Tomcat 10.1.x (稳定版)

Apache Tomcat 10.1.x 基于 Tomcat 10.0.x 构建,并实现了 Servlet 6.0JSP 3.1EL 5.0WebSocket 2.1Authentication 3.0 规范(Jakarta EE 10 平台要求的版本)。

Apache Tomcat 9.x (稳定版)

Apache Tomcat 9.x 基于 Tomcat 8.0.x 和 8.5.x 构建,实现了 Servlet 4.0JSP 2.3EL 3.0WebSocket 1.1JASPIC 1.1 规范(Java EE 8 平台要求的版本)。此外,它还包括以下重大改进:

  • 添加了对 HTTP/2 的支持(需要运行在 Java 9 上(自 Apache Tomcat 9.0.0.M18 起)或安装了 Tomcat Native 库)
  • 添加了对 JSSE 连接器(NIO 和 NIO2)使用 OpenSSL 进行 TLS 支持的支持
  • 添加了对 TLS 虚拟主机 (SNI) 的支持

Tomcat 9 是支持 Java EE 的最后一个主要 Tomcat 版本。因此,Tomcat 社区打算为 Tomcat 9 提供超出通常支持的 10 年的主要 Tomcat 版本的支持。

扩展支持将通过一个新的 9.1.x 分支提供,该分支将在 9.0.x 达到支持结束时启动。APR/Native 连接器将不适用于 Tomcat 9.1.x。

对 NIO+OpenSSL 和 NIO2+OpenSSL 的支持将通过 Tomcat Native 2.x 在 Tomcat 9.1.x 中继续。

安全修复、bug 修复和新功能的向后移植将继续为 9.1.x 提供,就像它们为 9.0.x 所做的那样。

Tomcat 9.0.x 的支持结束日期预计不早于 2027 年 3 月 31 日。

Tomcat 9.1.x 的支持结束日期尚未确定。9.1.x 支持结束至少提前 12 个月通知。

不受支持的版本详情

Apache Tomcat 10.0.x (已取代)

Apache Tomcat 10.0.x 可从归档中下载。

Apache Tomcat 10.0.x 基于 Tomcat 9.0.x 构建,并实现了 Servlet 5.0JSP 3.0EL 4.0WebSocket 2.0Authentication 2.0 规范(Jakarta EE 9 平台要求的版本)。

Tomcat 10.0 的用户应注意,Tomcat 10.0 现已达到生命周期结束。Tomcat 10.0.x 的用户应升级到 Tomcat 10.1.x 或更高版本。

Apache Tomcat 8.x (已归档)

Apache Tomcat 8.x 可从归档中下载。

Apache Tomcat 8.0.x 基于 Tomcat 7.0.x 构建,实现了 Servlet 3.1JSP 2.3EL 3.0WebSocket 1.1 规范。此外,它还包括以下重大改进:

  • 一个单一的通用资源实现,取代了早期版本中提供的多个资源扩展功能。

Apache Tomcat 8.5.x 支持与 Apache Tomcat 8.0.x 相同的 Servlet、JSP、EL 和 WebSocket 规范版本。此外,它还实现了 JASPIC 1.1 规范。

它于 2016 年 3 月从 Tomcat 9.0.0.M4(alpha)里程碑版本分叉创建。它提供了来自 Tomcat 9.x 代码库的 HTTP/2 支持和其他功能,同时与 Tomcat 8.0 运行时和规范要求兼容。(当时无法创建 Tomcat 9.0 的稳定版本,因为 Tomcat 9 针对的 Java EE 规范直到几年后才最终确定)。

Tomcat 8.5 是 Tomcat 8.0 的替代版本。

Apache Tomcat 8.5.x 包括以下重大改进:

  • 增加了对 HTTP/2 的支持(需要 Tomcat Native 库)
  • 添加了对 JSSE 连接器(NIO 和 NIO2)使用 OpenSSL 进行 TLS 支持的支持
  • 添加了对 TLS 虚拟主机 (SNI) 的支持

Apache Tomcat 8.5.x 中移除了以下技术:

  • HTTP 和 AJP 连接器的 BIO 实现
  • 对 Comet API 的支持

许多底层领域都发生了重大变化,从而提高了性能、稳定性和总拥有成本。详情请参阅 Apache Tomcat 8.5 变更日志。

Tomcat 8.0 的用户应注意,Tomcat 8.0 现已达到生命周期结束。Tomcat 8.0.x 的用户应升级到 Tomcat 9.x 或更高版本。

Tomcat 8.5 的用户应注意,Tomcat 8.5 现已达到生命周期结束。Tomcat 8.5.x 的用户应升级到 Tomcat 9.x 或更高版本。

Apache Tomcat 7.x (已归档)

Apache Tomcat 7.x 可从归档中下载。

Apache Tomcat 7.x 在 Tomcat 6.0.x 的改进基础上构建,并实现了 Servlet 3.0JSP 2.2EL 2.2WebSocket 1.1 规范。此外,它还包括以下改进:

  • Web 应用程序内存泄漏检测和预防
  • 改进了 Manager 和 Host Manager 应用程序的安全性
  • 通用 CSRF 保护
  • 支持直接在 Web 应用程序中包含外部内容
  • 重构(连接器、生命周期)以及大量内部代码清理

Tomcat 7 的用户应注意,Tomcat 7 现已达到生命周期结束。Tomcat 7.x 的用户应升级到 Tomcat 9.x 或更高版本。

Apache Tomcat 6.x (已归档)

Apache Tomcat 6.x 可从归档中下载。

Apache Tomcat 6.x 在 Tomcat 5.5.x 的改进基础上构建,并实现了 Servlet 2.5JSP 2.1 规范。此外,它还包括以下改进:

  • 内存使用优化
  • 高级 IO 功能
  • 重构的集群

Tomcat 6 的用户应注意,Tomcat 6 现已达到生命周期结束。Tomcat 6.x 的用户应升级到 Tomcat 9.x 或更高版本。

Apache Tomcat 5.x (已归档)

Apache Tomcat 5.x 可从归档中下载。

Apache Tomcat 5.5.x 支持与 Apache Tomcat 5.0.x 相同的 Servlet 和 JSP 规范版本。许多底层领域都发生了重大变化,从而提高了性能、稳定性和总拥有成本。详情请参阅 Apache Tomcat 5.5 变更日志。

Apache Tomcat 5.0.x 在许多方面改进了 Apache Tomcat 4.1,包括:

  • 性能优化和减少垃圾回收
  • 重构了应用程序部署器,带有可选的独立部署器,允许在投入生产之前验证和编译 Web 应用程序
  • 使用 JMX 和管理器 Web 应用程序进行完整的服务器监控
  • 可伸缩性和可靠性增强
  • 改进了 Taglibs 处理,包括高级池化和标签插件
  • 改进了平台集成,支持原生的 Windows 和 Unix 包装器
  • 使用 JMX 进行嵌入
  • 增强的 Security Manager 支持
  • 集成的会话集群
  • 扩展的文档

Tomcat 5 的用户应注意,Tomcat 5 现已达到生命周期结束。Tomcat 5.x 的用户应升级到 Tomcat 9.x 或更高版本。

Apache Tomcat 4.x (已归档)

Apache Tomcat 4.x 可从归档中下载。

Apache Tomcat 4.x 实现了一个基于全新架构的新 servlet 容器(名为 Catalina)。4.x 版本实现了 Servlet 2.3JSP 1.2 规范。

Apache Tomcat 4.1.x 是 Apache Tomcat 4.0.x 的重构,并包含重大增强,包括:

  • 基于 JMX 的管理功能
  • 基于 JSP 和 Struts 的管理 Web 应用程序
  • 新的 Coyote 连接器 (HTTP/1.1, AJP 1.3 和 JNI 支持)
  • 重写的 Jasper JSP 页面编译器
  • 性能和内存效率改进
  • 增强了管理器应用程序对开发工具集成的支持
  • 自定义 Ant 任务,可以直接从 build.xml 脚本与管理器应用程序交互

Apache Tomcat 4.0.x。Apache Tomcat 4.0.6 是旧的生产质量发布版本。4.0 servlet 容器 (Catalina) 从头开发,旨在实现灵活性和性能。版本 4.0 实现了 Servlet 2.3 和 JSP 1.2 规范的最终发布版本。根据规范要求,Apache Tomcat 4.0 还支持无需任何更改即可为 Servlet 2.2 和 JSP 1.1 规范构建的 Web 应用程序。

Tomcat 4 的用户应注意,Tomcat 4 现已达到生命周期结束。Tomcat 4.x 的用户应升级到 Tomcat 9.x 或更高版本。

Apache Tomcat 3.x (已归档)

Apache Tomcat 3.x 可从归档中下载。

所有 Apache Tomcat 3.x 版本都源于 Sun 捐赠给 Apache 软件基金会的原始 Servlet 和 JSP 实现。3.x 版本都实现了 Servlet 2.2JSP 1.1 规范。

Apache Tomcat 3.3.x。版本 3.3.2 是最终的生产质量发布版本。它延续了 3.2 版本开始的重构,并将其推向了逻辑终点。版本 3.3 提供了更加模块化的设计,并允许通过添加和删除控制 servlet 请求处理的模块来自定义 servlet 容器。此版本还包含许多性能改进。

Apache Tomcat 3.2.x。版本 3.2 自 3.1 以来新增功能不多;主要工作是重构内部以提高性能和稳定性。

Apache Tomcat 3.1.x。3.1 版本相对于 Apache Tomcat 3.0 进行了多项改进,包括 servlet 重载、WAR 文件支持以及增加了 IIS 和 Netscape Web 服务器的连接器。最后一个维护版本 3.1.1 包含了安全问题的修复。

Apache Tomcat 3.0.x。Apache Tomcat 的初始发布版本。

Tomcat 3 的用户应注意,Tomcat 3 现已达到生命周期结束。Tomcat 3.x 的用户应升级到 Tomcat 9.x 或更高版本。