在 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 项目

  1. 打开 IntelliJ IDEA → FileNewProject
  2. 选择 Maven(左侧)
  3. 勾选 Create from archetype
  4. 在 archetype 列表中选择:
    • maven-archetype-webapp(这是标准的 Java Web 项目模板)
  5. 点击 Next
  6. 填写 GroupId、ArtifactId(例如):
    • GroupId: com.example
    • ArtifactId: mywebapp
  7. 点击 Finish
⚠️ 第一次创建可能较慢(需下载 archetype)

第二步:完善项目结构(手动补充缺失目录)

默认生成的项目可能缺少 Java 源码目录和测试目录:

  1. 在 src/main 下右键 → New → Directory → 输入 java(作为 Java 源码目录)
  2. (可选)同样创建 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 调试运行

  1. 点击 Configure...,指定你的 Tomcat 安装目录

点击左上角 + → 选择 Tomcat Server → Local

如果没有 Tomcat 选项,请确认你使用的是 Ultimate 版

点击右上角 → Edit Configurations...

  1. 在 Deployment 标签页:
    • 点击 + → 选择 Artifact
    • 选择 mywebapp:war exploded(推荐使用 exploded 方便热部署)
    • Application context 可设为 / 或 /mywebapp
  2. 回到 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插件运行 

参考vscode里的配置https://blog.ZEEKLOG.net/chxii/article/details/154356950?sharetype=blogdetail&sharerId=154356950&sharerefer=PC&sharesource=chxii&spm=1011.2480.3001.8118

补充

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,老项目尽早规划迁移

Read more

阿里出了个 AI JetBrains 编程插件 Qoder,使用了一周,值得上车

阿里出了个 AI JetBrains 编程插件 Qoder,使用了一周,值得上车

上周在群里看到有人说阿里出了个叫 Qoder 的 AI 编程工具,说是直接支持 JetBrains 全系 IDE,不用再装 Cursor 切来切去了。我平时写后端用的就是 IntelliJ IDEA,当时就去下了一个试试。用了一周,把能测的功能基本过了一遍,这篇文章把我的真实情况写出来,顺便把安装怎么做也说清楚。 — Qoder 是什么,和通义灵码有什么关系 先把这个问题说清楚,因为很多人第一反应是:阿里不是已经有通义灵码了吗,又出一个? 这两个确实都是阿里做的,但不是一回事。通义灵码是早期的阿里 AI 编程工具,定位是代码补全和问答助手,功能相对基础;Qoder 是 2025 年 8 月 22 日对外正式发布的新产品,定位是"Agentic 编码平台",面向海外开发者,走的是另一条路线。 官方的说法是,

OpenClaw 技术指南:从入门到精通 2026 年最火开源 AI 助手全攻略 上篇

OpenClaw 技术指南:从入门到精通 2026 年最火开源 AI 助手全攻略 上篇

基于 OpenClaw 2026.3.2 源码深度解析,2026 年 3 月最新版 目录 1. 第一章:认识 OpenClaw 2. 第二章:安装部署 3. 第三章:基础配置 4. 第四章:工作区与记忆系统 5. 第五章:AI 模型配置 第一章:认识 OpenClaw 1.1 什么是 OpenClaw? OpenClaw 是一个自托管、多通道 AI 网关,由 Peter Steinberger(PSPDFKit 创始人)开发。它能将你熟悉的聊天工具(WhatsApp、Telegram、飞书、

零基础学AI大模型之大模型私有化部署全指南

零基础学AI大模型之大模型私有化部署全指南

大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注实战代码系列最新文章😉C++实现图书管理系统(Qt C++ GUI界面版)SpringBoot实战系列🐷【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案分库分表分库分表之实战-sharding-JDBC分库分表执行流程原理剖析消息队列深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)AI大模型零基础学AI大模型之AI大模型常见概念 前情摘要: 1、零基础学AI大模型之读懂AI大模型 2、零基础学AI大模型之从0到1调用大模型API 3、零基础学AI大模型之SpringAI 4、零基础学AI大模型之AI大模型常见概念 本文章目录 * 零基础学AI大模型之大模型私有化部署全指南:方式、硬件配置与Ollama实操 * 一、开源大模型私有化部署:2种核心方式对比 * 1.1 源码部署:技术门槛高,灵活度拉满 * 主流工具与适用场景 * 关键特点 * 1.2 应用部署:低门槛快速落地,小白友好

OpenClaw - Day 5 用 Skills 给你的 AI 装上一整箱工具:OpenClaw 技能系统深度实践指南

OpenClaw - Day 5 用 Skills 给你的 AI 装上一整箱工具:OpenClaw 技能系统深度实践指南

文章目录 * 一、从大模型到“能干活的助手”:为什么需要 Skills? * 二、Skills 系统到底是什么?从文件结构到运行机制 * 1. Skills 就是 AI 的 App Store * 2. Skills 的核心思想:脑子够用,缺的是工具 * 三、ClawdHub 与技能生态:给助手逛逛“应用商店” * 1. 社区维护的技能市场 * 2. 另一种浏览方式:GitHub 清单 * 四、从 0 到 1:安装你的第一个 Skill * 1. 方式一:从 ClawHub 一键安装(推荐) * 2. 方式二:手动 git