【Day32】Tomcat 服务器:安装、配置与 Web 应用部署

本文收录于「Java 学习日记:从入门到架构师」专栏,聚焦 Java Web 核心基础,从 Tomcat 实操入手,帮你打通 “写代码 - 部署运行” 的最后一公里~

一、为什么要学 Tomcat?

在上一篇 HTTP 协议的学习中,我们知道客户端的请求需要服务器来处理 —— 而 Tomcat 就是 Java 开发者最常用的开源 Servlet 容器 / WEB 服务器

简单来说:

  • 你写的 SpringBoot、SSM 项目,本质上是运行在 Tomcat 中的;
  • 即使 SpringBoot 内置了 Tomcat,掌握独立 Tomcat 的安装、配置和部署,才能理解 Web 应用的运行原理;
  • 实际开发 / 运维中,部署项目、排查端口占用、调整 JVM 参数等场景,都离不开 Tomcat 的基础操作。

今天这篇日记,我们从 “下载安装→核心配置→项目部署” 全流程实操,新手也能跟着一步步做。

二、Tomcat 前置准备与安装(Windows/Linux 通用思路)

1. 前置条件

Tomcat 是 Java 开发的,必须先安装 JDK 并配置环境变量:

  • 验证:打开终端 / CMD,输入java -version,能显示 JDK 版本即配置成功;
  • 版本兼容:Tomcat 9 推荐 JDK 8+,Tomcat 10 推荐 JDK 11+(注意:Tomcat 10 对 Servlet API 包名做了调整,新手先学 Tomcat 9)。

2. 下载 Tomcat

  1. 官网地址:Apache Tomcat 9;
  2. 选择对应系统版本:
    • Windows:下载32-bit/64-bit Windows Service Installer(安装版)或zip(解压版,推荐);
    • Linux:下载tar.gz压缩包。

3. 安装 / 解压(以 Windows 为例)

  • 解压版:将下载的 zip 包解压到非中文、无空格的目录(如D:\apache-tomcat-9.0.80);
  • 安装版:双击安装程序,一路下一步,注意选择 JDK 路径,端口默认 8080 即可。

4. 启动与验证 Tomcat

方式 1:脚本启动(推荐)
  1. 进入 Tomcat 解压目录的bin文件夹:
    • Windows:双击startup.bat
    • Linux:执行./startup.sh(需先赋予权限:chmod +x startup.sh shutdown.sh);
  2. 验证:打开浏览器,输入http://localhost:8080,能看到 Tomcat 默认页面即启动成功;
  3. 停止:bin文件夹中双击shutdown.bat(Windows)/ 执行./shutdown.sh(Linux)。
方式 2:Windows 服务启动

安装版可将 Tomcat 注册为系统服务:

  1. 以管理员身份运行bin中的service.bat install
  2. 在 “服务” 中找到Apache Tomcat 9,手动启动 / 停止。

三、Tomcat 核心目录与配置文件

先理清 Tomcat 的目录结构,后续配置和部署都基于这些目录:

目录核心作用
bin启动 / 停止脚本(startup.sh/bat、shutdown.sh/bat)
conf核心配置文件(server.xml、web.xml、tomcat-users.xml)
webappsWeb 应用部署目录(将项目放到这里即可运行)
logs日志文件(排查问题的关键,如 catalina.out)
temp临时文件目录
workTomcat 编译 JSP 生成的 class 文件目录

1. 核心配置文件:server.xml(重点)

conf/server.xml是 Tomcat 的核心配置文件,主要配置端口、连接器、引擎等,新手重点关注 3 个配置:

(1)修改 Tomcat 端口(解决端口占用)

默认端口 8080,若被占用,找到<Connector>标签修改:

xml

<!-- 默认8080端口,改为8081(任意未被占用的端口) --> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
  • port:HTTP 访问端口;
  • redirectPort:HTTPS 重定向端口;
  • connectionTimeout:连接超时时间(毫秒)。

修改后重启 Tomcat,访问地址变为http://localhost:8081

(2)配置主机(Host)

