一、版本对应关系
在配置之前,先确定自己的jdk、tomcat的版本是否对应,以免后续出现不适配的情况。我们可以在 Tomcat 的官网查看相关的版本对应信息,这里给出网址,并附上表格。
Apache Tomcat® - 我想要哪个版本?https://tomcat.apache.org/whichversion.html
以下表格复制于2024-6-16,具体以上述官网内容为主
Apache Tomcat 是一个开源软件实现 Jakarta EE(前身为 Java EE)技术的子集。
-
当前支持的版本
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(阿尔法) | 17 及更高版本 |
6.0 | 3.1 | 5.0 | 2.1 | 3.0 | 10.1.x | 10.1.24 | 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 版本 | 最终发布版本 | 支持的 Java 版本 | EOL 日期 |
---|---|---|---|---|---|---|---|---|
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 (停产) | 8.5.100(EOL) | 7 及更高版本 | 2024-03-31 |
3.1 | 2.3 | 3.0 | 1.1 | 不适用 | 8.0.x(已被取代) | 8.0.53(已被取代) | 7 及更高版本 | 2018-06-30 |
3.0 | 2.2 | 2.2 | 1.1 | 不适用 | 7.0.x (已存档) | 7.0.109 (已存档) | 6 及更高版本 (WebSocket 为 7 及更高版本) | 2021-03-31 |
2.5 | 2.1 | 2.1 | 不适用 | 不适用 | 6.0.x (已存档) | 6.0.53 (已存档) | 5 及更高版本 | 2016-12-31 |
2.4 | 2.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 |
*“最终”版本从来都不是绝对最终的,而是在之后发布的 这些都是极不可能的。 |
二、选择版本并安装
基于上述版本的对应关系,我选择了 jdk17 + tomcat10.1.24
-
jdk17安装并配置环境变量
具体过程不赘述,请参考下面链接
-
tomcat10.1安装和测试
其中环境变量可以不用配置
如果启动 startup.bat 时出现乱码可以参考下文中提到的方法将UTF-8改为GBK,或者可以直接将下述代码注释掉。原因是系统的DOS窗口默认使用的是GBK码。
#java.util.logging.ConsoleHandler.encoding = UTF-8
三、在IDEA上部署项目
-
配置Maven
请确保 jdk17 配置成功,并且 tomcat10.1 能够访问本机地址 localhost:8080 或者 127.0.0.1:8080 。
这里我使用的是Maven进行项目管理,可以参考下面文章,在IDEA上配置Maven。可以选择IDEA自带的Maven,也可到官网自行下载并配置。
建议本地仓库按照下述方法去建立,方便管理。(详情见链接内容)
-
创建 Jakarta EE 项目
点OK ---> 点next,选择对应的Jakarta和Servlet版本
该目录下是自动生成的示例
运行项目,生成下面第二张图片的页面说明成功
终端信息,连接成功,断开连接