编程自学指南:java程序设计开发,JavaWeb 开发的必备容器Tomcat 基础知识,JavaWeb 应用容器, Tomcat 目录结构与核心配置文件

编程自学指南:java程序设计开发,JavaWeb 开发的必备容器Tomcat 基础知识

一、课程信息

学习目标

  1. 理解 Tomcat 的核心作用:JavaWeb 应用容器
  2. 掌握 Tomcat 的安装、配置与启动流程
  3. 学会部署 Web 应用并调试常见问题
  4. 理解 Tomcat 目录结构与核心配置文件

二、课程导入:Tomcat 是什么?

🌰 生活类比

  • Tomcat 就像一个餐厅的「服务员」:
    • 接收顾客(客户端)的点餐请求
    • 把请求交给后厨(Java 程序)处理
    • 把做好的饭菜(响应)端给顾客

三、Tomcat 核心概念

🔍 1. 什么是 Tomcat?

  • 官方定义:Apache Tomcat 是一个开源的 Servlet 容器,实现了 JavaEE 中的 Web 层规范(Servlet/JSP)
  • 作用
    ✅ 运行 JavaWeb 应用(.class/.jsp 文件)
    ✅ 处理 HTTP 请求与响应
    ✅ 管理应用的生命周期

🔧 2. Tomcat vs 其他服务器

服务器类型典型用途
TomcatServlet 容器运行 JavaWeb 应用(中小项目)
Nginx静态服务器处理静态资源(图片 / HTML)
Apache全能服务器混合静态 + 动态内容
WildFly完整 JavaEE 容器企业级 JavaEE 应用

四、Tomcat 安装与配置(20 分钟)

🔨 1. 安装步骤(以 Windows 为例)

  1. 下载:从 Apache Tomcat 官网 下载 zip 包(推荐 9.x 版本)
  2. 解压:解压到 C:\tomcat
  3. 配置环境变量
    • 新增 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

  1. 在 webapps 目录下创建 myapp 文件夹
  2. 新建 index.html
    <h1>Hello Tomcat!</h1>
    
  3. 访问 http://localhost:8080/myapp

🔧 案例 2:部署动态 Servlet

步骤 1:创建动态 Web 项目(IDEA)
  1. 新建项目 → 选择 Dynamic Web Project
  2. 勾选 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
  1. 在 IDEA 中配置 Tomcat 服务器
  2. 右键项目 → Add to Tomcat
  3. 启动 Tomcat,访问 http://localhost:8080/项目名/hello

七、Tomcat 核心配置进阶

🔧 案例 3:配置虚拟主机

  1. 编辑 conf/server.xml,添加:
    <Host name="myapp.local"  appBase="webapps/myapp" />
    
  2. 修改 C:\Windows\System32\drivers\etc\hosts,添加:
    127.0.0.1  myapp.local
    
  3. 访问 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 页面

任务

  1. 在 webapps 目录下创建 jspdemo 文件夹
  2. 新建 time.jsp,显示当前时间:
    <%@ page language="java" %>
    当前时间:<%= new java.util.Date() %>
    

练习 2:修改 Tomcat 端口

任务

  1. 将 Tomcat 端口改为 8088
  2. 验证访问 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:部署个人简历网站

要求

  1. 用 HTML/CSS 制作静态简历
  2. 部署到 Tomcat,通过 http://localhost:8080/resume 访问

必做 2:分析 Tomcat 日志

任务

  1. 故意编写一个会报错的 Servlet
  2. 查看 logs/catalina.out 日志,分析错误原因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值