Jakarta EE 实验 — Web 聊天室(JSP版)
Jakarta EE 实验 — Web 聊天室(JSP版)
摘要:本文将基于 IntelliJ IDEA 2025.2.2、Jakarta EE 架构(使用 Jakarta Servlet API)、JDK 21 和 Tomcat 10+ 服务器,提供详细的实验步骤、完整的代码、详细的代码解释以及测试过程。整个实现严格遵循实验要求:基于 Servlet 的简易聊天室,支持登录、发送消息、查看在线用户、退出;添加敏感词过滤、权限控制、消息限制;使用指定的 JSP 页面、过滤器和监听器;web.xml 配置过滤器顺序、监听器和欢迎页。
注意:
- 项目使用 Maven 构建,便于依赖管理。
- 全局数据(在线用户列表、消息列表、在线人数)存储在 ServletContext 中,实现应用级共享。
- 敏感词过滤:在 EncodingFilter 中处理 POST 请求的消息,简单替换示例敏感词(如 "badword" 替换为 "**")。您可扩展敏感词列表。
- 消息限制:通过 web.xml 的 context-param 设置 maxMessages 为 50。
- 代码风格:使用注解简化,但 web.xml 用于配置过滤器、监听器和欢迎页。
- 假设项目名为 "WebChatRoom"。如果不同,请调整。
实验目的
(假设与要求一致:通过实现聊天室,掌握 Jakarta EE 中的 Servlet、JSP、Filter、Listener 等技术,理解会话管理、过滤器链、监听器生命周期等。)
实验要求
(已由用户提供,此处不再重复。)
详细的实验步骤
以下是使用 IntelliJ IDEA 2025.2.2 创建和运行项目的完整步骤。
步骤 1: 创建 Jakarta EE 项目
- 打开 IntelliJ IDEA 2025.2.2。
- 点击 "File" > "New" > "Project"。
- 选择 "Jakarta EE",选中 "Web Application" 模板。
- 项目名称:输入 "WebChatRoom"。
- Location:选择保存路径(如 E:\Project\00.JakartaEE\WebChatRoom)。
- Language:Java。
- Build System:Maven。
- JDK:选择 JDK 21。
- Application Server:添加 Tomcat 10+(下载并配置路径)。
- 点击 "Create"。IntelliJ 会生成基本结构,包括 pom.xml、src/main/java、src/main/webapp/WEB-INF/web.xml。
步骤 2: 配置项目和依赖
- 编辑 pom.xml 添加 Jakarta EE 依赖:
<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>edu.uestc</groupId><artifactId>WebChatRoom</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>jakarta.platform</groupId><artifactId>jakarta.jakartaee-api</artifactId><version>10.0.0</version><scope>provided</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>21</source><target>21</target></configuration></plugin></plugins></build> </project>
- 配置 Tomcat:
- "Run" > "Edit Configurations" > 添加 "Tomcat Server" > "Local"。
- Deployment 标签:添加 Artifact "WebChatRoom:war exploded"。
- Application context:设为 "/WebChatRoom"(或 "/")。
- 保存。
步骤 3: 创建包和文件
- 在 src/main/java 创建包:edu.uestc.webchatroomfilter.listener(监听器)、edu.uestc.webchatroomfilter.filter(过滤器)。
- 在 src/main/webapp 创建 JSP 文件:login.jsp、chat.jsp、logout.jsp。
- 编辑 web.xml(详见代码部分)。
步骤 4: 编写代码
复制以下完整代码到相应文件。
步骤 5: 运行和部署
- 运行 Maven "clean install"(Maven 工具窗口)。
- 点击 Run 按钮启动 Tomcat。</