从零开始了解 Java Web 应用的构建与运行方式
作为一名 Spring Boot 开发者,在日常工作中我们通常接触不到 Tomcat 的底层配置。然而,为了更好地理解 Spring Boot 内部是如何工作的,我决定从最基础的 Java Web 应用入手,手动构建并部署一个简单的项目,最终在 IntelliJ IDEA 中集成 Tomcat 进行运行调试。
🧱 一、项目结构设计
首先,我们创建一个简单的 Java Web 项目结构如下:
MyWebApp/
├── src/ # 存放 Java 源代码文件
│ └── com/example/HelloServlet.java
└── WebContent/ # 存放 Web 资源文件
├── index.jsp
└── WEB-INF/
├── web.xml # Web 应用的配置文件
└── lib/ # 第三方 jar 文件(如 servlet-api)
💻 二、编写 Servlet 和 JSP 页面
HelloServlet.java
package com.example;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello from Servlet!</h1>");
}
}
index.jsp
<!DOCTYPE html>
<html>
<head>
<title>Welcome Page</title>
</head>
<body>
<h1>Welcome to MyWebApp!</h1>
<p><a href="hello">Click here to see the servlet output</a></p>
</body>
</html>
web.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">
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<!-- 默认欢迎页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
⚙️ 三、手动编译与打包部署
- 编译 Java 源码
进入项目根目录执行以下命令进行编译:
javac -cp ".\WebContent\WEB-INF\lib\javax.servlet-api-4.0.1.jar" \ -d WebContent/WEB-INF/classes src/com/example/HelloServlet.java
- 打 WAR 包
jar -cvf MyWebApp.war -C WebContent .
- 部署到 Tomcat
将生成的 MyWebApp.war 放入 Tomcat 的 webapps 目录下,启动服务器即可访问http://localhost:8080/MyWebApp/
🧰 四、IDEA 中集成 Tomcat 运行 Web 项目
为了更高效地开发和调试,我们可以使用 IntelliJ IDEA 对上述项目进行配置,自动编译并集成 Tomcat 启动。
-
配置 Artifact
进入 File > Project Structure > Artifacts,点击 + 号添加一个 Web Application: Exploded 类型的应用,并指定正确的模块和部署目录
-
添加依赖库
将 servlet-api 添加为 Library,确保 IDEA 能识别接口类:
-
配置 Tomcat Server
进入 Run > Edit Configurations,添加一个新的 Tomcat Server > Local 配置:
点击 Configure 设置本地 Tomcat 安装路径。
在 Deployment 标签下添加当前项目的 Artifact。
-
运行项目
点击 Run 按钮启动 Tomcat,IDEA 会自动生成临时的 Tomcat 实例用于部署:
CATALINA_BASE: C:\Users\Hyman\AppData\Local\JetBrains\IntelliJIdea2024.1\tomcat\da3a7d24-f859-461b-9457-85f44e929f34
CATALINA_HOME: D:\hymanProject\apache-tomcat-9.0.105-windows-x64\apache-tomcat-9.0.105
服务启动前会先进行Build,
运行后的示例效果
📌 五、小结
通过以上步骤,我们完成了:
手动构建一个 Java Web 应用程序;
使用命令行编译和打包;
手动部署到 Tomcat;
在 IntelliJ IDEA 中配置自动化构建和集成 Tomcat 调试运行。
这不仅帮助我们理解了传统 Java Web 应用的工作原理,也为后续深入学习 Spring Boot 的底层机制打下了坚实的基础。