当前位置: 首页 > news >正文

Jakarta EE 实验 — Web 聊天室(过滤器、监听器版)

Jakarta EE 实验  — Web 聊天室(过滤器、监听器版)

       摘要:本实验基于Jakarta EE框架,使用IntelliJ IDEA 2025.2创建项目,实现一个简易的Web聊天室系统,重点强调Servlet Filter和Listener的应用。实验严格遵循您提供的目的、要求和关键实现点。

注意:

  • 本实验假设您已安装IntelliJ IDEA 2025.2、JDK 17+(推荐)和Maven(IDEA内置支持)。我们将使用Tomcat作为服务器(IDEA可内置配置)。
  • 项目使用Maven构建,依赖Jakarta EE API。聊天室是简易版本,使用ServletContext共享数据(在线用户列表、消息列表、在线会话数),数据是非持久化的(服务器重启后丢失)。
  • Filter和Listener的实现体现了请求链控制(Filter)和全局状态管理(Listener)。
  • 测试时,需要部署到Tomcat服务器运行。敏感词过滤假设替换"bad"和"evil"为"**"(可扩展)。
  • 代码解释将穿插在相关步骤中,以突出关键知识点(如Filter的工作原理、Listener的类型与作用、执行顺序等)。

一、实验步骤

步骤1: 创建Jakarta EE项目

  1. 打开IntelliJ IDEA 2025.2。
  2. 点击“File” > “New” > “Project”。
  3. 在左侧选择“Java Enterprise”(Jakarta EE框架)。
  4. 配置项目:
    • 项目名称:如“ChatRoomWithFiltersListeners”。
    • Location:选择目录。
    • Language:Java。
    • Build System:Maven(推荐,便于依赖管理)。
    • JDK:17+。
    • Application Server:添加Tomcat(如果未配置,下载Tomcat 10+,支持Jakarta EE)。
    • Specifications:勾选“Web Profile”(包括Servlet、JSP等)。
    • 点击“Create”。
  5. 项目结构将自动生成:
    • src/main/java:存放Java代码(Servlets、Filters、Listeners)。
    • src/main/webapp:存放Web资源(如JSP、web.xml)。
    • pom.xml:Maven配置文件。

步骤2: 配置pom.xml(添加Jakarta EE依赖)

更新pom.xml添加Jakarta EE API依赖(用于Servlet、Filter、Listener)和Tomcat插件。完整pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>simplechatroom</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><!-- Jakarta EE API (includes Servlet, JSP) --><dependency><groupId>jakarta.platform</groupId><artifactId>jakarta.jakartaee-api</artifactId><version>10.0.0</version><scope>provided</scope></dependency></dependencies><build><plugins><!-- 使用Cargo插件运行Tomcat 10+(替换原tomcat7插件) --><plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven3-plugin</artifactId><version>1.10.13</version> <!-- 最新稳定版,支持Tomcat 10 --><configuration><container><containerId>tomcat10x</containerId> <!-- 指定Tomcat 10+ --><type>installed</type> <!-- 使用本地安装的Tomcat --><home>D:\IDE\JAVA\apache-tomcat-10.1.44</home> <!-- 替换为您的Tomcat 10.1.44安装目录!例如:/Users/yourname/apache-tomcat-10.1.44 --></container><configuration><type>existing</type> <!-- 使用现有Tomcat安装 --><home>D:\IDE\JAVA\apache-tomcat-10.1.44</home> <!-- 同上,替换为您的路径 --></configuration><deployables><deployable><groupId>${project.groupId}</groupId><artifactId>${project.artifactId}</artifactId><type>war</type><properties><context>/</context> <!-- 部署到根路径 --></properties></deployable></deployables></configuration></plugin></plugins></build>
</project>

代码解释:

  • jakarta.jakartaee-api
http://www.dtcms.com/a/403573.html

相关文章:

  • 做js题目的网站知乎抖音代运营公司合法吗
  • MyBatis的最佳搭档(MyBatis-Plus)
  • 无用知识研究:和普通函数不同,返回类型也参与了模板函数的signature
  • 简单小结类与对象
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径分析与防控策略制定中的应用
  • 【C++】Template:深入理解特化与分离编译,破解编译难题
  • 【把15v方波转为±7.5v的方波】2022-12-21
  • 自己可以做一个网站吗自己怎么做直播网站吗
  • 嵌入式开发常见问题解决:Keil头文件路径与MCUXpresso外设配置错误
  • 从Android到iOS:启动监控实现的跨平台技术对比
  • 数据开放网站建设内容大连可以做网站的公司
  • lesson67:JavaScript事件绑定全解析:从基础到高级实践
  • 软件开发还是网站开发好惠州seo招聘
  • ARM芯片架构之CoreSight系统架构规范
  • 品牌网站建设黑白I狼J足球比赛直播网
  • 支持向量机深度解析:从数学原理到工程实践的完整指南——核技巧与凸优化视角下的模式识别革命
  • FPGA有什么作用和功能,主副关系是什么,跟通道有什么关系
  • 怎么做整蛊网站dw自己做的网站手机进不去
  • Udp 和 Tcp socket的一般编程套路(笔记)
  • C++_STL和数据结构《3》_仿函数作为STL中算法参数的用法、匿名函数、序列容器使用、关联容器使用、无关联容器使用、容器适配器使用
  • php基础-流程控制(第12天)
  • 怎样建设尧都水果网站网页游戏网站556pk游戏福利平台
  • logo做ppt模板下载网站简历制作官网
  • LeetCode:51.岛屿数量
  • English Around the House and Farm
  • 目标速度估计中MLE和CRLB运用(二)
  • 沈阳网站建设找思路做区位分析的地图网站
  • 莱芜做网站建设的公司seo交流qq群
  • MongoDB Ops Manager部署
  • DecDEC论文精读:动态误差补偿的低比特LLM推理优化方案