news 2026/4/15 16:31:26

Tomcat使用教程(超详细)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tomcat使用教程(超详细)

Tomcat 使用教程(2025-2026 超详细版)

这是一份面向真实使用场景的 Tomcat 教程,尽量覆盖从零安装 → 开发部署 → 生产常见问题 → 优化调优的全流程。

1. Tomcat 目前的版本现状(2025-2026)

Tomcat 版本Servlet / JSP / WebSocket 规范Java 最低版本状态(2025年底)推荐生产使用?备注
9.x4.0 / 2.3 / 1.1Java 8维护中(到 2025.12)可以很多老项目还在用
10.1.x5.0 / 3.1 / 2.0Java 11活跃维护推荐主流过渡版本
11.x6.0 / 4.0 / 2.1Java 17最新稳定版(2025年主流)最推荐Jakarta EE 10,命名空间全面迁移
10.0.x5.0 / 3.1 / 2.0Java 8已停止支持不推荐过渡版本,已 EOL

2025-2026 生产推荐排序
11.x > 10.1.x > 9.0.x(仅遗留系统)

2. 快速开始(最常见的三种安装方式)

方式一:直接下载解压(最常用)
  1. 官网下载:https://tomcat.apache.org/

    • 选 Tomcat 11.x → Binary Distributions → Core → zip 或 tar.gz
  2. 解压到任意目录,例如:

    • Windows:D:\servers\apache-tomcat-11.0.x
    • Linux:/opt/tomcat11
  3. 启动(最简单两种方式)

# Linux / macOScd/opt/tomcat11/binchmod+x *.sh ./startup.sh# Windows(双击或命令行)D:\servers\apache-tomcat-11.0.x\bin\startup.bat
  1. 验证是否启动成功
    浏览器打开:http://localhost:8080
    看到 Tomcat 欢迎页 → 成功
方式二:使用 Docker(开发/测试/CI 首选)
# 快速启动最新 Tomcat 11dockerrun -d -p8080:8080 --name tomcat11 tomcat:11-jdk17# 挂载本地 war 包(最常用方式)dockerrun -d -p8080:8080\-v /path/to/your-app.war:/usr/local/tomcat/webapps/ROOT.war\--name myapp tomcat:11-jdk17
方式三:IDEA / Eclipse 内置 Tomcat(开发阶段最方便)
  • IDEA:Run → Edit Configurations → + → Tomcat Server → Local → 配置 Tomcat 目录即可

3. Tomcat 目录结构详解(必须记住)

目录作用说明生产中是否经常改动
bin启动/关闭脚本、工具(startup.sh、shutdown.sh、catalina.sh 等)偶尔改
conf核心配置文件(最重要!)经常改
libTomcat 共享库(放到这里所有 webapp 都能用)偶尔加 jar
logs日志(catalina.out / localhost_access_log 等)经常看
webapps默认部署目录(ROOT/ 是默认欢迎页)放 war 或解压目录
work工作目录(JSP 编译后的 .java/.class 文件、session 持久化等)可定期清理
temp临时文件目录可定期清理

4. 核心配置文件详解(conf 目录下)

文件名作用生产中最常修改的地方
server.xml主配置文件(端口、连接器、Host 等)Connector 端口、AJP、压缩、线程池、SSL
web.xml默认 web 应用描述符全局 filter、mime-type、welcome-file 等
context.xml全局 context 配置资源定义(JNDI 数据源)、Valve 等
tomcat-users.xml管理后台用户添加 manager-gui / admin-gui 角色用户
catalina.propertiesJVM 属性、包扫描排除等内存设置、共享 loader、JMX 等
logging.properties日志配置改日志级别、格式、输出路径

5. 最常用的 server.xml 修改示例(生产必备)

<!-- 修改 HTTP 端口 + 启用压缩 + 优化线程池 --><Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"compression="on"compressionMinSize="2048"compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json"maxThreads="400"minSpareThreads="50"acceptCount="100"URIEncoding="UTF-8"/><!-- 启用 AJP(一般配合 Nginx 反代) --><Connectorprotocol="AJP/1.3"port="8009"address="127.0.0.1"secretRequired="false"/><!-- 生产建议开启 secret --><!-- 修改默认应用路径(可选) --><Hostname="localhost"appBase="webapps"unpackWARs="true"autoDeploy="true"><!-- 示例:自定义一个虚拟主机 --><Contextpath=""docBase="/data/myapp"reloadable="false"/></Host>

6. 部署方式对比(开发 → 生产)

