利用Java EE相关技术实现一个简单的Web聊天室系统

利用Java EE相关技术实现一个简单的Web聊天室系统

(1)编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息。

(2)通过请求指派来处理用户提交的登录信息,如果用户名为本小组成员的名字且密码为对应的学号时,跳转到LoginSuccess显示聊天界面(类似于QQ群聊天界面,可使用HTML中的frameset标签生成两个窗口,一个用来实现用户信息输入,另一个显示所有用户聊天记录的);否则跳转到LoginFail页面,提示用户重新登录(注:此页面要包含前面的登录界面)。

(3)在聊天室界面显示"信息输入"窗口和"聊天记录显示"窗口的内容;用户在"信息输入"窗口中键入聊天内容,点击"发送"按钮后,在"聊天记录显示"窗口中显示发送消息的用户名称和聊天内容(提示:可以利用Servlet 上下文保存聊天记录并将其显示在Textarea中。)

(4)在登录界面上实现记住用户名和密码的功能,使得当用户选择了此功能并成功登录后,在其下次登录时可以不用再输入用户名和密码即可登录(提示:此功能可通过Cookie来实现。)

(5)编写一个Listener程序来监听会话的创建和销毁事件,以此统计当前在线(登录)人数,并将其显示在聊天界面上。

(6)添加一个Filter来实现对未经过登录页面而直接访问聊天室的非法请求进行拦截。
系统要求

1.用户登录模块

登录界面输入用户的账号和密码,通过登录验证的用户即可进入聊天室进行聊天。

2.用户发言的模块

完成聊天的内容输入后,通过单击"发送"按钮,即可显示聊天的内容。

3.聊天内容显示模块

实时同步显示所有人的聊天内容

4.提示模块

显示当前聊天室登录账号名字和在线人数。
实现技术

①打开浏览器,进入网上聊天系统首页登录界面login.jsp。

②Main.java类获取login.jsp用户输入的用户名和密码,进行逻辑验证,验证成功则跳转到聊天界面welcome.jsp,否则跳转到登陆失败提示界面loginFail.jsp。

③统计当前在线人数通过调用OnlineListener类来实现。

④中间主体页面main.jsp页面实现用户在聊天输入框中输入消息,发送并显示在聊天消息显示框中功能。实现聊天功能通过调用InputInformation.java类来实现。

④记住密码自动填充功能:

根据表单中的记住密码是否勾选,有选择的将账号信息存到cookie中,在jsp中通过java脚本程序取出cookie程序中的账号信息,并填充至账号密码的输入框。

⑤在线人数监听功能:通过监听session,在登陆成功时,会将用户信息存入session,通过session的数量来判断在线人数。

⑥聊天功能:编写一个servlet程序,接收输入框中的信息,取出上下文中存聊天记录的列表List,并将接收的信息对象存到列表中。

⑦使用txt文本作为数据库,记录聊天记录。

整体介绍:网上聊天室由welcome、main、login、loginFail、header五个jsp文件和CodeFilter、InputInformation、Main、OlineListener四个文件组成。实现了可以进行自动保存用户名密码,判断用户名和密码是否匹配,用户可以信息输入也可以显示所有用户聊天记录,并能统计当前在线(登录)人数和能对系统所有的Servlet程序进行过滤的功能。

整体流程:首先打开浏览器,进入网上聊天系统首页登录界面login.jsp,通过输入用户名和密码,进行登录。之后Main.java类获取login.jsp用户输入的用户名和密码,进行验证,验证成功则跳转到聊天界面welcome.jsp,否则跳转到登陆失败界面loginFail.jsp。如果登录成功进入Welcome.jsp聊天界面,其中头部界面(header.jsp)显示当前登陆用户昵称和当前在线总人数(统计当前在线人数通过调用OnlineListener类来实现);中间主体页面main.jsp页面实现用户在聊天输入框中输入消息,发送并显示在聊天消息显示框中功能。

相关推荐
Rain的Java大神之路1 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
自动化监测Learner1 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
那个松鼠很眼熟w1 小时前
4.Spring-Ai入门案例
java·人工智能·spring
计算机毕设定制辅导-无忧学长1 小时前
《基于SpringBoot青年公寓出租管理系统的设计与实现》
java·vue.js·spring boot·青年公寓出租管理系统
泡海椒2 小时前
JQuick-Curl 二次开发:自定义解析器、扩展点开发指南,如何把框架能力真正变成团队资产
java·开发语言·okhttp·maven
青山木3 小时前
Hot 100 --- 数组中的第K个最大元素
java·数据结构·算法·排序算法
玛卡巴卡ldf3 小时前
【AICoding】笔试提示词设计思路
java·算法·ai编程
珍珠先生3 小时前
第10章 JDK 17 新特性:语法糖与新能力
java
吴声子夜歌4 小时前
ApacheCommons——commons-text(模板替换与文本算法)
java·开发语言·算法·apache
Haooog4 小时前
Agent 开发中的 Memory:State、短期记忆、长期记忆与 Memory Retrieval
java·agent·memory