这是一个基于 Java Web 技术栈实现的简易在线聊天室应用。支持多用户实时聊天、私聊功能以及在线用户列表展示。
- 用户登录/登出:用户输入用户名即可登录,支持检测浏览器关闭自动登出(基于 Session 超时或显式注销)。
- 实时聊天:
- 群聊:发送消息给所有在线用户(All)。
- 私聊:选择特定在线用户发送私密消息。
- 在线用户列表:实时显示当前在线的用户,并标记当前用户。
- 系统消息:当用户加入或离开聊天室时,系统会自动广播通知。
- 消息记录:保存最近的聊天记录(内存中)。
- 后端:
- Java 21
- Jakarta Servlet 6.0
- JSP / JSTL
- Gson (用于 JSON 数据交互)
- Maven (项目构建管理)
- 前端:
- HTML5 / CSS3
- JavaScript (原生 ES6+)
- AJAX (Fetch API) 用于异步消息更新
src/main/java/com/example/web_zy4/
├── controller/ # Servlet 控制层,处理 HTTP 请求
│ ├── ChatroomServlet.java # 聊天室主页路由
│ ├── ChatUpdateServlet.java # 获取消息和在线用户的 API
│ ├── LoginServlet.java # 处理登录
│ ├── LogoutServlet.java # 处理登出
│ └── SendMessageServlet.java # 处理消息发送
├── entity/ # 实体类
│ ├── Message.java # 消息实体
│ └── User.java # 用户实体
├── filter/ # 过滤器
│ └── LoginFilter.java # 登录权限验证
├── listener/ # 监听器
│ └── OnlineUserListener.java # Session 监听
└── service/ # 业务逻辑层
├── MessageService.java # 消息管理业务
└── UserService.java # 用户管理业务
- JDK 21+
- Maven 3.6+
- 支持 Jakarta EE 10 的 Web 服务器 (如 Tomcat 10.1+, Jetty 12+)
-
克隆项目
git clone https://github.com/zitagiuder/USST-JavaWeb-zy4.git cd web_zy4 -
构建项目 使用 Maven 打包 WAR 文件:
mvn clean package
-
运行 将生成的
target/web_zy4-2.0-SNAPSHOT.war部署到 Tomcat 的webapps目录下,启动 Tomcat。 -
访问 打开浏览器访问:
http://localhost:8080/web_zy4-2.0-SNAPSHOT/
- 在登录页面输入用户名进入聊天室。
- 聊天室左侧显示在线用户列表。
- 在底部输入框输入消息,下拉菜单选择发送对象("All" 为群发,选择特定用户为私聊)。
- 点击发送或按回车键发送消息。
- 点击右上角“退出”按钮离开聊天室。