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

相关推荐
sheji526121 分钟前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
毕设源码-邱学长22 分钟前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言
摇滚侠37 分钟前
Java项目教程《尚庭公寓》java项目从开发到部署,技术储备,MybatisPlus、MybatisX
java·开发语言
€8111 小时前
Java入门级教程24——Vert.x的学习
java·开发语言·学习·thymeleaf·数据库操作·vert.x的路由处理机制·datadex实战
Mr_star_galaxy1 小时前
【JAVA】经典图书管理系统的实现
java
昊坤说不出的梦1 小时前
【实战】监控上下文切换及其优化方案
java·后端
今天_也很困2 小时前
LeetCode热题100-560. 和为 K 的子数组
java·算法·leetcode
在繁华处2 小时前
线程进阶: 无人机自动防空平台开发教程V2
java·无人机
A懿轩A2 小时前
【Java 基础编程】Java 变量与八大基本数据类型详解:从声明到类型转换,零基础也能看懂
java·开发语言·python
m0_740043732 小时前
【无标题】
java·spring boot·spring·spring cloud·微服务