当前位置: 首页 > news >正文

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 的生产部署最佳实践?

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

http://www.jsqmd.com/news/325523/

相关文章:

  • 从0到1!AI智能体入门实战,用扣子Coze搭办公助手,程序员半小时搞定自动化摸鱼神器
  • 三次元测量仪好用的品牌有哪些,卓新检测口碑出众
  • JMeter的基本使用与性能测试,完整入门篇保姆式教程
  • Python趣味算法:三色球问题:Python暴力枚举法的完美实践 - 指南
  • 谷歌seo搜索引擎优化外包给谁比较好?避坑指南与实战建议
  • py每日spider案例之影视链接获取(美ju)
  • json的几种标准格式
  • 2026年研究院转让公司排行,性价比高的有哪些
  • 中企优帮的管理水平如何选择,这些要点要掌握
  • 导师推荐!专科生必用10款AI论文工具测评
  • httpx库异步爬虫实战对比aiohttp
  • asyncio+queue实现生产者消费者爬虫模型
  • 基于ssm的考研复习平台w0ws1848(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,架构界面在最后面。
  • 如何用Python搭建一个网站
  • 2026年技巧:用抖音训练测试AI模型
  • 互联网大厂Java面试实录:核心技术栈与业务场景深度解析
  • 抽奖系统推荐!年会必备神器!老司机专用神器!
  • Java中随机数生成_java 随机数,零基础入门到精通,收藏这篇就够了
  • 开源工具如何让测试报告美感飙升200%:专业解析与实战指南
  • 深入解析:iOS开发:关于日志框架
  • 2026年当下头部门窗采购有哪些,平移断桥提升窗/侧压平移推拉窗/推拉窗/门窗/安全门窗/窗纱一体铝门窗,门窗采购排行
  • 软件测试公众号爆款内容解析:专业洞察与AI应用
  • Docker核心问题汇总(含原理、操作、网络全解析)
  • adobe acrobat软件可以-另存为-缩小大小-可以将23MB文件转成1MB,太牛逼了
  • [嵌入式系统-171]:直流电机通过PWM信号控制转速和连续运转;步进电机通过脉冲信号实现开环控制,每接收一个脉冲转动一个固定步距角;伺服电机则通过PWM脉宽指令结合内部反馈实现闭环控制,精确控制
  • 2026效率革命:AI会议纪要转测试需求的实战指南
  • Java SE 面向对象
  • 推荐专业的研究院转让公司,全国范围内哪家比较靠谱?
  • Python开发平台怎么选?核心功能与场景匹配指南
  • 低代码测试平台的隐私合规陷阱:软件测试从业者的专业避坑指南