Java Web 之 Tomcat 100问

Tomcat 是什么?

Tomcat 是一个开源的 Java Servlet 容器和 Web 容器

Tomcat 的主要功能有哪些?

运行和管理 Web 应用;处理 HTTP 请求。

如何安装 Tomcat ?

(以后有时间,整理为截图更好)

  1. 下载 Tomcat 安装包(Apache Tomcat 官网:https://tomcat.apache.org)。
  2. 解压到指定目录。
  3. 配置环境变量(如 CATALINA_HOME)。
  4. 启动 Tomcat:
    • Windows: 运行 bin/startup.bat
    • Linux/macOS: 运行 bin/startup.sh
    • 注意:启动tomcat时如果出现乱码,修改日志配置logging.properties文件中的参数java.logging.ConsoleHandler.encoding即可。
  5. 访问 http://localhost:8080 验证是否启动成功。
  6. 关闭Tomcat:运行shutdown.bat文件。

如何在 Tomcat 中部署 Web 应用?

示例:部署一个简单的 Web 应用

创建一个简单的 Servlet:

继承HttpServlet,并实现其中的doGet方法。

java 复制代码
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>Hello, Tomcat!</h1>");
        out.println("</body></html>");
    }
}

编译 Servlet 并将其放入 WEB-INF/classes 目录。

创建 web.xml 文件配置 Servlet:

xml 复制代码
<web-app>
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

将应用打包为 WAR 文件或直接复制到 Tomcat 的 webapps 目录。

启动 Tomcat 并访问 http://localhost:8080/your-app/hello

war 模式和 war exploded 模式有什么区别?

在Java Web开发中(特别是使用IDEA或Eclipse等IDE部署到Tomcat时),会遇到WAR模式WAR Exploded模式两种不同的部署方式。

WAR 模式(打包模式) WAR Exploded(展开模式)
热更新 不支持 支持
特点 将项目编译后打包成一个标准的 .war 文件(如 myapp.war),部署时服务器会自动解压到其工作目录(如Tomcat的 webapps 目录)。 直接将项目的编译结果以目录结构展开(未压缩),部署到服务器。
是否压缩文件 压缩(ZIP格式) 未压缩
部署速度 比WAR Exploded模式更快。 文件以目录形式存在,部署速度略慢于WAR模式。
调试便利性

建议:

  1. 开发阶段使用WAR Exploded模式
    • 使用 WAR Exploded,利用热更新提高开发效率。
    • 在IDEA中配置Tomcat时,选择 Deploy as exploded war
  2. 生产阶段使用WAR 模式
    • 使用 WAR模式 ,通过CI/CD工具生成 .war 文件后部署。

IDEA中,如何启动 Tomcat 热部署?

Tomcat的热部署机制

  • 对于Exploded模式,Tomcat会监控 WEB-INF/classesWEB-INF/lib 的变化,但默认不自动重载Java类(需配置reloadable="true"或使用JRebel)。

IDEA中的配置

html 复制代码
<!-- 在Tomcat的 context.xml 中 -->
<Context reloadable="true" path="/myapp"/>

开启后,Tomcat会检测变更并自动重启应用(影响性能,慎用于生产环境)。

相关推荐
极客密码3 小时前
感谢雷总!Mimo大模型价值¥659/月的 MAX 套餐,让我免费领到了!
前端·ai编程·claude
深念Y4 小时前
我明白为什么B站没法在浏览器开直播了——Windows Chrome推流踩坑全记录
前端·chrome·webrtc·浏览器·srs·直播·flv
zhangxingchao4 小时前
AI应用开发七:可以替代 RAG 的技术
前端·人工智能·后端
Sun@happy5 小时前
现代 Web 前端渗透——基础篇(1)
前端·web安全
Java面试题总结5 小时前
java高频面试题(2026最新)
java·开发语言·jvm·数据库·spring·缓存
希冀1235 小时前
【CSS学习第十一篇】
前端·css·学习
苦逼的猿宝5 小时前
学生心理咨询评估系统
java·毕业设计·springboot·计算机毕业设计
隔窗听雨眠5 小时前
doctype、charset、meta如何控制整个渲染流水线
java·服务器·前端
kyriewen5 小时前
写组件文档写到吐?我用AI自动生成Storybook,同事以后直接抄
前端·javascript·面试
excel5 小时前
🧠 Prisma 表名大写 vs SQL 导出小写问题深度解析(附踩坑与解决方案)
前端·后端