利用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页面实现用户在聊天输入框中输入消息,发送并显示在聊天消息显示框中功能。

相关推荐
xmjd msup20 分钟前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
952361 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.1 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-19431 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心12211 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px1 小时前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋
rleS IONS1 小时前
SpringBoot中自定义Starter
java·spring boot·后端
苍煜2 小时前
慢SQL优化实战教学
java·数据库·sql
AI进化营-智能译站2 小时前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
TeDi TIVE2 小时前
springboot和springframework版本依赖关系
java·spring boot·后端