基于 SSM 框架网路实时聊天系统的设计与实现
计算机科学技术学院 2015 级网络编程 马宁博 20151104708
指导教师 昭耐、史大鹏
摘要 本文提出了网路实时聊天系统的设计与实现,主要功能包含用户和管理员模块,用户模块包含用户的登录注册、用户申请聊天室、聊天室聊天以及一对一聊天,管理员包含聊天室的审批和管理以及用户的管理。这些模块的实现是基于 Java SSM 框架的网络实时聊天系统。主要采用了 Spring 框架、SpringMVC 技术、MyBatis 技术和 WebSocket 技术,这些技术使得客户端和服务器之间的数据交换变得更加简单。通过这些技术来完成本系统的设计与实现。
关键字 Java;WebSocket;SSM 框架;网络实时聊天 1 绪论
选题背景
随着互联网的不断发展,它已成为促进世界经济发展和社会进步以及信息传播的基础设施。中国的互联网发展也非常之迅猛,其中,网络通信已成为我们生活中不可或缺的一部分。 我们每天都打开手机,我们会查看微信或 QQ 等聊天工具的新消息。这早已在不知不觉中成为了我们的习惯。
课题设计的目的
从写信到微信,人类的通讯方式有了非常巨大的进步,写信的人越来越少使用微信的人越来越多,随着网络聊天工具的不断完善,功能实现了多样化,不难发现网络聊天已经不再是一个普通的聊天工具,更是一个蕴含着不同意义的工具。这也体现了网络实时聊天在其意义上的重要性功能上的高延展性。
课题设计研究内容
实时聊天是允许一对一或者一对多传递信息的服务,本次设计包含常用功能,包括账号的登陆注册,显示好友列表,修改个人信息等等,此文主要研究如何使用 WebSocket 技术在 Java SSM 框架下的应用,在 SSM 框架下方便我们将对象之间的依赖关系交给 Spring 控制,提高耦合性简化了开发,SpringMVC 使 Web 层的开发更加简洁也实现了与 Spring 的无缝衔接,以及方便对数据库的操作,更加重要的是能使 WebSocket 的特点与 SSM 框架的便捷结合一起。
一、系统设计分析
二、系统需求分析
网络聊天室是为了让人们的交流能更加便捷,满足人们之间多人交流与个人交流的需求。本设计完成的聊天系统包含基本聊天系统的功能。包括聊天室的多人在线聊天,好友之间的单独聊天,聊天室可以发送表情,可以进行好友的添加和好友列表的显示。
三、运行环境
四、系统运行环境
操作系统:Windows10
JDK:1.8.0_181-b13
MySQL:5.5.6
Tomcat:8.5.9
五、开发工具
Eclipse、Dreamweaver、Navicat
六、系统设计目标
该系统的具体任务就是设计一个网路实时聊天系统,该系统的具体功能有:
注册:注册用户,在数据库中添加用户的用户名、密码、性别和邮箱等。
登录:登录系统时验证用户名和密码是否正确。
个人信息:可以查看个人信息包括用户名、头像、出生日期等等。
添加好友:朋友请求可以通过用户名发送给其他用户,并且可以在对方同意时显示在双方的朋友列表中。
好友列表:显示已验证通过的好友。
聊天功能:用户包含聊天室的申请、一对一聊天以及多人的聊天室,管理员包含对审批聊天室和管理聊天室的功能。
修改信息:修改个人信息,包括头像上传,个人基本信息变更。
用户管理:管理员的一项独特功能,可以激活和注销用户。
七、系统操作流程
系统实际操作流程图如下:
八、系统设计
九、概要设计
十、功能结构设计
系统主要包含用户功能模块和管理员功能模块,其中管理员模块主要负责对用户的管理以及对聊天室的管理,的用户功能模块主要包含:1、用户注册;2、用户登录;3、用户信息修改;4、聊天功能;5、好友功能;6、退出登录;
十一、系统功能模块分析
十二、登录注册模块
用户进入注册页面,输入注册所需的信息包含用户名、密码、性别、邮箱和电话号,注册信息都添加到数据库中,注册信息成功后,通过用户名和密码即可登录系统。
十三、好友模块
用户登录成功后,可以选择用户名搜索添加好友,输入用户的用户名后发送添加请求,对方同意添加后可以显示在好友列表里。好友列表中可以显示所有已经添加的好友,也可以查看好友的信息以及删除好友,好友列表内容添加到数据库中。在好友列表中可以和好友进行 1 对 1 聊天。
十四、聊天室模块
用户登录成功后,选择聊天室功能,可以选择进入聊天室,也可以申请自己的聊天室。管理员可以对申请的聊天室进行审核,也可以对聊天室进行管理包括关闭聊天室和开启聊天室。
十五、个人信息模块
个人信息主要包括查看个人信息和编辑个人信息。 包括对个人用户名,性别,电话号码,电子邮件,头像,生日和密码的修改。
十六、用户管理模块
用户管理主要包含查看用户 id、用户名以及用户已申请、已激活、已停封和已驳回的房间数以及对用户进行注销和激活的操作。
十七、详细设计
十八、MVC 模式分析设计
MVC 编程模式称为模型视图控制器,是一种软件开发架构模式。Model(模型)是用于处理程序内部数据的程序的逻辑部分。 View(视图)是应用程序中用于显示所用数据的部分,一般视图是根据模型之中的数据创建的。 Controller 是用于与计算机交互的应用程序的一部分。 然后控制用户的输入,并且向模型发送数据。 这样做的方法是帮助管理更复杂和复杂的程序,以便您可以在不了解程序的业务逻辑的情况下理解视图设计[1]。让程序变得更加有层次也更加明确。
本系统的总体设计模式就采用 MVC 编程模式,不仅有利于别人对代码的查看也有利于自己编程过程时思路更加清晰,目的更加明确。以下是 MVC 模式的示例图。
十九、SSM 框架分析设计
SSM(Spring+SpringMVC+MyBatis)框架是由 Spring、MyBatis 和 SpringMVC 框架在一起整合而成的。一般在数据源较简单的 Web 项目中使用的框架[2]。
Spring 的功能就像在整个项目中加载 bean 的工厂一样。 Spring 的核心思想是 IoC 叫做控制反转,控制反转的意思即为不需要人们去一个一个的 new 对象, 而是把这些交给 Spring 框架帮你来完成这些功能。
SpringMVC 在项目中的功能主要是拦截用户请求。来自用户的一些请求用于通过 HandlerMapping 查找和匹配 Controller(对应请求执行的一些方法)。
MyBatis 是 Java 数据库连接的包装器,它使数据库的底层操作更加透明。 MyBatis 对数据库的操作都是在一个名为 sqlSessionFactory 的实例中执行的。 MyBatis 可以通过一些配置文件与每个实体类的 Mapper 文件相关联。 每次与数据库交互时,都会通过 sqlSessionFactory 获取 sqlSession 并执行 SQL 命令[3]。
二十、前端 JSP 页面分析设计
JSP 是 Oracle 开发的服务器端动态页面技术的组件规范。 是用来解决 servlet 中有许多网页链接困难的问题。 JSP 作为一种简化 Servlet 开发的技术,实质上 JSP 最后还是要转变为 Servlet 才能够运行,只不过在这个转变过程交给 Servlet 容器来完成。
当 JSP 页面请求通过 Web 端服务器接收和访问,Web 端执行程序,然后把结果返回给用户。
WebSocket 技术分析设计
WebSocket 技术建立在 WebSocket 通信协议的基础之上。您可以让服务端将数据发送到客户端本身,并且只在浏览器和服务器中使用握手。两者就能建立一个持久的联接,而且能够双向数据的传输,因为在两者之间形成了一个“快速通道”,这样能够减少控制开销,有更好的实时性[4]。
数据库设计
数据库表结构设计
本系统应包含四张表,分别为用户表,好友表、聊天室表和用户消息表。
用户表: 用户表主要记录系统中所有注册用户的信息,包括用户名,用户 ID,性别,手机号码,邮箱地址和密码等个人信息。 在登录功能中,邮箱和密码必须一致才能登录账户,忘记密码也需要通过邮箱验证才可修改密码, 在其他功能中也会用到这些个人信息,该表的设计如下:
用户信息表
字段名 | 字段类型 | 字段选项 | 字段说明 |
---|---|---|---|
Id | int | max_length=40 | 用户 ID |
userName | varchar | max_length=50 | 用户名 |
Gender | varchar | max_length=10 | 用户性别 |
BirthDay | varchar | max_length=20 | 用户生日 |
Phone | Int | max_length=20 | 手机号 |
varchar | max_length=50 | 电子邮箱 | |
userPass | varchar | max_length=50 | 用户密码 |
image | varchar | max_length=255 | 用户头像 |
好友表:关系表主要记录了本系统中所有添加好友成功后,可以显示的好友列表,当用户向另一位用户发送添加好友请求后,乙方用户同意后,用户关系表便会添加一条好友关系,二人便可成为好友,并在二人的好友列表中显示添加的好友。
用户关系表
字段名 | 字段类型 | 字段选项 | 字段说明 |
---|---|---|---|
friend_1 | varchar | max_length=50 | 好友添加者 |
friend_2 | varchar | max_length=50 | 好友接收者 |
f1_allow | varchar | max_length=2 | 好友状态 |
f2_allow | varchar | max_length=50 | 接收时间 |
聊天室表:关系表主要记录了本系统中所有聊天室的信息,可以显示的聊天室 id、聊天室名字、聊天室状态和序列排序。
用户关系表
字段名 | 字段类型 | 字段选项 | 字段说明 |
---|---|---|---|
Id | Int | max_length=11 | 聊天室 id |
Name | varchar | max_length=255 | 聊天室名字 |
Status | varchar | max_length=5 | 聊天室状态 |
Ord | int | max_length=11 | 排序 |
好友消息表:好友消息表主要记录了消息 id、接收消息用户的用户名、发送的消息、用户的头像、发送消息的用户用户名和消息状态
用户关系表
字段名 | 字段类型 | 字段选项 | 字段说明 |
---|---|---|---|
Id | Int | max_length=11 | 消息 id |
Username | varchar | max_length=50 | 接收者用户名 |
Message | varchar | max_length=255 | 发送的消息 |
Img | varchar | max_length=255 | 发送者头像 |
From | varchar | max_length=50 | 消息发送者 |
Isread | Varchar | max_length=5 | 消息状态 |
逻辑设计
根据数据库的需求分析,可以返回数据实体:用户和消息,每个实体都具有现实世界的抽象存在,并且实体之间存在某种数据关系。 下面是本系统的 E- R 图以及各实体的 E- R 图:
系统总体 E-R 图
系统实现
本系统主要包含用户功能和管理功能两大模块,以下详细介绍每个模块的具体实现内容。
用户功能
用户功能主要包含用户的登录注册、好友功能、添加好友功能、聊天室、申请聊天室、个人信息、修改密码和退出登录功能。
登录注册界面实现
在我们登录系统之前,我们需要注册一个帐户并填写必要的个人信息,例如用户名,电子邮件地址,手机号码和密码。 将其存入后台的数据库中,之后通过邮箱和密码可以实现登录功能。 此处必填的内容是用户名、邮箱和密码,用户名是为了别人能够识别你,密码作为个人信息安全的保障。
登录时,需要验证你输入的邮箱和密码,做法是将你现在输入的邮箱和密码与之前注册时存在数据库的邮箱和密码进行比对,如果比对一致即认为时本人登录可以登录系统,不一致无法登录系统。
注册:
代码如下:
登录:
代码如下:
好友功能界面实现
好友功能是为了方便我们可以及时与他人聊天。 我们可以通过对方的用户名的进行查找, 出现重复的用户名时可以查看对方的个人信息如邮箱和手机号等个人信息来找到哪位是你想要添加的人, 当你发送出好友请求时,等待对方接收,如果对方也同意后双方便成为好友,方便以后及时交流, 此时的好友关联存入数据库中。 点击朋友列表即可查看所有朋友。
好友列表:
代码如下:
好友信息:
代码如下:
添加好友功能实现
在菜单中可以根据好友的用户名添加新的好友。 输入用户名并发送添加请求。
代码如下:
聊天室界面实现
聊天室功能可以让用户自己选择进入聊天室,然后可以在聊天室中进行聊天。在菜单中选择聊天室功能,进入之后选择一个聊天室进入,便可以进行聊天。
聊天室列表:
代码如下:
聊天室界面:
代码如下:
表情发送:
代码如下:
申请聊天室界面实现
申请聊天室可以进行聊天室的申请。在菜单中选择申请聊天室,然后输入想要申请聊天室的名字,点击申请之后会进入审核状态,待管理员审核通过后,在聊天室列表中便可以显示出通过申请的聊天室,如果不通过也会在申请聊天室的列表中显示出不通过原因。
代码如下:
个人信息界面实现
在个人信息的列表中可以查看自己在注册时填写的个人信息,当个人信息有改变时,也可以编辑个人信息,包含修改个人头像、用户名、性别、生日、手机号和邮箱。
代码如下:
修改密码界面实现
进入修改密码界面,然后输入原来的密码、新密码和重复新密码,新密码长度必须为 6-12 位,当输入正确之后可以完成修改密码。
代码如下:
退出登录界面实现
点击退出登录后,返回登录界面。
管理员功能
管理员功能能主要包含聊天室的管理、审批聊天室、修改密码和退出登录功能。
聊天室管理界面实现
在聊天室管理中,管理员可以对聊天室斤进行管理,包含违法关停和开启房间,并可以显示房间 id、房间名称、房间的拥有者和聊天室状态,未审核通过的会显示待审核的状态,必须要先审批聊天室。
代码如下:
审批聊天室界面实现
在审批聊天室中,管理员能够审批用户申请的聊天室,显示房间 id、房间名称、房间的拥有者和聊天室状态,并可以对其进行通过和驳回的操作。
修改密码界面实现
进入修改密码界面,然后输入原来的密码、新密码和重复新密码,新密码长度必须为 6-12 位,当输入正确之后可以完成修改密码。
用户管理界面实现
进入用户管理界面,该界面可以显示用户的 ID,用户名,已应用和激活的房间数、已停封的房间数、已驳回的房间数以及注销用户和激活用户的操作。
代码如下:
退出登录面实现
点击退出登录后,返回登录界面。
系统测试
测试目的
本次测试针对于这个系统可能存在问题的地方进行测试,确保系统能够正常运行。
测试内容
登录注册功能测试
注册测试:
登录测试:
登录成功:
用户聊天室功能测试
聊天室列表测试:
聊天测试:
用户申请聊天室测试
输入申请房间的名称:
点击申请进入待审核状态:
申请成功:
用户修改信息测试
原来的用户信息:
修改后的用户信息:
管理员审批聊天室测试
通过申请的聊天室:
在用户列表中可以显示:
管理员聊天室管理测试
进入聊天室管理,选择一个聊天室,查看状态正常:
将其关停,无法找到该聊天室:
管理员用户管理测试
选择列表中的用户将其注销:
此账户无法登录:
总结
项目的完成来之不易,通过这次的项目开发让我深刻的体会了程序员的一次完整开发过程,从选定题目到查找资料在到编写程序直到最后完成论文和毕业设计,经过一次次的修改问题,在查询网络以及老师同学的帮助下最后将程序完成,在这学习过程中,我学到了很多,不仅仅是专业上的知识还有学无止境的道理,我们现在所学的还远远不够,还有许多需要我们学习的东西。
致谢
论文的完成离不开良师的指导,在这里特别感谢昭耐老师的耐心指导,也感谢在这一路上帮助过我的各位老师。在这毕业之际,谢谢老师们在这四年之中教给我们的专业知识和对我们生活上的关心。在这里向您们致以最真诚的感谢。
参考文献
明日科技. Java Web 从入门到精通.北京:清华大学出版社,2012.9
朱要光. Spring MVC+MyBatis 开发从入门到项目实战.北京:电子工业出版社,2018.1
郝佳.Spring 源码深度解析.北京:人民邮电出版社,2019.1
(美)科沃德(Coward, D.) 著.Java WebSocket 编程 开发、部署和保护动态 Web 应用.北京:清华大学出版社,2015.8
Design and Implementation of Network Real-time Chat System Based on SSM Framework Computer and Information Engineering College 2015MaNingbo 20151104708 Directed by ZhaoNai.ShiDapeng Lecturer Abstract This paper proposes the design and implementation of the network real-time chat system, the main functions include user and administrator module, user module includes the user login registration, user application chat room, chat room chat and one-on-one chat, administrator includes the approval and management of chat room and user management. The implementation of these modules is based on Java SSM framework network real-time chat system. Spring framework, SpringMVC technology, MyBatis technology and WebSocket technology are mainly adopted, which make the data exchange between the client and the server easier. Through these technologies to complete the design and implementation of the system. Keyword Java; WebSocket; SSM Framework; Network Real-time Chat
参考文献
- 企业内部即时通讯系统的设计与实现(内蒙古大学·王慧平)
- 面向云加密系统的分布式IM服务设计与实现(华中科技大学·陈佳文)
- 基于WebLogic中间件的即时通讯软件的设计与实现(电子科技大学·李卓林)
- 基于分布式的众信即时通讯软件后台系统设计与实现(东华大学·王明月)
- SSM组播模型研究及基于ns-2的仿真实验(合肥工业大学·程小刚)
- J2EE轻量级框架构建即时通讯系统(华中科技大学·谢军)
- 基于WebLogic中间件的即时通讯软件的设计与实现(电子科技大学·李卓林)
- 基于Jabber的通信分布式中心(吉林大学·赵宸)
- 基于Jabber的通信分布式中心(吉林大学·赵宸)
- 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
- 面向企业管理平台会话系统后端的设计与实现(南京大学·顾必成)
- 基于Openfire服务器iOS即时通讯系统的设计与实现(吉林大学·郭卓)
- 基于WebRTC的实时通信系统的研究与实现(南昌大学·李兴盛)
- 基于分布式的众信即时通讯软件后台系统设计与实现(东华大学·王明月)
- 企业内部即时通讯系统的设计与实现(内蒙古大学·王慧平)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设项目助手 ,原文地址:https://bishedaima.com/yuanma/36086.html