编程自学指南:java程序设计开发,JavaWeb 开发的必备容器Tomcat 基础知识
一、课程信息
学习目标
- 理解 Tomcat 的核心作用:JavaWeb 应用容器
- 掌握 Tomcat 的安装、配置与启动流程
- 学会部署 Web 应用并调试常见问题
- 理解 Tomcat 目录结构与核心配置文件
二、课程导入:Tomcat 是什么?
🌰 生活类比
- Tomcat 就像一个餐厅的「服务员」:
- 接收顾客(客户端)的点餐请求
- 把请求交给后厨(Java 程序)处理
- 把做好的饭菜(响应)端给顾客
三、Tomcat 核心概念
🔍 1. 什么是 Tomcat?
- 官方定义:Apache Tomcat 是一个开源的 Servlet 容器,实现了 JavaEE 中的 Web 层规范(Servlet/JSP)
- 作用:
✅ 运行 JavaWeb 应用(.class/.jsp 文件)
✅ 处理 HTTP 请求与响应
✅ 管理应用的生命周期
🔧 2. Tomcat vs 其他服务器
服务器 | 类型 | 典型用途 |
---|---|---|
Tomcat | Servlet 容器 | 运行 JavaWeb 应用(中小项目) |
Nginx | 静态服务器 | 处理静态资源(图片 / HTML) |
Apache | 全能服务器 | 混合静态 + 动态内容 |
WildFly | 完整 JavaEE 容器 | 企业级 JavaEE 应用 |
四、Tomcat 安装与配置(20 分钟)
🔨 1. 安装步骤(以 Windows 为例)
- 下载:从 Apache Tomcat 官网 下载
zip
包(推荐 9.x 版本) - 解压:解压到
C:\tomcat
- 配置环境变量:
- 新增
CATALINA_HOME
指向 Tomcat 目录(CATALINA_HOME
一定要大写) - 将
%CATALINA_HOME%\bin
添加到PATH
- 新增
🔄 2. 启动与停止
# 启动(Windows)
startup.bat
# 启动(Mac/Linux)
sh startup.sh
# 停止
shutdown.bat 或 Ctrl+C
🌐 3. 首次启动验证
访问 http://localhost:8080
,看到 Tomcat 欢迎页面即安装成功
五、Tomcat 目录结构
tomcat/
├─ bin/ # 保存所有的二进制可执行程序,启动/停止脚本(.bat/.sh)
├─ conf/ # 保存所有核心配置文件(核心:server.xml)
├─ webapps/ # 默认应用部署目录
├─ work/ # JSP 编译后的临时文件
├─ lib/ # 是一个CLASSPATH加载路径,Tomcat 依赖的 jar 包
└─ logs/ # 保存Tomcat生成的相关日志文件
🔍 核心配置文件
server.xml
- 配置端口、虚拟主机、连接器等
- 修改端口(默认 8080):
<Connector port="8081" protocol="HTTP/1.1" .../>
六、部署 Web 应用实战
🔧 案例 1:部署静态 HTML
- 在
webapps
目录下创建myapp
文件夹 - 新建
index.html
:<h1>Hello Tomcat!</h1>
- 访问
http://localhost:8080/myapp
🔧 案例 2:部署动态 Servlet
步骤 1:创建动态 Web 项目(IDEA)
- 新建项目 → 选择 Dynamic Web Project
- 勾选 Generate web.xml deployment descriptor
步骤 2:编写 Servlet
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello") // 访问路径
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("Hello from Servlet!");
}
}
步骤 3:部署到 Tomcat
- 在 IDEA 中配置 Tomcat 服务器
- 右键项目 → Add to Tomcat
- 启动 Tomcat,访问
http://localhost:8080/项目名/hello
七、Tomcat 核心配置进阶
🔧 案例 3:配置虚拟主机
- 编辑
conf/server.xml
,添加:<Host name="myapp.local" appBase="webapps/myapp" />
- 修改
C:\Windows\System32\drivers\etc\hosts
,添加:127.0.0.1 myapp.local
- 访问
http://myapp.local:8080
🔧 案例 4:设置上下文路径
- 在
web.xml
中配置:<context-param> <param-name>contextPath</param-name> <param-value>/myapp</param-value> </context-param>
八、常见问题与解决方案
⚠️ 问题 1:端口被占用
- 现象:启动时报
Address already in use
- 解决:
- 找到占用端口的进程:
netstat -ano | findstr 8080
- 杀死进程:
taskkill /pid 进程号 /f
- 找到占用端口的进程:
⚠️ 问题 2:404 Not Found
- 常见原因:
✅ Servlet 路径配置错误
✅ 项目未部署到 Tomcat
⚠️ 问题 3:500 Internal Server Error
- 常见原因:
✅ Servlet 代码抛出异常
✅ JSP 语法错误
九、课堂练习
练习 1:部署 JSP 页面
任务:
- 在
webapps
目录下创建jspdemo
文件夹 - 新建
time.jsp
,显示当前时间:<%@ page language="java" %> 当前时间:<%= new java.util.Date() %>
练习 2:修改 Tomcat 端口
任务:
- 将 Tomcat 端口改为 8088
- 验证访问
http://localhost:8088或127.0.0.1:8080(.和:必须在英文状态下输入)
十、课程总结
知识图谱:
Tomcat
↳ 作用:运行 JavaWeb 应用的容器
↳ 核心目录:webapps(部署)、conf(配置)
↳ 部署方式:IDE 集成 / 直接复制到 webapps
↳ 常见问题:端口冲突、404/500 错误
口诀记忆:
“Tomcat 是容器,Web 应用它来撑,
启动脚本 bin 里找,部署就放 webapps,
配置文件 server.xml,端口虚拟主机改,
404 路径错,500 代码有问题!”
十一、课后作业
必做 1:部署个人简历网站
要求:
- 用 HTML/CSS 制作静态简历
- 部署到 Tomcat,通过
http://localhost:8080/resume
访问
必做 2:分析 Tomcat 日志
任务:
- 故意编写一个会报错的 Servlet
- 查看
logs/catalina.out
日志,分析错误原因