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

相关推荐
Unity官方开发者社区31 分钟前
《Cryptical Path》开发诀窍:像玩游戏一样开发一款类Rogue游戏
java·游戏·玩游戏
_星辰大海乀34 分钟前
表的设计、聚合函数
java·数据结构·数据库·sql·mysql·数据库开发
IT成长史43 分钟前
deepseek梳理java高级开发工程师微服务面试题-进阶版
java·spring cloud·微服务
zkmall1 小时前
Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?
java·开源·harmonyos
陌路物是人非1 小时前
uniapp取消浏览自动填充
java·服务器·uni-app
獨枭1 小时前
使用 163 邮箱实现 Spring Boot 邮箱验证码登录
java·spring boot·后端
伍六星1 小时前
maven和npm区别是什么
java·npm·maven
才知山高路远1 小时前
Java - Junit框架
java·junit·log4j
维基框架1 小时前
Spring Boot 封装 MinIO 工具
java·spring boot·后端
秋野酱1 小时前
基于javaweb的SpringBoot酒店管理系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端