在 IntelliJ IDEA 中创建一个包含 JSP 和 Servlet6.0 的 Maven Web 项目,并配置 Tomcat 进行调试
前提条件: 配置Maven

在设置中,选择自己下载的Maven文件.并配置上.
maven下载和设置可以参考https://chxii.blog.ZEEKLOG.net/article/details/148175538?spm=1011.2415.3001.5331
第一步:创建 Maven Web 项目
- 打开 IntelliJ IDEA →
File→New→Project - 选择 Maven(左侧)
- 勾选 Create from archetype
- 在 archetype 列表中选择:
maven-archetype-webapp(这是标准的 Java Web 项目模板)
- 点击
Next - 填写 GroupId、ArtifactId(例如):
- GroupId:
com.example - ArtifactId:
mywebapp
- GroupId:
- 点击
Finish
⚠️ 第一次创建可能较慢(需下载 archetype)

第二步:完善项目结构(手动补充缺失目录)
默认生成的项目可能缺少 Java 源码目录和测试目录:
- 在
src/main下右键 →New→Directory→ 输入java(作为 Java 源码目录) - (可选)同样创建
src/test/java并标记为Test Sources Root
右键 java 目录 → Mark Directory as → Sources Root

最终结构应类似:
mywebapp/ ├── src/ │ ├── main/ │ │ ├── java/ ← Java 源码(Servlet) │ │ ├── resources/ │ │ └── webapp/ ← JSP、HTML、WEB-INF │ │ ├── WEB-INF/ │ │ │ └── web.xml │ │ └── index.jsp └── pom.xml看下项目结构

确保xml文件位置 和 webapp目录位置正确

第三步:配置 pom.xml
添加 Servlet API 依赖(注意:provided,因为 Tomcat 已提供):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>mywebapp</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- Servlet API (provided by Tomcat) --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>mywebapp</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> </plugins> </build> </project>第四步:编写一个简单 Servlet 和 JSP
1. 创建 Servlet(在 src/main/java/com/example/ServletDemo1.java)
package com.example; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class ServletDemo1 extends jakarta.servlet.http.HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("Hello World"); } } 2. 修改 webapp/index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Home</title></head> <body> <h1>Welcome to My Web App!</h1> </body> </html>注意:如果不用注解(@WebServlet),需在web.xml中配置 servlet 映射。

3. 修改web.xml
在web.xml 里,修改成servlet6.0的模版
并且配置上servlet访问路径
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0" metadata-complete="false"> <!-- 示例:注册一个 Servlet --> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.ServletDemo1</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <!-- 可选:设置欢迎页面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 
第五步:配置 Tomcat 调试运行
- 点击
Configure...,指定你的 Tomcat 安装目录
点击左上角 + → 选择 Tomcat Server → Local
如果没有 Tomcat 选项,请确认你使用的是 Ultimate 版
点击右上角 → Edit Configurations...


- 在 Deployment 标签页:
- 点击
+→ 选择 Artifact - 选择
mywebapp:war exploded(推荐使用 exploded 方便热部署) - Application context 可设为
/或/mywebapp
- 点击
- 回到 Server 标签页:
- HTTP port 默认 8080(可改)
- JRE 选择项目对应的 JDK
点击 OK


第六步:启动并调试
- 点击 ▶️ 运行按钮(或 Debug 按钮)
- IDEA 会自动编译、打包、部署到 Tomcat
- 浏览器访问:
http://localhost:8080/→ 显示 index.jsp ( Welcome to My Web App! )http://localhost:8080/hello→ 显示 ( hello world )
✅ 你可以在 ServletDemo1中打 断点,点击 Debug 模式启动,即可调试!
使用maven插件运行
补充
Java EE 原由 Oracle 主导,现移交 Eclipse Foundation 管理,并更名为 Jakarta EE。为避免商标问题并体现社区主导,强制更改了命名空间。
以下是关键时间节点:
📅 2017 年 8 月
- Oracle 宣布计划将 Java EE 移交给开源社区。
- Oracle 表示希望找到一个中立的、成熟的开源基金会来接管 Java EE,以加速其创新和开放治理。
📅 2017 年 9 月
- Oracle 正式提名 Eclipse Foundation 作为 Java EE 的新归属机构。
- IBM、Red Hat 等主要 Java 企业也公开支持这一决定。
📅 2017 年 10 月 24 日
- Oracle 官方正式宣布:将 Java EE 及其参考实现 GlassFish 移交给 Eclipse Foundation。
- 同时明确:由于商标限制,不能继续使用 “Java” 品牌,因此需要更名。
📅 2018 年 3 月
- Eclipse 基金会发起命名投票,“Jakarta EE” 以 64.4% 的得票率胜出。
- Java EE 正式更名为 Jakarta EE。
📅 2018 年 5 月
- 项目在 Eclipse 基金会下正式启动,包括:
- Eclipse Enterprise for Java (EE4J) 项目
- GlassFish 更名为 Eclipse GlassFish
- 所有规范逐步迁移到
jakarta.*命名空间
📅 2019 年 9 月
- Jakarta EE 8 发布 —— 这是第一个由 Eclipse 基金会发布的版本,API 与 Java EE 8 完全兼容,仅变更了项目归属和流程,包名仍为
javax.*。
📅 2021 年 5 月
- Jakarta EE 9 发布 —— 包名正式从
javax.*改为jakarta.*,标志着技术栈的彻底迁移。
拥抱 Java 生态的未来方向
- Jakarta EE 是 Java 企业级开发的官方继承者。
- Spring Boot 3(2022 年底发布)已全面转向 Jakarta EE 9+,要求使用
jakarta.*包。 - 未来的 Java 框架、工具链和云原生平台(如 Quarkus、Helidon)都基于 Jakarta EE 构建。
💡 如果你计划使用 Spring Boot 3+、JDK 21+ 长期支持版本,就必须迁移到 jakarta.*。总结:为何推荐?
| 原因 | 说明 |
|---|---|
| ✅ 兼容性 | 支持 Tomcat 10+、Spring Boot 3+ 等现代技术栈 |
| ✅ 安全性 | 获得持续维护和漏洞修复 |
| ✅ 未来就绪 | 对齐 Jakarta EE 和云原生发展方向 |
| ✅ 降低风险 | 避免被旧技术栈锁定,减少后期迁移成本 |
🔜 结论:除非你必须长期停留在 Tomcat 9 / Spring Boot 2.x 等旧环境,否则强烈建议新项目直接使用 jakarta.servlet,老项目尽早规划迁移。