在 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

ollama v0.17.0 更新:OpenClaw 一键自动安装、Web 搜索支持、全新 Context 动态分配与 Tokenizer 性能大幅优化!

2026 年 2 月 24 日,Ollama 发布了全新的 v0.17.0 版本。这一次更新可谓意义重大,不仅引入了全新的 OpenClaw 自动化集成与安装能力,还针对核心 Tokenizer 性能、VRAM 动态上下文分配、系统配置迁移逻辑、Web 搜索插件 等功能进行了深层次优化。这是一次面向 AI 模型本地化与云端融合、性能与易用性双提升的版本升级。 本文将全面解析 Ollama v0.17.0 的更新亮点、底层代码变化及其背后的设计逻辑,帮助开发者和高级用户快速理解这一版本的重要意义。 一、版本概览 版本号: v0.17.0 发布日期: 2026 年 2 月 24 日

By Ne0inhk
彻底弄懂Web Storage与Cookie:从机制到应用的全方位对比

彻底弄懂Web Storage与Cookie:从机制到应用的全方位对比

彻底弄懂Web Storage与Cookie:从机制到应用的全方位对比 * 引言 * 1. 什么是Cookie? * Cookie 的核心特性: * Cookie 流程图 * 2. 什么是Web Storage? * Web Storage 流程图 * 3. 核心区别深度解析(对标选项逐一解读) * a. 存储容量 * b. 网络流量(带宽浪费) * c. 作用域与跨域 * d. API 易用性 * e. 设计初衷 * f. 历史兼容与封装 * 4. 总结对比表 * 5. 应用场景建议 * 什么时候选 Cookie? * 什么时候选 Web Storage? * 6. 结语 🌺The Begin🌺点点关注,收藏不迷路🌺 引言 在前端开发中,

By Ne0inhk
前端打工人速通:用JavaScript玩转GIS地图开发(附避坑指南+实战技巧)

前端打工人速通:用JavaScript玩转GIS地图开发(附避坑指南+实战技巧)

前端打工人速通:用JavaScript玩转GIS地图开发(附避坑指南+实战技巧) * 前端打工人速通:用JavaScript玩转GIS地图开发(附避坑指南+实战技巧) * 地图这玩意儿,早就不是大厂的专利了 * 选库如选对象,合适最重要 * 坐标系:前端GIS的终极噩梦 * GeoJSON:地图界的JSON,但别乱用 * 那些常见的地图需求,到底怎么实现? * 性能翻车现场:从3帧到60帧的救赎 * 调试地图:一场玄学的修行 * 骚操作:让老板直呼高级的玩法 * 写在最后:地图开发不是体力活,是技术活 前端打工人速通:用JavaScript玩转GIS地图开发(附避坑指南+实战技巧) 说实话,我第一次接到地图需求的时候,内心是崩溃的。老板拍着我的肩膀说:"小王啊,这个需求很简单,就是在页面上加个地图,然后显示几个标记点。"我当时天真地以为,这不就是引入个<script>标签,调个API的事儿吗?结果三天后,

By Ne0inhk
五种常用的web加密算法

五种常用的web加密算法

文章目录 * 五种常用Web加密算法实战及原理详解 * 1. AES (高级加密标准) * 原理详解 * 应用场景 * 实战代码(Node.js) * 2. RSA (非对称加密) * 原理详解 * 应用场景 * 实战代码(Node.js) * 3. SHA-256 (安全哈希算法) * 原理详解 * 应用场景 * 实战代码(浏览器环境) * 4. HMAC (基于哈希的消息认证码) * 原理详解 * 应用场景 * 实战代码(Node.js) * 5. PBKDF2 (基于密码的密钥派生函数) * 原理详解 * 应用场景 * 实战代码(Node.js) * 加密算法对比表 * 安全最佳实践 * 进阶主题 五种常用Web加密算法实战及原理详解 在现代Web开发中,数据安全至关重要。以下是五种最常用的Web加密算法,包括它们的原理、应用场景和实战代码示例。

By Ne0inhk