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/classes 和 WEB-INF/lib 的变化,但默认不自动重载Java类(需配置reloadable="true"或使用JRebel)。

IDEA中的配置:

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

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

相关推荐
java1234_小锋2 小时前
【技术专题】CSS3 网页技术 - CSS3 单位、颜色、字体与文本
前端·css·css3
biaov2 小时前
Jenkins + Docker 搭建前端 CI:前端一键打包部署
前端·docker·jenkins
rich_Chan.2 小时前
阿里云百炼联网搜索教程:web_search 工具开启方法、web_extractor 网页抓取与 json 检索轨迹
前端·阿里云·json
瓦瓦gogo3 小时前
实习中接触前端开发后,我开始了解 React
前端·react.js·前端框架
梦曦i3 小时前
uni-app x 新组件库v0.1.0发布,多端统一开发
前端·ui·uni-app x
careathers3 小时前
【数据结构】基于比较的排序算法 - 插入排序
java·数据结构·排序算法
Dovis(誓平步青云)3 小时前
切换语言后按钮被截断,本地化审计怎样发现长度风险
开发语言·前端·javascript·人工智能·机器学习·华为·harmonyos
CappuccinoRose3 小时前
拖拽交互体系
前端·javascript·css·html·交互·1024程序员节
开开心心就好3 小时前
免安装PDF盖章工具,透明度和位置可调
运维·服务器·前端·javascript·pdf·ocr·1024程序员节
风骏时光牛马3 小时前
AI服务线上推理异常故障
前端