默认主机是localhost,对应部署目录webapps/ROOT(访问http://localhost:8080实际访问的是这个目录):

xml

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 日志相关配置 --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>
  • appBase:该主机的应用部署根目录;
  • autoDeploy:是否自动部署(放入 webapps 的项目会自动加载);
  • unpackWARs:是否自动解压 WAR 包。

2. 配置管理员账户(Tomcat 管理后台)

Tomcat 自带管理后台(http://localhost:8080/manager/html),可可视化部署项目,需先配置账户:

编辑conf/tomcat-users.xml,在<tomcat-users>标签内添加:

xml

<!-- 配置管理员角色和账户密码 --> <user username="admin" password="123456" roles="manager-gui,admin-gui"/>
  • manager-gui:允许访问项目管理后台;
  • admin-gui:允许访问服务器管理后台。

⚠️ 注意:Tomcat 8+ 默认只允许本地访问管理后台,若需远程访问,需修改webapps/manager/META-INF/context.xml,注释掉 IP 限制:

xml

<!-- 注释掉以下内容,允许所有IP访问 --> <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

四、Web 应用部署(3 种常用方式)

方式 1:直接复制部署(最简单)

  1. 将你的 Web 项目(文件夹形式)或 WAR 包,直接复制到 Tomcat 的webapps目录;
  2. 若 Tomcat 已启动,会自动解压(WAR 包)并加载项目;
  3. 访问路径:http://localhost:8080/项目名/接口路径(如http://localhost:8080/demo/login);
    • 若项目名是ROOT,则访问路径为http://localhost:8080/接口路径(默认根项目)。

方式 2:管理后台部署(可视化)

  1. 启动 Tomcat,访问http://localhost:8080/manager/html,输入配置的 admin 账户密码;
  2. 找到 “Deploy” 区域,选择 WAR 包文件,点击 “Deploy” 即可完成部署;
  3. 可在后台直接启动 / 停止 / 卸载项目,适合测试环境。

方式 3:配置 Context 部署(指定路径)

若不想将项目放在 webapps 目录,可通过配置指定项目路径:

conf/Catalina/localhost目录下,新建demo.xml(文件名 = 项目访问路径),内容:

xml

<Context docBase="D:\projects\demo" reloadable="true"/>
  • docBase:项目的实际路径(文件夹或 WAR 包);
  • reloadable:是否热部署(项目文件修改后自动重启,开发环境推荐 true,生产环境推荐 false)。

配置后启动 Tomcat,访问路径为http://localhost:8080/demo

五、实战:部署一个简单的 Java Web 项目

1. 准备项目(新手示例)

新建一个简单的 Web 项目,结构如下:

plaintext

demo/ ├── WEB-INF/ │ ├── web.xml # Web核心配置文件 │ ├── classes/ # 存放class文件(空即可) │ └── lib/ # 存放依赖包(空即可) └── index.html # 测试页面

index.html内容:

html

预览

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Tomcat部署测试</title> </head> <body> <h1>🎉 恭喜!Tomcat部署成功!</h1> <p>Java学习日记 - Day32</p> </body> </html>

WEB-INF/web.xml内容(最简配置):

xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 默认首页 --> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>

2. 部署并访问

  1. demo文件夹复制到 Tomcat 的webapps目录;
  2. 启动 Tomcat;
  3. 打开浏览器访问http://localhost:8080/demo,能看到测试页面即部署成功。

六、避坑指南:Tomcat 常见问题

  1. 端口占用:启动 Tomcat 提示 “8080 端口被占用”,可修改server.xml中的端口,或用netstat -ano | findstr 8080(Windows)/lsof -i:8080(Linux)查看占用进程,结束后重启;
  2. 启动闪退:大概率是 JDK 环境变量未配置,或 Tomcat 解压路径有中文 / 空格,检查后重新配置;
  3. 项目访问 404:确认项目放在webapps目录,且访问路径正确(http://localhost:8080/项目名),若配置了 Context,检查docBase路径是否正确;
  4. 权限不足(Linux):启动 Tomcat 提示 “Permission denied”,执行chmod +x bin/*.sh赋予脚本执行权限。

七、今日实战小任务

  1. 下载并安装 Tomcat 9,修改默认端口为 8081,启动后验证;
  2. 配置 Tomcat 管理员账户,登录管理后台;
  3. 编写一个简单的 HTML 页面,打包成 Web 项目部署到 Tomcat,访问验证。

总结

  1. Tomcat 是 Java Web 核心服务器,核心目录中conf存放配置、webapps存放部署的项目、bin存放启动 / 停止脚本;
  2. server.xml是核心配置文件,可修改端口、配置主机,tomcat-users.xml用于配置管理后台账户;
  3. Tomcat 部署项目有 3 种常用方式:复制到 webapps、管理后台部署、配置 Context 部署,新手优先掌握第一种。

下一篇【Day33】预告:Servlet 核心详解(生命周期、请求 / 响应处理、实战案例),关注专栏持续解锁 Java Web 核心知识点~若本文对你有帮助,欢迎点赞 + 收藏 + 关注,你的支持是我更新的最大动力💖!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GEO服务商深度评测榜单:原圈科技凭何领跑AI营销赛道?

原圈科技在GEO&#xff08;生成式引擎优化&#xff09;领域表现突出&#xff0c;被普遍视为AI营销赛道的领跑者。其优势在于拥有自主可控的AI技术底座、深度融合行业知识与私域数据&#xff0c;并构建了覆盖营销全链路的产品体系。通过服务国金证券、Jeep等头部企业的可量化成功…

收藏级干货!RAG核心原理+实战场景全解析,小白也能懂的大模型必备技术

一、RAG到底是什么&#xff1f;用“学生写论文”讲明白 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;并非某类独立大模型&#xff0c;而是一套“检索前置生成后置”的复合技术架构&#xff0c;核心目标是解决传统大模型“凭记忆答题”的…

瑞维美尼:全球首款menin抑制剂,以靶向创新改写难治性白血病格局

在急性白血病的治疗版图中&#xff0c;携带KMT2A基因重排或NPM1突变的亚型长期处于“化疗耐药、复发率高、生存期短”的困境。传统化疗对这类患者的缓解率不足30%&#xff0c;中位生存期仅3-4个月&#xff0c;无数患者在反复治疗与复发中陷入绝境。直到瑞维美尼&#xff08;Rev…

适应症双扩+缓解率超70%:瑞维美尼的临床疗效与适用人群

作为针对性攻克难治性白血病的靶向药物&#xff0c;瑞维美尼的临床价值核心体现在明确的适应症覆盖与卓越的治疗效果上&#xff0c;尤其为复发或难治性患者提供了全新的生存希望。其获批的两大适应症精准聚焦临床治疗痛点&#xff0c;涵盖成人与儿童两大人群&#xff0c;打破了…

GEO服务商榜单:Jeep、国金证券力荐,原圈科技如何领跑AI营销?

原圈科技在GEO&#xff08;生成式引擎优化&#xff09;领域&#xff0c;凭借其自主可控的多模型编排能力、AI原生的全流程解决方案以及深度行业垂直深耕力&#xff0c;被市场普遍视为领先的服务商。其在金融、汽车等行业的成功案例&#xff0c;尤其是在技术能力与安全合规方面的…

口腔伤口可以用什么药物促进愈合

口腔生理环境特殊&#xff0c;伤口愈合需针对性护理&#xff0c;当前口腔健康领域虽有高露洁、佳洁士等国际企业布局护理产品&#xff0c;拜耳、葛兰素史克及国内云南白药、三金药业等深耕口腔用药&#xff0c;但深圳市华生元基因工程发展有限公司的相关产品在口腔伤口促愈领域…

无线智能小车的软件设计与实现

摘要 智能车辆是目前世界车辆研究领域的热点和汽车工业新的增长点。智能车辆是含括了自动化、传感、计算机、通信、信息、导航人工智能等技术的一种高新技术综合体&#xff0c;可以实现环境感知、路径规划以及自动驾驶等。 本文设计了一个可以由红外遥控器操控并且可以能够可以…

30岁转行逆袭:从建筑到AI,斩获北美大厂offer的蜕变之路

本文讲述了一位30岁建筑行业从业者王同学的转行故事。面对房地产行业衰落&#xff0c;他毅然决定转行学习AI大模型技术。通过考虑技术融合趋势、职业发展规划、交叉学科优势等因素&#xff0c;并参加专业工作坊获得指导&#xff0c;他成功申请到卡耐基梅隆大学和康奈尔大学&…

AI大模型入门必看:AGI、RAG、AIGC核心概念详解,收藏不迷路

文章用通俗易懂的语言解释了AI大模型的三大核心术语&#xff1a;AGI&#xff08;通用人工智能&#xff0c;具备人类水平广泛认知能力&#xff09;、RAG&#xff08;检索增强生成&#xff0c;结合外部知识库提升内容准确性&#xff09;和AIGC&#xff08;人工智能生成内容&#…

伤口结痂后还有必要使用促进愈合的药物吗?

口腔生理环境特殊&#xff0c;伤口愈合慢且易感染&#xff0c;对护理和药物适配性要求极高&#xff0c;而伤口愈合全周期亦需分阶段护理。在这一领域&#xff0c;虽有3M、施乐辉等国际企业及稳健医疗、振德医疗等国内企业布局相关产品&#xff0c;口腔健康细分领域也有高露洁、…

SSL/TLS 协议详解:安全通信的基石

一、概述 SSL&#xff08;Secure Sockets Layer&#xff09; 及其继任者 TLS&#xff08;Transport Layer Security&#xff09; 是位于 传输层&#xff08;TCP&#xff09;与应用层之间 的加密协议&#xff0c;用于在网络通信中实现 机密性、身份认证和数据完整性。 核心目标…

小白必学!RAG与向量数据库完全指南,5分钟掌握大模型核心技术

文章介绍了RAG&#xff08;检索增强生成&#xff09;是一种结合检索与生成的大语言模型应用架构&#xff0c;其检索部分通常通过向量数据库实现。向量数据库用于存储和高效搜索高维向量表示&#xff0c;将文本转换为向量进行相似度检索。RAG通过预处理文档为向量存入数据库&…

AI智能体规划模式教程(超详细)从零基础到实战应用,一篇全掌握,建议收藏!

规划模式(Planning Pattern)是智能体从工具执行迈向理性决策的关键设计模式&#xff0c;通过目标理解、任务分解、步骤排序和执行调整四个阶段&#xff0c;使AI具备"先思考再行动"的能力。该模式结合Tree-of-Thought思维实现多步推理&#xff0c;建立PEOR闭环循环&am…

无线LED照明系统

摘 要 本次毕业设计的题目是无线LED照明系统&#xff08;Zigbee&#xff09;的设计与实现。本论文就毕业设计的内容&#xff0c;选用Atmega16单片机作主控制器&#xff0c;系统地阐述了整个由Zigbee协议支持的无线LED照明系统的功能及实现。在指导老师的帮助下设计并实现了从底…

30岁转行AI大模型,别让时间再浪费!收藏这份高薪学习资源包_30岁转行AI大模型!

文章详细介绍了AI大模型行业的广阔前景和薪资水平&#xff0c;涵盖算法工程师、数据科学家等多样化就业岗位&#xff0c;提供从入门到进阶的7阶段系统学习路线&#xff0c;并包含报告合集、经典书籍和实战案例等全套学习资源&#xff0c;强调系统学习对掌握这一高需求、高待遇热…

DNS服务协议有哪些?

DNS协议概述 DNS的定义和作用 DNS&#xff08; 域名系统 &#xff09;是互联网的核心服务之一&#xff0c;它将易记的域名转换为计算机识别的IP地址&#xff0c;实现了人类友好界面与网络底层架构间的无缝衔接。这一功能极大地简化了用户访问互联网资源的过程&#xff0c;同时为…

理想全模态大模型团队实战:从零打造智能工具,解决企业真实痛点,程序员必看技术落地案例

Ideal全模态大模型创新工作坊采用"资深专家领航、青年骨干攻坚"模式&#xff0c;成功研发智能文档审核系统、"人效问数助手"等工具&#xff0c;解决文档审核、数据查询等业务痛点。团队攻克上海话识别、算力不足等技术难题&#xff0c;参与数字人项目开发&…

MB51和MB52的区别,分别在什么情景下使用

MB51和MB52的区别&#xff0c;分别在什么情景下使用在 SAP MM&#xff08;物料管理&#xff09;模块中&#xff0c;MB51 和 MB52 是两个常用的事务代码&#xff0c;都用于查看 物料移动记录&#xff0c;但它们的用途和功能有重要区别。✅ 一、基本定义对比项目MB51MB52全称Mate…

基于AI技术的11款论文工具,融合LaTeX排版与内容精修能力

工具对比排名 工具名称 核心优势 支持LaTeX 适用场景 aibiye AIGC率降个位数&#xff0c;兼容知网规则 是 AI痕迹强处理 aicheck 学术改写优化&#xff0c;语义保留佳 是 格式统一化 askpaper 降重降AI一体&#xff0c;20分钟快速响应 是 初稿优化 秒篇 人类特…

AI驱动的11种学术论文写作工具,支持LaTeX格式与智能内容增强

工具对比排名 工具名称 核心优势 支持LaTeX 适用场景 aibiye AIGC率降个位数&#xff0c;兼容知网规则 是 AI痕迹强处理 aicheck 学术改写优化&#xff0c;语义保留佳 是 格式统一化 askpaper 降重降AI一体&#xff0c;20分钟快速响应 是 初稿优化 秒篇 人类特…