内容

Apache Tomcat 版本

Apache Tomcat® 是 Jakarta EE(以前称为 Java EE)技术子集的开源软件实现。不同的 Apache Tomcat 版本适用于不同版本的规范。Apache Tomcat 版本与规范之间的映射关系为

当前支持的版本

Servlet 规范 JSP 规范 EL 规范 WebSocket 规范 身份验证规范 (JASPIC) Apache Tomcat 版本 最新发布版本 支持的 Java 版本
6.1 4.0 6.0 2.2 3.1 11.0.x 11.0.0-M19 (alpha) 17 及更高版本
6.0 3.1 5.0 2.1 3.0 10.1.x 10.1.23 11 及更高版本
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.89 8 及更高版本

不支持的版本

这些版本的 Apache Tomcat 已达到使用寿命终结,建议用户升级到支持的版本。

Servlet 规范 JSP 规范 EL 规范 WebSocket 规范 身份验证规范 (JASPIC) Apache Tomcat 版本 最终1 发布版本 支持的 Java 版本 使用寿命终结日期
5.0 3.0 4.0 2.0 2.0 10.0.x (已取代) 10.0.27 (已取代) 8 及更高版本 2022-10-31
3.1 2.3 3.0 1.1 1.1 8.5.x (EOL) 8.5.100 (EOL) 7 及更高版本 2024-03-31
3.1 2.3 3.0 1.1 N/A 8.0.x(已取代) 8.0.53(已取代) 7 及更高版本 2018-06-30
3.0 2.2 2.2 1.1 N/A 7.0.x(已归档) 7.0.109(已归档) 6 及更高版本
(WebSocket 的 7 及更高版本)
2021-03-31
2.5 2.1 2.1 N/A N/A 6.0.x(已归档) 6.0.53(已归档) 5 及更高版本 2016-12-31
2.4 2.0 N/A N/A N/A 5.5.x(已归档) 5.5.36(已归档) 1.4 及更高版本 2012-09-31
2.3 1.2 N/A N/A N/A 4.1.x(已归档) 4.1.40(已归档) 1.3 及更高版本 2009-06-25
2.2 1.1 N/A N/A N/A 3.3.x(已归档) 3.3.2(已归档) 1.1 及更高版本 2004-03-09
* “最终”版本并非绝对最终版本,但这些版本之后的版本极不可能出现。

每个版本的 Tomcat 都支持任何满足上述表格中最后一列要求的稳定 Java 版本。

Tomcat 还应该在满足上述表格中最后一列要求的任何 Java 早期访问版本上运行。例如,用户在第一个稳定的 Java 8 版本发布之前的几个月内就成功地在 Java 8 上运行了 Tomcat 8。但是,早期访问版本的使用者应注意以下事项

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

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

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

Alpha / Beta / 稳定

在投票选择版本时,评审人员会指定他们认为该版本已达到的稳定性级别。新主版本的初始版本通常会经历从 Alpha 到 Beta,再到 Stable 的过程,持续数月。但是,只有在该版本实现的 Java 规范最终确定后,才能达到 Stable 级别。这意味着,即使在其他方面被认为是稳定的版本,如果规范尚未最终确定,也可能仍然被标记为 Beta。

下载页面将始终显示最新的稳定版本,以及任何更新的 Alpha 或 Beta 版本(如果有)。Alpha 和 Beta 版本在下载页面上始终有明确的标记。

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

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

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

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

支持的版本详细信息

Apache Tomcat 11.0.x (Alpha)

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 (Stable)

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 (Stable)

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 库)
  • 添加了对使用 OpenSSL 为 JSSE 连接器(NIO 和 NIO2)提供 TLS 支持的支持
  • 添加了对 TLS 虚拟主机(SNI)的支持

不支持的版本详细信息

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(EOL)

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)里程碑版本分支而来。它提供了 HTTP/2 支持以及来自 Tomcat 9.x 代码库的其他功能,同时与 Tomcat 8.0 运行时和规范要求兼容。(当时无法创建 Tomcat 9.0 的稳定版本,因为 Tomcat 9 针对的 Java EE 规范直到几年后才最终确定)。

Tomcat 8.5 被认为是 Tomcat 8.0 的替代品。请参考 迁移指南 获取有关迁移到 Tomcat 8.5 的指导。

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

  • 添加了对 HTTP/2 的支持(需要 Tomcat Native 库)
  • 添加了对使用 OpenSSL 为 JSSE 连接器(NIO 和 NIO2)提供 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 8.5.x 或更高版本。

Tomcat 8.5 用户请注意,Tomcat 8.5 已经到达 生命周期终点。Tomcat 8.5.x 用户应升级到 Tomcat 9.0.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 8.5.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 7.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 和 manager Web 应用程序进行完整的服务器监控
  • 可扩展性和可靠性增强
  • 改进的 Taglibs 处理,包括高级池和标签插件
  • 改进的平台集成,具有原生 Windows 和 Unix 包装器
  • 使用 JMX 嵌入
  • 增强安全管理器支持
  • 集成会话集群
  • 扩展文档

Tomcat 5 用户请注意,Tomcat 5 现已 停止维护。Tomcat 5.x 用户应升级到 Tomcat 7.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 7.x 或更高版本。

Apache Tomcat 3.x(已归档)

Apache Tomcat 3.x 可从存档下载。

  • 版本 3.3 是 Servlet 2.2 和 JSP 1.1 规范的当前生产质量版本。Apache Tomcat 3.3 是 Apache Tomcat 3.x 架构的最新延续;它比 3.2.4 更先进,3.2.4 是“旧”的生产质量版本。
  • 版本 3.2.4 是“旧”的生产质量版本,现在仅处于维护模式。
  • 版本 3.1.1 是一个遗留版本。

所有 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 以来添加了一些新功能;主要工作是对内部进行了重构,以提高性能和稳定性。3.2.1 版本与 3.1.1 版本一样,是一个安全补丁。版本 3.2.2 修复了大量错误和所有已知的规范合规性问题。版本 3.2.3 是一个安全更新,它修复了一个严重的漏洞。版本 3.2.4 是一个次要的错误修复版本。所有使用 Apache Tomcat 3.2.3 之前版本的用户应尽快升级。除了针对关键安全相关错误的修复之外,Apache Tomcat 3.2.x 分支的开发已停止。

Apache Tomcat 3.1.x。3.1 版本包含了对 Apache Tomcat 3.0 的一些改进,包括 servlet 重载、WAR 文件支持以及为 IIS 和 Netscape Web 服务器添加的连接器。最新的维护版本 3.1.1 包含了针对安全问题的修复。Apache Tomcat 3.1.x 目前没有进行任何活跃的开发。Apache Tomcat 3.1 的用户应更新到 3.1.1 以修复安全漏洞,并强烈建议他们迁移到当前的生产版本 Apache Tomcat 3.3。

Apache Tomcat 3.0.x。初始 Apache Tomcat 版本。

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