《基于B-S的QQ聊天软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于B-S的QQ聊天软件的设计与实现.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 2014 届毕业设计说明书 基于B/S的QQ聊天软件的设计与实现 院 部: 计算机与信息科学学院 学生姓名: 指导教师: 职称 指导教师: 职称 专 业: 计算机科学与技术 班 级: 完成时间: 2014-5 摘 要在当今社会,随着网络的逐渐普及,互联网已经成为人们生活中必不可少的一部分,人们能够从互连网上获取所需要的信息并且通过互联网与朋友亲人交流,随着网络应用越来越广泛,如何快速获取所需要的信息已经成为时下必须要解决的问题。要开发一个聊天室,首先,在我们脑海中,要有这个聊天室的初步的整体概况。在诸多的公共聊天室中,其核心功能无非都是注册登录、群聊私聊、找回密码、退出,而管理员的核心功能大
2、多数是登录、用户资料管理、在线用户管理、聊天记录管理等功能。在聊天页面中,浏览器不断的对文本或数据库进行刷新、读取,并进行实时更新在线的用户。本聊天室系统由JSP技术与MySQL数据库相结合基于B/S模式开发完成,以Struts2框架作为主要的技术框架,以MyEclipse8.5作为开发工具,以apache-tomcat-6.0.28做为服务器。本聊天室系统的主要有普通用户和管理员两个角色,普通用户主要有注册登录、找回密码、群聊私聊、字体设置、背景颜色设置、在线音乐试听、退出这几个功能;管理员的主要功能有登录、在线用户管理、用户资料管理、过滤字段管理、聊天记录管理、音乐管理。关键词:B/S;数
3、据库;聊天室;MySQLABSTRACTIn todays society, with the growing popularity of the Internet, the Internet has become an essential part of peoples life, people can find needed information from the Internet and communication through the Internet with the friends close relatives, along with the network applicat
4、ion more and more widely, how to quickly get the information they need to have become nowadays must solve the problem.To develop a chat room, first of all, in our mind, to have the general situation of the preliminary overall chat rooms.In many public chat room, its core function is nothing but a re
5、gistered login, group of private chat, retrieve password, exit, and the core function of the administrator is most login, user information management, user management, online chat records management, and other functions.In the chat page, browser to refresh, reading of the text or database, real-time
6、 update and on-line users.This chat room system combined by the JSP technology and MySQL database based on B/S pattern development is complete, with the Struts2 framework, as the main technical framework, to MyEclipse8.5 as a development tool, with apache tomcat - 6.0.28 as a server.This chat room s
7、ystem mainly has two roles ordinary users and administrators and ordinary users are registered login, retrieve password, group of private chat, font, background color Settings, online music audition, exit this a few functions;The main function of the administrator login, online user management, user
8、 information management, filtering, field management, chat records management, music.Key word: b/s; database; chatroom; mysql目 录1 概述11.1 研究开发背景11.2 选题的意义21.3 国内外研究现状31.4 本文组织结构32 开发工具及技术介绍52.1 开发环境52.2 系统开发工具52.3 B/S结构的简介52.4 MySQL简介63 系统需求分析73.1 综合需求73.2 系统可行性分析73.2.1 技术及开发方法可行性73.2.2 管理可行性73.2.3 经
9、济可行性83.3 功能需求83.3.1 用例分析83.3.2 场景分析94 系统设计114.1 系统总体设计114.2 系统功能模块114.2.1 前台页面的模块124.2.2 后台页面的功能模块124.2.3 系统流程图135 数据库设计155.1 数据库概念结构设计155.2 数据库逻辑结构设计165.3 数据库物理结构设计176 系统详细设计与实现196.1 用户注册196.2 用户登陆196.3 找回密码216.4 聊天室226.5 后台管理247 系统测试277.1 系统测试277.2 功能测试27总 结30参考文献31致 谢32IV1 概述在网络世界中,聊天室(Chat Room)
10、是一个最常见的服务,它最早起源于BBS站点,聊天室作为一个在漫漫长夜打发消遣时间的最佳软件,除了能够用于聊天消遣时间以外,还拥有语音聊天、视频聊天、共享图片、文件等功能。现在随着网络的发展,聊天室发展的速度已经非常迅速了,现在的聊天室技术,都已经运用到了“网络会议”上,现在有很多的会议在网上视频聊天会议9。在市面上,聊天室的应用软件出现得比较早,比如说,Microsoft Chat,一个在界面及功能方面都已经非常完善的“聊天室”的应用软件,它是一套独立于浏览器之外的,即与浏览器无关的,需要下载客户端安装使用的套装软件,在使用它之前还需要先熟悉其中的操作界面,才能够使用这个软件,这对于新时代匆匆
11、忙忙,并没有太多时间去学习的网友来说,是一个非常不方便的缺陷。因此,开发出来一个操作简单,方便,不需要下载客户端安装使用的聊天软件已经成为广大网民的迫切需求。所以,根据网民的需求,越来越多的公司和网站开始开发基于浏览器的,不需要下载客户端安装使用,不需要熟悉界面操作的聊天室,以便造福更多的网友12。1.1 研究开发背景由于电子科技的迅速发展,网络时代到来,人们通讯方式也不断的发生改变,从以前的写信到后来的呼机,到现在的手机,不断地往高科技方向发展。然而人们的聊天的方式也在发生改变,因此聊天室也随之慢慢的发展起来了,慢慢受到人们喜爱,现在我们QQ中就有各种各样的群,有的娱乐、有的技术交流、有的用
12、来工作,总之应用非常广。聊天室的开发是有必要的,其发展的前景也是非常大的。聊天室现在用于娱乐方面还是比较少的,主要还是用于商业方面,就目前聊天室的市场结构来看, 现在大多数的网站几乎都拥有一个完全属于自己的聊天室,现在的聊天室,运作起来是非常的简单,当然也有非常复杂的,如像QQ和YY那种聊天的工具。在国外,现在就一个普通的商务网上或者娱乐网站都有属于自己的聊天工具。聊天室的之所以这么普及主要有两个原因:一、由于现在这方面的技术已经是相当的成熟,开发这种软件的成本高;二、聊天这种软件不管是运作起来还使用起来都是比较方便的。所有很受人们的欢迎,现在都有很多专门做这种软件的公司了。在我国,聊天室市场
13、集中度还不是很高, 其中只有一些大型的商业网站或者一些专门娱乐性的网站才有,所有在我国的市场还是相当的大。在我国,由于现在的电脑的价格非常的便宜,人们的生活水平的提高,对网络的需要越来越大,除了在网上玩游戏、谈生意、购物、查阅资料以外,还有就是用于聊天娱乐,当我们身处在一个群体当中的时候,不管是在工作还是在学习中也好,我们都会建立起一个属于自己的聊天室,它的聊天功能是聊天室中运用最广的功能,这是网上最受欢迎和最普通以中聊天方式。聊天具有应用广泛、开发简单、 操作方便、功能齐全、信息传递、简单快捷等的特独有性,因为它是用文字来传播信息,所有用于聊天时候的信息交流比较方便,相当于人与人面对面的交流
14、,受到大多数人喜欢,因此有很多人喜欢在聊天室中聊天,还没面对面那种羞涩2。1.2 选题的意义现在的通讯系统,除了我们生活中用于正常交流和联系以外,在现在的商业中也慢慢的兴起,运用到网上交易中,聊天室为客户与客户之间的沟通提供了一个有效交流平台,使得与客户之间的聊天没有时间和空间的距离感。在时间上,这边发一条信息到另外一边所用的时间只需要不到1秒的时间,几乎是立即得到响应,比发送一份邮件的信息传递速度快了几百倍,非常的节省时间;在经济上,我们打电话是按时间分钟来计费的,如果是长途电话的话更贵,而我们的聊天室是通过互联网来接通的,价格十分便宜。当然我们不能否定邮件和电话,在用于不同的地方,它们又比
15、聊天室好。基于B/S的聊天室是浏览器/服务的,与基于C/S架构的腾讯QQ等聊天软件相比起来,这种B/S7架构的聊天室,是不需要下载安装,直接是在浏览器上运行。因此,对于一个公司和企业来说,开发一个用于网站、娱乐或者论坛来交流的聊天室,其中包括群聊和私聊,成为了现在众多公司或集体的重要需求14。这次开发的基于B/S架构的聊天室,是用现在流行JAVA1语言来开发的,用MyEclipse8.5作为开发平台,因为MyEclipse8.5开发B/S6架构运行在浏览器上的系统比较方便,并且用到的数据库是当前非常受欢迎的MySQL数据,作为后台数据库存储一些信息,建立一些表格。现在的随着WEB技术不断加强,
16、B/S架构的设计模式开始流行起来,因为B/S架构的是网页版的,作为客户端只需要在浏览器上操作,没有下载安装客户端的说法。B/S模式将实现系统核心功能的代码全部都放着到服务器上,只有该系统的服务器够强大就可以无限的运行,如果客户端崩溃,也只是在浏览器上而已,只需要重新打开一个页面就可以了,从某种一定程度上,这个系统只需要开发一个强大的服务器,从而简化了系统的开发和维护。基于B/S架构的聊天室系统,与那些C/S8模式聊天室相比较,最大的优点:只要你有浏览器,就可以随时随地进行聊天,而不需要下载安装客户端,从而实现了客户端零安装、零维护的需求,提高了其中的效率6。1.3 国内外研究现状随着互联网的发
17、展以及普及,网络聊天软件逐渐成为网络用户必备的联络工具,它为广大网民提供了一种方便快捷的沟通方式,而网络聊天室作为出现最早,也是操作简单的网上聊天方式,受到了众多网民的追捧。在国内,1999年2月,深圳腾讯公司正式发布OICQ99 beta build 0210,开通腾讯网络聊天服务。2000年5月,腾讯QQ在线人数已经突破10万。2001年2月l0日,腾讯QQ在线人数已经突破100万。2004年4月份,腾讯QQ在线人数的最高记录已经突破了600万,现在腾讯公司正在把网络聊天系统往移动聊天方向扩展,如今已经将网络聊天与手机短信息(SMS)成功结合起来。如今网络聊天软件涉及和影响的范围越来越广,
18、其竞争也越来越激烈。在国外,MSN借助和Windows操作系统的绑定似乎已是使用最广泛的聊天软件。使用MSN,可以通过文本、语音、视频与朋友、亲人聊天,还可以与朋友、亲人传输文件,共享图片等。但是,这些聊天软件都是基于C/S架构的,都需要通过下载客户端进行安装使用,在更新方面也需要下载更新,而且用户名、密码和聊天记录等都是存在本地机器上的,在安全性和方便性方面都有所欠缺。Browser/Server(浏览器/服务器)结构,是随互联网技术伴生的,是对C/S架构的进行改进的一种结构。在这种结构下,用户不需要通过下载客户端安装使用和更新,只需要有浏览器就可以实现,而且可以随时随地地使用,不会受到时间
19、与地域的影响。与C/S相比,B/S 的优势是B/S是建立在广域网之上的, 一般情况下只要有操作系统和浏览器就可以了,不需要有专门的网络硬件环境,而C/S则是建立在专用网络上的,必须是小范围网络环境,所以,B/S架构的聊天室开发起来比C/S架构的要简单,容易。而且B/S架构的聊天室实现了系统的无缝升级,系统维护开销小。最主要的是B/S架构的聊天室是基于浏览器的,与操作平台无关,所以不需要考虑兼容性问题6。1.4 本文组织结构本文围绕着开发一个基于B/S的QQ聊天软件,描述了完成开发这个系统的主要流程,本文分为以下几部分:第一章 介绍的是基于B/S的QQ聊天软件的研发背景、选题意义和国内外现状;第
20、二章 介绍的是QQ聊天软件要使用的开发环境、开发工具以及要使用到的技术;第三章 介绍的是QQ聊天软件的需求分析;第四章 介绍的是系统的设计与及系统需要有的功能模块;第五章 介绍的是数据库的设计与创建;第六章 介绍的是系统的详细设计与实现;第七章 主要是对本系统进行测试,证明系统的可行性。2 开发工具及技术介绍2.1 开发环境系统名:基于B/S的QQ聊天软件的设计与实现操作系统:windows7 32位硬件支持:CPU 英特尔Core i5-480M(双核)内存 6GB显卡 ATI/AMD Radeon HD 64x0M/74x0M2.2 系统开发工具开发工具: MyEclipse 8.5 服务
21、器:apache-tomcat-6.0.28数据库:MySQL2.3 B/S结构的简介在传统的两层的C/S结构中,随着技术慢慢的发展出现了它的局限性,C/S结构模式比较适合于那种系统规模比较小、用户也比较少、而且数据库还是单一的情况下,并且运行的网络环境必须是安全的和快速 (例如局域网 )。由于网络技术的发展之快,所运行的应用系统的规模在慢慢的扩大 ,其中的复杂性越来越高,在现在多用户、多数据库、多接口的系统中,并且网络环境下也是非安全的(例如:Internet)的网络环境中,传统的两层C/S结构的应用模型无法满足现状,跟不上时代步伐,而且这种模式是单一的服务器,主要以局域网为中心的 ,因此想
22、要把传统的模式扩展至大型企业的广域网或强大的Intranet中是不可能的,因此B/S体系结构三层客户/服务器模式随之兴起,成为当今最受欢迎的一种体系结构8。三层客户/服务器模式是称之为B/S体系结构,是在以前传统两层的C/S结构模式的集成上,增加了一级成为了现在流行的三层客户/服务器模式。B/S体系结构在逻辑上将应用功能分为3层,分别是显示层、业务层、数据层。客户显示层是服务有客户端的,为客户的图形界面功能提供相对应的应用服务的,从而帮助客户迅速快捷的定位于应用服务。业务逻辑层是在显示层和数据层之间,是为企业实现该企业的业务逻辑提,专门的设计供的一个明确有效的层次,具有一定的逻辑性,在这个层次
23、中,封装了与系统相关联的应用模型,同时把显示层和数据库代码部分的数据层区分开来 数据层是三层模式中最底层的结构,这个层的主要目的是用来定义、维护、访问和更新数据,简单的说,就是管理数据库的,同时管理和满足应用服务对数据库发送的一系列请求,维护数据库得管理。这种三层体系结构关系如图1所示: 显示层业务层数据层图1 B/S三层架构示意图 2.4 MySQL简介 MySQL数据库是一个精巧的SQL数据库管理系统,这个数据库相对其他那些数据库来说,是非常小的。MySQL数据库很容易安装,它是在DOC命令的窗口运行的,但是它是具有强大的数据开发和维护功能、源代码开发的关系型数据库管理系统,还有就是这个数
24、据库管理系统具有非常强灵活性和丰富的应用编程接口以及精巧的系统结构性。同时运用起来不占什么内存,还有他它快速,健壮和易用的特性,同时所用到经济成本也是非常的地,所以现在那些小型的企业的数据库基本上都采用这种数据库管理系统,其中的主要原因上面以及介绍了。所以在现在的那些小型的项目中,基本都会选择这种数据。SQL是一种标准化的语言,它不仅在MySQL数据库能运行还能在SQL Server中运行,所以MySQL数据库的SQL语言是可以在其他数据中使用。同时MySQL还能够足够快和灵活存储记录文件和图像等属性,可见这个数据库得功能之强大11。MySQL数据库软件有几个版本,分别是标准版、企业版和集群版
25、3个版本。MySQL数据库的主要特点是体积小、速度快和成本低3个特点,其中在成本低MySQL数据库优势下,它的局限性已经不是什么问题了,而且它能满足现在的那些中小型的系统或者网站,所以,使得一般中小型网站的开发都会选择MySQL作为网站数据库。同时MySQL数据库相比其他的数据而言,在相同的运行环境中,可能维护起来会比较的容易些,所以在数据维护方面的,所需要的人力和财力会减少很多,减少了企业的开支16。3 系统需求分析3.1 综合需求通过调查可以得知,在本系统中,用户的类型有两种:普通用户和管理员。普通用户可以通过注册用户名,进入聊天系统,在聊天室中可以给所有人发送群聊信息,也可以和聊天室中的
26、某个在线用户进行私聊。管理员在注册成为普通用户以后也可以进入前台的聊天页面,跟普通用户一样,进行聊天。管理员除了具有普通用户的功能外,还可以通过管理员的身份进入后台管理系统,对系统进行管理和维护。聊天室的最大特点就是能够对聊天内容进行实时刷新,能够实时显示聊天内容。即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言,并且能够通过实时刷新看到在线人数列表。本系统有普通用户和管理员两个角色。在系统中,普通用户实现的功能有用户注册、用户登录、找回密码、进入聊天室聊天、试听音乐等功能。聊天时,用户可以设置字体的大小、颜色等,实时显示聊天信息,并且实时显示在线聊天的人员列表,好友状态,用户
27、还可以手动更换背景颜色。同时,系统还有支持用户在线播放音乐的功能。管理员除了可以以普通用户的身份实现普通用户的功能以外,还可以以管理员的身份实现管理员的功能。管理员实现的功能有剔除普通用户、过滤非法聊天内容、用户资料管理、在线用户管理、导出聊天记录、上传音乐文件等功能。本系统旨在实现在线实时聊天功能,为用户提供方便快捷的交流方式,这在具体体现,将会在系统实现中体现和扩展。 3.2 系统可行性分析可行性分析是根据初步的调查结果,对系统开发做出可行与否的结论的过程。可行性分析从技术可行性、经济可行性、管理可行性三方面进行分析,论证该系统是否可行。3.2.1 技术及开发方法可行性本系统的开发采用Ja
28、va3语言和JSP10相关技术,JSP具有一处编译,到处运行的特性,而Java语言是面向对象的语言,它具有与平台无关的特性,所以系统能够跨平台使用,可运行于Linux/Unix和Windows系列等各种操作系统平台。3.2.2 管理可行性使用模块化的设计方法,有助于系统开发过程的管理,因为模块化的设计方法就是科学合理的将整个程序划分为N个功能模块,各个功能模块单独设计,互不影响。这种设计方法有助于降低整个程序的设计难度及减少错误程序的影响范围,也使得各个功能模块容易实现,而且整个程序修改容易,不会因为其中一个功能模块出现错误而影响整个系统。3.2.3 经济可行性经过详细周密的调查,借鉴成功的开
29、发案例,采用科学有效的开发方式,可以降低开发的成本,达到经济高效的目的。本系统在开发方面主要使用了MyEclipse8.5、apache-tomcat-6.0.28、MySQL等软件,而这些软件在网上均可以免费下载,因此,在开发成本方面可以说是非常低,所以,该系统在经济方面可行。3.3 功能需求经过详细的调查,首先可以确定的是系统需要有“普通用户”和“管理员”这两个角色。3.3.1 用例分析管理员主要负责对系统中用户进行管理和维护,普通用户主要负责对聊天界面进行设置以及进行聊天和聊天的设置,以上两个实体的主要功能如下图所示:表1 基本用例实体 功能普通用户 注册、登录 聊天、设置字体的大小,颜
30、色、设置背景颜色、试听音乐管理员 登录、管理在线用户、管理聊天记录、管理音乐文件根据分析,系统中的两个实体,“普通用户”和“管理员”的用例图如下图所示:图2 系统用例图3.3.2 场景分析(1)用户注册场景用户输入注册要填写的内容后,点击注册进行验证,如果验证合法,则会对后台数据库做数据的插入操作,插入成功后,即注册成功,跳转到登录页面,否则继续停留在注册页面。用户注册的顺序图如图3所示:图3 用户注册顺序图 (2)用户登录场景用户输入用户名和密码后,后台数据对用户输入的数据进行验证判断,如果后台数据库存在该用户,且密码正确,则跳转到聊天页面,否则登录失败,继续停留在登录页面。用户登录的顺序图
31、如图4所示:图4 用户登录顺序图 4 系统设计4.1 系统总体设计根据以上聊天系统的需求分析,本聊天系统可将模块分为普通用户登陆的前台聊天子系统模块和后台管理员管理子系统模块。其中普通用户模块包括登录模块、聊天模块、退出模块,聊天模块又包含各种聊天相关功能的子功能模块和在线歌曲试听的子功能模块,管理员模块包括登录模块、管理模块、退出模块,其中管理模块又包括管理系统用户的各个功能子模块和管理歌曲的各个功能子模块。普通用户和管理员的退出聊天室模块机制是类似。系统总体模块框架划分如图5所示:普通用户注册登录聊天背景设置音乐试听字体设置管理员过滤字段管理在线用户管理用户资料管理聊天记录管理歌曲管理图5
32、 系统总体模块架构4.2 系统功能模块本系统在J2EE4平台下使用B/S架构进行设计, MySQL作为后台数据库,实现管理员对聊天室的管理、用户登陆聊天室聊天等功能的管理和实现,包括前台模块和后台管理模块。本聊天室系统使用MyEclipse软件开发,以Struts25框架作为主要的技术框架,以JSP技术编写页面。作为一个只需要WEB2浏览器,不需要下载客户端就能实现的聊天室,虽然不需要客户端的存在,但是在前台依然必须要具备基本的用户注册、登陆功能。4.2.1 前台页面的模块在前台模块中,用户只有通过注册账号后,拥有了账号才能登陆,在登录模块中用户输入了注册好的账号与密码,通过验证后,进入到聊天
33、模块,在聊天模块中,可以进行字体大小、颜色的设置,可以改变页面的背景颜色,可以发送表情,除了这些以外,还有音乐试听模块。前台页面的模块又可以分为登陆模块和聊天模块。登陆模块其中包括了用户注册账号,合法注册用户登陆账号,找回密码,资料修改等等。(1)用户注册模块用户将个人信息填写完整,点击注册进行验证,如果验证合法,对数据库做插入操作,插入成功,则完成注册,完成注册后页面跳转到登陆页面,如果验证没有通过,则继续停留在注册页面。(2)登陆账号模块当用户输入用户名和密码后,点击登录对输入的信息进行验证,即查看数据库是否存在该用户,若存在,则对密码进行核对,若密码正确,则登陆到聊天界面,否则停留在登录
34、界面。(3)找回密码模块当用户忘记密码时,通过注册时填写的问题以及问题的答案找回密码。点击找回密码,跳到下一步页面,输入要找回密码的用户的用户名,点击下一步,根据输入的用户名,查找到用户注册时输入的密码提示问题,并填入密码提示问题的答案,点击下一步,进行验证,若输入答案错误,则跳到登录页面,若答案正确,则跳到下一步的页面,输入新密码,点击下一步,完成密码修改,跳到登录页面。聊天界面则包括一个用户与另一个用户之间的私聊,一个用户与多用户之间的群聊,设置修改字体、字号、颜色、变换背景色、音乐试听等功能。聊天室的前台功能模块划分图如图6所示:4.2.2 后台页面的功能模块在后台页面模块中,管理员通过
35、用户名与密码登录到后台管理页面,在后台管理模块中,又可以分为在线用户管理模块、用户资料管理模块、过滤字段管理模块、聊天记录管理模块、音乐管理模块等几个模块。(1)用户资料管理对每一个已经注册了的用户注册时填写的资料进行增删改查的管理。(2)在线用户管理通过查询数据库,统计在线人数并在界面显示出来,并且对一些非法用户可以实行踢除处理。(3)过滤字段管理设置需要过滤的内容,即设置在用户聊天时不能发送的非法内容,插入到数据库中,经由数据库筛选非法聊天内容并自动屏蔽优化聊天室。(4)聊天记录管理通过查询数据库中的聊天记录表,将聊天记录显示到界面上,需要导出聊天记录时,导出聊天记录,方便备份聊天记录。(
36、6)音乐管理上传音乐文件,即在数据库中对音乐表进行插入数据操作,查询数据库中的音乐文件,并显示到界面,还能删除上传了的音乐文件。后台页面的模块划分图如图7所示:前台页面用户注册用户登录找回密码聊天室聊天功能设置音乐试听群聊私聊字体字号字体颜色背景颜色聊天表情管理员登录后台管理在线用户管理用户资料管理聊天记录管理音乐管理过滤字段管理 图6 前台页面模块划分图 图7 后台页面模块划分图4.2.3 系统流程图经过以上的需求分析和初步的设计,可以初步确定本系统有两个角色,分别是普通用户和管理员,前面已经对本系统进行了初步的设计,初步确定了本系统的功能模块,为了更方便、更清晰地展现本系统的功能,下面画出
37、了不同使用者不同权限的流程图。普通用户具有注册登录、音乐试听、聊天、设置背景颜色、退出权限,其中聊天功能中包括群聊、私聊、设置字体字号和颜色、发送表情等权限。普通用户的系统流程图如图8所示:管理员若以普通用户的身份,则具有普通用户的所有权限,若是以管理员的身份登录,则具有登录、用户资料管理、过滤字段管理、在线用户管理、聊天记录管理、音乐管理等权限。管理员的系统流程图如图9所示: 普通用户用户注册注册成功登录聊天室登录成功背景颜色聊天试听音乐字体设置字体设置字体设置字体设置登录失败管理员登录后台管理在线用户管理在线用户管理在线用户管理在线用户管理在线用户管理登录成功图8 普通用户系统流程图 图9
38、 管理员系统流程图5 数据库设计5.1 数据库概念结构设计经过分析,得出本系统有普通用户和管理员两个角色,本系统还有过滤字段、管理聊天记录、音乐试听等功能,因此,本系统的实体有用户、过滤条件、聊天记录、音乐,这些实体的实体属性图如下列图所示:用户用户编号用户名密码用户类型密码提示问题提示答案是否在线图10 用户实体属性图过滤条件过滤编号过滤字段图11 过滤条件实体属性图聊天记录记录编号发送人发送时间发送内容接收人图12 聊天记录实体属性图歌曲信息音乐编号歌曲名字歌手姓名歌曲路径图13 歌曲实体属性图经过系统功能的初步确定和数据库中实体的初步确定,得到了聊天的E-R图如下图所示:用户用户名密码聊
39、天用户用户名密码聊天编号发送人发送内容接收人发送时间NM图14 聊天E-R图5.2 数据库逻辑结构设计聊天室作为网络服务的一个重要应用,它的数据库在整个系统中占据着极其重要的作用,其数据库在网站建设和网络营销中发挥着非常重要的作用。普通的静态网站是没有数据库的,而具有数据库的网站网页我们通常称为动态页面,也就是说拥有数据库的网站页面的内容不是一成不变的,页面上内容或部分内容是可以根据数据库中数据的变化而改变的,是动态生成的,这就使得动态网站内容更灵活,维护更方便,更新更便捷。本系统采所需要的数据库结构如图15所示。图15 聊天室关系图5.3 数据库物理结构设计数据库的设计一般情况下是以一个已经
40、开发出来的数据库管理系统为基础进行设计的,我们平常开发中比较常用的数据库管理系统有MySQL、SQL Server15、Oracle等。在本系统开发中,由于MySQL是一个开源的、快速的、多用户的SQL数据库服务器,而且MySQL能在不同的平台上工作,所以我采用了MySql数据库管理系统作为基础进行数据库设计,建立的数据库名为chatsys的数据库。根据QQ聊天软件的需求,对应的数据库表的设计及其功能如下:(1) 用户信息表:存放用户注册时填写的用户信息,如存放用户名、密码密码提示问题、密码提示问题答案等内容;(2) 歌曲信息表:存放歌曲的信息,如歌曲名、歌曲歌手等;(3) 聊天记录信息表:存
41、放用户在聊天过程中产生的聊天信息;(4) 过滤条件信息表:存放要过滤的字段,即存放用于过滤聊天信息的条件,用于屏蔽非法聊天信息;用户信息表如下表所示:表2 用户表(user)列名 注释 类型 是否为主键 长度 是否为空u_id 用户ID Int 是 - 否name 用户名 Varchar 否 40 否pwd 密码 Varchar 否 40 是type 用户类型 Int 否 4 是isuse 在线状态 Tinyint 否 4 是ask 密码找回问题 Text 否 - 是ans 密码找回答案 Text 否 - 是过滤条件信息表如下表所示:表3 过滤条件表(cont)列名 注释 类型 是否为主键 长
42、度 是否为空c_id 过滤ID Int 是 - 否name 过滤字段 Varchar 否 1000 是聊天记录信息表如下表所示:表4 聊天表(record)列名 注释 类型 是否为主键 长度 是否为空r_id 聊天记录ID Int 是 - 否name 聊天内容 Varchar 否 1000 是歌曲信息表如下表所示:表5 歌曲表(music)列名 注释 类型 是否为主键 长度 是否为空m_id 歌曲ID Int 是 - 否name 歌曲名 Varchar 否 100 是singer 歌手名字 Varchar 否 100 是fujian 存储路径 Varchar 否 100 是6 系统详细设计与实
43、现6.1 用户注册想要聊天室进行聊天,就必须要拥有一个用于登录的账号,如果没有,就必须注册一个账号,否则无法进入聊天室。注册时,在注册页面输入要填写的信息,点击注册,会对输入的数据进行验证,验证通过了,会在数据库中插入该用户输入的信息,并将用户名存到session中。注册成功以后,页面会自动跳转到登录页面,并且通过session取到注册时用户输入的用户名,并将用户名显示到登录页面登录时要输入的用户名栏。用户注册的流程图如图16所示:注册的核心代码如下所示:public String execute() if(user!=null&!user.getName().equals()&user.getName()!=null&user.getPwd()!=null&!user.getPwd().equals()userService.add(user)