部署方式命令 / 操作方式热部署?生产推荐?场景说明
直接放 war 到 webappscp app.war /opt/tomcat/webapps/★★★★☆最简单,适合中小项目
解压目录部署unzip app.war -d /opt/tomcat/webapps/ROOT★★★☆☆调试 JSP/配置文件方便
server.xml 中 Context在 conf/server.xml 或 conf/Catalina/localhost/ 下写 Context★★★★★路径与 war 包分离,生产首选
Manager GUI 部署http://localhost:8080/manager/html★★☆☆☆测试环境方便,生产不建议开放
自动部署脚本Jenkins / GitLab CI + rsync / scp自定义★★★★★生产标准做法

7. 生产环境常见优化配置(2025-2026 推荐)

# catalina.sh 或 setenv.sh / setenv.bat 中添加 JAVA_OPTS="$JAVA_OPTS -server" JAVA_OPTS="$JAVA_OPTS -Xms2g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m" JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=200" JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

server.xml 连接器优化示例(高并发)

<Connectorport="8080"protocol="org.apache.coyote.http11.Http11Nio2Protocol"connectionTimeout="20000"maxThreads="800"minSpareThreads="100"acceptCount="1000"compression="on"compressionMinSize="2048"noCompressionUserAgents="gozilla,traviata"compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,image/svg+xml"/>

8. 常见问题快速定位口诀

现象优先检查顺序常见原因/解决
8080 端口打不开netstat -tuln / netstat -ano端口被占、防火墙、selinux
启动卡死 / 很久没响应jstack / jmap / 查看 catalina.outJVM 参数不合理、加载大量 jar、死循环
404 / 应用没加载catalina.out / localhost.logwar 包损坏、web.xml 错误、依赖缺失
内存溢出(OOM)-XX:+HeapDumpOnOutOfMemoryError加内存、优化代码、减 session、用连接池
JSP 页面报 500work/Catalina/localhost/ 下看编译错误JSP 语法错、jar 冲突
访问慢jvisualvm / arthas / tomcat manager statusGC 频繁、线程池满、数据库慢、NIO 模型

希望这份内容能覆盖你从学习到上生产的大部分场景。

你现在最想深入了解 Tomcat 的哪一部分?

  • 详细的 server.xml 配置项?
  • 与 Nginx / Apache 反向代理 + HTTPS 配置?
  • 集群 Session 共享方案?
  • JMX 监控 / 性能调优?
  • 还是 Docker + Tomcat 的生产部署最佳实践?

告诉我你的具体需求,我可以继续展开。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/9 12:28:29

2026年技巧:用抖音训练测试AI模型

AI测试的新纪元 随着2026年AI技术加速渗透测试领域&#xff0c;抖音海量用户行为数据成为训练AI模型的黄金资源。软件测试从业者可借此预测公众号内容热度&#xff0c;优化测试策略&#xff0c;提升内容质量与用户粘性。本文将从专业视角解析热度机制&#xff0c;并提供数据驱…

作者头像 李华
网站建设 2026/4/12 3:44:25

开源工具如何让测试报告美感飙升200%:专业解析与实战指南

在软件测试领域&#xff0c;报告不仅是项目成果的展示&#xff0c;更是团队协作和决策的基石。然而&#xff0c;传统报告往往因格式呆板、数据堆砌而缺乏吸引力&#xff0c;导致关键信息被淹没。开源工具的崛起正颠覆这一局面&#xff0c;通过自动化美化功能&#xff0c;将报告…

作者头像 李华
网站建设 2026/4/14 1:51:53

情感化工具设计:让测试报告不再冰冷

当测试报告遇上情感化设计 在软件测试领域&#xff0c;报告常被视为冰冷的文档——充满技术术语却缺乏人情味。然而&#xff0c;公众号内容热度分析显示&#xff0c;情感化元素是引爆流量的核心&#xff1a;情感类文章&#xff08;如职场压力、人际冲突&#xff09;阅读量稳定…

作者头像 李华
网站建设 2026/4/9 22:33:34

‌2026年测试覆盖率作弊检测术终极指南

测试覆盖率是软件质量的核心指标&#xff0c;但2026年&#xff0c;作弊行为&#xff08;如伪造测试用例或选择性执行测试&#xff09;正侵蚀其可信度。本指南从专业角度解析检测技术&#xff0c;结合AI工具和行业趋势&#xff0c;为测试从业者提供实战策略。 ‌一、测试覆盖率…

作者头像 李华
网站建设 2026/4/11 12:16:17

服务器卡顿之——CPU 性能分析

服务器卡顿很大一部分时候都和 CPU 性能瓶颈 有关&#xff0c;尤其是线上环境突然响应慢、卡顿、甚至假死时&#xff0c;第一反应往往是“CPU 是不是爆了”。 下面用最实操的思路、步骤和命令&#xff0c;带你从“现象 → 定位 → 根因 → 优化”完整走一遍。适用于 CentOS / …

作者头像 李华