基于BS的QQ聊天软件的设计与实现_第1页
基于BS的QQ聊天软件的设计与实现_第2页
基于BS的QQ聊天软件的设计与实现_第3页
基于BS的QQ聊天软件的设计与实现_第4页
基于BS的QQ聊天软件的设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

概述在网络世界中,聊天室(ChatRoom)是一个最常见的服务,它最早起源于BBS站点,聊天室作为一个在漫漫长夜打发消遣时间的最佳软件,除了能够用于聊天消遣时间以外,还拥有语音聊天、视频聊天、共享图片、文件等功能。现在随着网络的发展,聊天室发展的速度已经非常迅速了,现在的聊天室技术,都已经运用到了“网络会议”上,现在有很多的会议在网上视频聊天会议[9]。在市面上,聊天室的应用软件出现得比较早,比如说,MicrosoftChat,一个在界面及功能方面都已经非常完善的“聊天室”的应用软件,它是一套独立于浏览器之外的,即与浏览器无关的,需要下载客户端安装使用的套装软件,在使用它之前还需要先熟悉其中的操作界面,才能够使用这个软件,这对于新时代匆匆忙忙,并没有太多时间去学习的网友来说,是一个非常不方便的缺陷。因此,开发出来一个操作简单,方便,不需要下载客户端安装使用的聊天软件已经成为广大网民的迫切需求。所以,根据网民的需求,越来越多的公司和网站开始开发基于浏览器的,不需要下载客户端安装使用,不需要熟悉界面操作的聊天室,以便造福更多的网友[12]。1.1研究开发背景由于电子科技的迅速发展,网络时代到来,人们通讯方式也不断的发生改变,从以前的写信到后来的呼机,到现在的手机,不断地往高科技方向发展。然而人们的聊天的方式也在发生改变,因此聊天室也随之慢慢的发展起来了,慢慢受到人们喜爱,现在我们QQ中就有各种各样的群,有的娱乐、有的技术交流、有的用来工作,总之应用非常广。聊天室的开发是有必要的,其发展的前景也是非常大的。聊天室现在用于娱乐方面还是比较少的,主要还是用于商业方面,就目前聊天室的市场结构来看,现在大多数的网站几乎都拥有一个完全属于自己的聊天室,现在的聊天室,运作起来是非常的简单,当然也有非常复杂的,如像QQ和YY那种聊天的工具。在国外,现在就一个普通的商务网上或者娱乐网站都有属于自己的聊天工具。聊天室的之所以这么普及主要有两个原因:一、由于现在这方面的技术已经是相当的成熟,开发这种软件的成本高;二、聊天这种软件不管是运作起来还使用起来都是比较方便的。所有很受人们的欢迎,现在都有很多专门做这种软件的公司了。在我国,聊天室市场集中度还不是很高,其中只有一些大型的商业网站或者一些专门娱乐性的网站才有,所有在我国的市场还是相当的大。在我国,由于现在的电脑的价格非常的便宜,人们的生活水平的提高,对网络的需要越来越大,除了在网上玩游戏、谈生意、购物、查阅资料以外,还有就是用于聊天娱乐,当我们身处在一个群体当中的时候,不管是在工作还是在学习中也好,我们都会建立起一个属于自己的聊天室,它的聊天功能是聊天室中运用最广的功能,这是网上最受欢迎和最普通以中聊天方式。聊天具有应用广泛、开发简单、操作方便、功能齐全、信息传递、简单快捷等的特独有性,因为它是用文字来传播信息,所有用于聊天时候的信息交流比较方便,相当于人与人面对面的交流,受到大多数人喜欢,因此有很多人喜欢在聊天室中聊天,还没面对面那种羞涩[2]。1.2选题的意义现在的通讯系统,除了我们生活中用于正常交流和联系以外,在现在的商业中也慢慢的兴起,运用到网上交易中,聊天室为客户与客户之间的沟通提供了一个有效交流平台,使得与客户之间的聊天没有时间和空间的距离感。在时间上,这边发一条信息到另外一边所用的时间只需要不到1秒的时间,几乎是立即得到响应,比发送一份邮件的信息传递速度快了几百倍,非常的节省时间;在经济上,我们打电话是按时间分钟来计费的,如果是长途电话的话更贵,而我们的聊天室是通过互联网来接通的,价格十分便宜。当然我们不能否定邮件和电话,在用于不同的地方,它们又比聊天室好。基于B/S的聊天室是浏览器/服务的,与基于C/S架构的腾讯QQ等聊天软件相比起来,这种B/S[7]架构的聊天室,是不需要下载安装,直接是在浏览器上运行。因此,对于一个公司和企业来说,开发一个用于网站、娱乐或者论坛来交流的聊天室,其中包括群聊和私聊,成为了现在众多公司或集体的重要需求[14]。这次开发的基于B/S架构的聊天室,是用现在流行JAVA[1]语言来开发的,用MyEclipse8.5作为开发平台,因为MyEclipse8.5开发B/S[6]架构运行在浏览器上的系统比较方便,并且用到的数据库是当前非常受欢迎的MySQL数据,作为后台数据库存储一些信息,建立一些表格。现在的随着WEB技术不断加强,B/S架构的设计模式开始流行起来,因为B/S架构的是网页版的,作为客户端只需要在浏览器上操作,没有下载安装客户端的说法。B/S模式将实现系统核心功能的代码全部都放着到服务器上,只有该系统的服务器够强大就可以无限的运行,如果客户端崩溃,也只是在浏览器上而已,只需要重新打开一个页面就可以了,从某种一定程度上,这个系统只需要开发一个强大的服务器,从而简化了系统的开发和维护。基于B/S架构的聊天室系统,与那些C/S[8]模式聊天室相比较,最大的优点:只要你有浏览器,就可以随时随地进行聊天,而不需要下载安装客户端,从而实现了客户端零安装、零维护的需求,提高了其中的效率[6]。1.3国内外研究现状随着互联网的发展以及普及,网络聊天软件逐渐成为网络用户必备的联络工具,它为广大网民提供了一种方便快捷的沟通方式,而网络聊天室作为出现最早,也是操作简单的网上聊天方式,受到了众多网民的追捧。在国内,1999年2月,深圳腾讯公司正式发布OICQ99betabuild0210,开通腾讯网络聊天服务。2000年5月,腾讯QQ在线人数已经突破10万。2001年2月l0日,腾讯QQ在线人数已经突破100万。2004年4月份,腾讯QQ在线人数的最高记录已经突破了600万,现在腾讯公司正在把网络聊天系统往移动聊天方向扩展,如今已经将网络聊天与手机短信息(SMS)成功结合起来。如今网络聊天软件涉及和影响的范围越来越广,其竞争也越来越激烈。在国外,MSN——借助和Windows操作系统的绑定似乎已是使用最广泛的聊天软件。使用MSN,可以通过文本、语音、视频与朋友、亲人聊天,还可以与朋友、亲人传输文件,共享图片等。但是,这些聊天软件都是基于C/S架构的,都需要通过下载客户端进行安装使用,在更新方面也需要下载更新,而且用户名、密码和聊天记录等都是存在本地机器上的,在安全性和方便性方面都有所欠缺。Browser/Server(浏览器/服务器)结构,是随互联网技术伴生的,是对C/S架构的进行改进的一种结构。在这种结构下,用户不需要通过下载客户端安装使用和更新,只需要有浏览器就可以实现,而且可以随时随地地使用,不会受到时间与地域的影响。与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聊天软件的研发背景、选题意义和国内外现状;介绍的是QQ聊天软件要使用的开发环境、开发工具以及要使用到的技术;介绍的是QQ聊天软件的需求分析;介绍的是系统的设计与及系统需要有的功能模块;介绍的是数据库的设计与创建;介绍的是系统的详细设计与实现;主要是对本系统进行测试,证明系统的可行性。2开发工具及技术介绍2.1开发环境系统名:基于B/S的QQ聊天软件的设计与实现操作系统:windows732位硬件支持:CPU英特尔Corei5-480M(双核)内存6GB显卡ATI/AMDRadeonHD64x0M/74x0M2.2系统开发工具开发工具:MyEclipse8.5服务器:apache-tomcat-6.0.28数据库:MySQL2.3B/S结构的简介在传统的两层的C/S结构中,随着技术慢慢的发展出现了它的局限性,C/S结构模式比较适合于那种系统规模比较小、用户也比较少、而且数据库还是单一的情况下,并且运行的网络环境必须是安全的和快速(例如局域网)。由于网络技术的发展之快,所运行的应用系统的规模在慢慢的扩大,其中的复杂性越来越高,在现在多用户、多数据库、多接口的系统中,并且网络环境下也是非安全的(例如:Internet)的网络环境中,传统的两层C/S结构的应用模型无法满足现状,跟不上时代步伐,而且这种模式是单一的服务器,主要以局域网为中心的,因此想要把传统的模式扩展至大型企业的广域网或强大的Intranet中是不可能的,因此B/S体系结构三层客户/服务器模式随之兴起,成为当今最受欢迎的一种体系结构[8]。三层客户/服务器模式是称之为B/S体系结构,是在以前传统两层的C/S结构模式的集成上,增加了一级成为了现在流行的三层客户/服务器模式。B/S体系结构在逻辑上将应用功能分为3层,分别是显示层、业务层、数据层。客户显示层是服务有客户端的,为客户的图形界面功能提供相对应的应用服务的,从而帮助客户迅速快捷的定位于应用服务。业务逻辑层是在显示层和数据层之间,是为企业实现该企业的业务逻辑提,专门的设计供的一个明确有效的层次,具有一定的逻辑性,在这个层次中,封装了与系统相关联的应用模型,同时把显示层和数据库代码部分的数据层区分开来数据层是三层模式中最底层的结构,这个层的主要目的是用来定义、维护、访问和更新数据,简单的说,就是管理数据库的,同时管理和满足应用服务对数据库发送的一系列请求,维护数据库得管理。这种三层体系结构关系如图1所示:显示层显示层业务层数据层图1B/S三层架构示意图2.4MySQL简介MySQL数据库是一个精巧的SQL数据库管理系统,这个数据库相对其他那些数据库来说,是非常小的。MySQL数据库很容易安装,它是在DOC命令的窗口运行的,但是它是具有强大的数据开发和维护功能、源代码开发的关系型数据库管理系统,还有就是这个数据库管理系统具有非常强灵活性和丰富的应用编程接口以及精巧的系统结构性。同时运用起来不占什么内存,还有他它快速,健壮和易用的特性,同时所用到经济成本也是非常的地,所以现在那些小型的企业的数据库基本上都采用这种数据库管理系统,其中的主要原因上面以及介绍了。所以在现在的那些小型的项目中,基本都会选择这种数据。SQL是一种标准化的语言,它不仅在MySQL数据库能运行还能在SQLServer中运行,所以MySQL数据库的SQL语言是可以在其他数据中使用。同时MySQL还能够足够快和灵活存储记录文件和图像等属性,可见这个数据库得功能之强大[11]。MySQL数据库软件有几个版本,分别是标准版、企业版和集群版3个版本。MySQL数据库的主要特点是体积小、速度快和成本低3个特点,其中在成本低MySQL数据库优势下,它的局限性已经不是什么问题了,而且它能满足现在的那些中小型的系统或者网站,所以,使得一般中小型网站的开发都会选择MySQL作为网站数据库。同时MySQL数据库相比其他的数据而言,在相同的运行环境中,可能维护起来会比较的容易些,所以在数据维护方面的,所需要的人力和财力会减少很多,减少了企业的开支[16]。3系统需求分析3.1综合需求通过调查可以得知,在本系统中,用户的类型有两种:普通用户和管理员。普通用户可以通过注册用户名,进入聊天系统,在聊天室中可以给所有人发送群聊信息,也可以和聊天室中的某个在线用户进行私聊。管理员在注册成为普通用户以后也可以进入前台的聊天页面,跟普通用户一样,进行聊天。管理员除了具有普通用户的功能外,还可以通过管理员的身份进入后台管理系统,对系统进行管理和维护。聊天室的最大特点就是能够对聊天内容进行实时刷新,能够实时显示聊天内容。即在同一个聊天室的使用者,可以在短时间内立刻看到其他聊天者的发言,并且能够通过实时刷新看到在线人数列表。本系统有普通用户和管理员两个角色。在系统中,普通用户实现的功能有用户注册、用户登录、找回密码、进入聊天室聊天、试听音乐等功能。聊天时,用户可以设置字体的大小、颜色等,实时显示聊天信息,并且实时显示在线聊天的人员列表,好友状态,用户还可以手动更换背景颜色。同时,系统还有支持用户在线播放音乐的功能。管理员除了可以以普通用户的身份实现普通用户的功能以外,还可以以管理员的身份实现管理员的功能。管理员实现的功能有剔除普通用户、过滤非法聊天内容、用户资料管理、在线用户管理、导出聊天记录、上传音乐文件等功能。本系统旨在实现在线实时聊天功能,为用户提供方便快捷的交流方式,这在具体体现,将会在系统实现中体现和扩展。3.2系统可行性分析可行性分析是根据初步的调查结果,对系统开发做出可行与否的结论的过程。可行性分析从技术可行性、经济可行性、管理可行性三方面进行分析,论证该系统是否可行。3.2.1技术及开发方法可行性本系统的开发采用Java[3]语言和JSP[10]相关技术,JSP具有一处编译,到处运行的特性,而Java语言是面向对象的语言,它具有与平台无关的特性,所以系统能够跨平台使用,可运行于Linux/Unix和Windows系列等各种操作系统平台。3.2.2管理可行性使用模块化的设计方法,有助于系统开发过程的管理,因为模块化的设计方法就是科学合理的将整个程序划分为N个功能模块,各个功能模块单独设计,互不影响。这种设计方法有助于降低整个程序的设计难度及减少错误程序的影响范围,也使得各个功能模块容易实现,而且整个程序修改容易,不会因为其中一个功能模块出现错误而影响整个系统。3.2.3经济可行性经过详细周密的调查,借鉴成功的开发案例,采用科学有效的开发方式,可以降低开发的成本,达到经济高效的目的。本系统在开发方面主要使用了MyEclipse8.5、apache-tomcat-6.0.28、MySQL等软件,而这些软件在网上均可以免费下载,因此,在开发成本方面可以说是非常低,所以,该系统在经济方面可行。3.3功能需求经过详细的调查,首先可以确定的是系统需要有“普通用户”和“管理员”这两个角色。3.3.1用例分析管理员主要负责对系统中用户进行管理和维护,普通用户主要负责对聊天界面进行设置以及进行聊天和聊天的设置,以上两个实体的主要功能如下图所示:表1基本用例实体功能普通用户注册、登录聊天、设置字体的大小,颜色、设置背景颜色、试听音乐管理员登录、管理在线用户、管理聊天记录、管理音乐文件根据分析,系统中的两个实体,“普通用户”和“管理员”的用例图如下图所示:图2系统用例图3.3.2场景分析(1)用户注册场景用户输入注册要填写的内容后,点击注册进行验证,如果验证合法,则会对后台数据库做数据的插入操作,插入成功后,即注册成功,跳转到登录页面,否则继续停留在注册页面。用户注册的顺序图如图3所示:图3用户注册顺序图(2)用户登录场景用户输入用户名和密码后,后台数据对用户输入的数据进行验证判断,如果后台数据库存在该用户,且密码正确,则跳转到聊天页面,否则登录失败,继续停留在登录页面。用户登录的顺序图如图4所示:图4用户登录顺序图4系统设计4.1系统总体设计根据以上聊天系统的需求分析,本聊天系统可将模块分为普通用户登陆的前台聊天子系统模块和后台管理员管理子系统模块。其中普通用户模块包括登录模块、聊天模块、退出模块,聊天模块又包含各种聊天相关功能的子功能模块和在线歌曲试听的子功能模块,管理员模块包括登录模块、管理模块、退出模块,其中管理模块又包括管理系统用户的各个功能子模块和管理歌曲的各个功能子模块。普通用户和管理员的退出聊天室模块机制是类似。系统总体模块框架划分如图5所示:普通用户普通用户注册登录聊天背景设置音乐试听字体设置管理员过滤字段管理在线用户管理用户资料管理聊天记录管理歌曲管理图5系统总体模块架构4.2系统功能模块本系统在J2EE[4]平台下使用B/S架构进行设计,MySQL作为后台数据库,实现管理员对聊天室的管理、用户登陆聊天室聊天等功能的管理和实现,包括前台模块和后台管理模块。本聊天室系统使用MyEclipse软件开发,以Struts2[5]框架作为主要的技术框架,以JSP技术编写页面。作为一个只需要WEB[2]浏览器,不需要下载客户端就能实现的聊天室,虽然不需要客户端的存在,但是在前台依然必须要具备基本的用户注册、登陆功能。4.2.1前台页面的模块在前台模块中,用户只有通过注册账号后,拥有了账号才能登陆,在登录模块中用户输入了注册好的账号与密码,通过验证后,进入到聊天模块,在聊天模块中,可以进行字体大小、颜色的设置,可以改变页面的背景颜色,可以发送表情,除了这些以外,还有音乐试听模块。前台页面的模块又可以分为登陆模块和聊天模块。登陆模块其中包括了用户注册账号,合法注册用户登陆账号,找回密码,资料修改等等。(1)用户注册模块用户将个人信息填写完整,点击注册进行验证,如果验证合法,对数据库做插入操作,插入成功,则完成注册,完成注册后页面跳转到登陆页面,如果验证没有通过,则继续停留在注册页面。(2)登陆账号模块当用户输入用户名和密码后,点击登录对输入的信息进行验证,即查看数据库是否存在该用户,若存在,则对密码进行核对,若密码正确,则登陆到聊天界面,否则停留在登录界面。(3)找回密码模块当用户忘记密码时,通过注册时填写的问题以及问题的答案找回密码。点击找回密码,跳到下一步页面,输入要找回密码的用户的用户名,点击下一步,根据输入的用户名,查找到用户注册时输入的密码提示问题,并填入密码提示问题的答案,点击下一步,进行验证,若输入答案错误,则跳到登录页面,若答案正确,则跳到下一步的页面,输入新密码,点击下一步,完成密码修改,跳到登录页面。聊天界面则包括一个用户与另一个用户之间的私聊,一个用户与多用户之间的群聊,设置修改字体、字号、颜色、变换背景色、音乐试听等功能。聊天室的前台功能模块划分图如图6所示:4.2.2后台页面的功能模块在后台页面模块中,管理员通过用户名与密码登录到后台管理页面,在后台管理模块中,又可以分为在线用户管理模块、用户资料管理模块、过滤字段管理模块、聊天记录管理模块、音乐管理模块等几个模块。(1)用户资料管理对每一个已经注册了的用户注册时填写的资料进行增删改查的管理。(2)在线用户管理通过查询数据库,统计在线人数并在界面显示出来,并且对一些非法用户可以实行踢除处理。(3)过滤字段管理设置需要过滤的内容,即设置在用户聊天时不能发送的非法内容,插入到数据库中,经由数据库筛选非法聊天内容并自动屏蔽优化聊天室。(4)聊天记录管理通过查询数据库中的聊天记录表,将聊天记录显示到界面上,需要导出聊天记录时,导出聊天记录,方便备份聊天记录。(6)音乐管理上传音乐文件,即在数据库中对音乐表进行插入数据操作,查询数据库中的音乐文件,并显示到界面,还能删除上传了的音乐文件。后台页面的模块划分图如图7所示:前台页面前台页面用户注册用户登录找回密码聊天室聊天功能设置音乐试听群聊私聊字体字号字体颜色背景颜色聊天表情管理员登录后台管理在线用户管理用户资料管理聊天记录管理音乐管理过滤字段管理图6前台页面模块划分图图7后台页面模块划分图4.2.3系统流程图经过以上的需求分析和初步的设计,可以初步确定本系统有两个角色,分别是普通用户和管理员,前面已经对本系统进行了初步的设计,初步确定了本系统的功能模块,为了更方便、更清晰地展现本系统的功能,下面画出了不同使用者不同权限的流程图。普通用户具有注册登录、音乐试听、聊天、设置背景颜色、退出权限,其中聊天功能中包括群聊、私聊、设置字体字号和颜色、发送表情等权限。普通用户的系统流程图如图8所示:管理员若以普通用户的身份,则具有普通用户的所有权限,若是以管理员的身份登录,则具有登录、用户资料管理、过滤字段管理、在线用户管理、聊天记录管理、音乐管理等权限。管理员的系统流程图如图9所示:普通用户普通用户用户注册注册成功登录聊天室登录成功背景颜色聊天试听音乐字体设置字体设置字体设置字体设置登录失败管理员登录后台管理在线用户管理在线用户管理在线用户管理在线用户管理在线用户管理登录成功图8普通用户系统流程图图9管理员系统流程图5数据库设计5.1数据库概念结构设计经过分析,得出本系统有普通用户和管理员两个角色,本系统还有过滤字段、管理聊天记录、音乐试听等功能,因此,本系统的实体有用户、过滤条件、聊天记录、音乐,这些实体的实体属性图如下列图所示:用户用户用户编号用户名密码用户类型密码提示问题提示答案是否在线图10用户实体属性图过滤条件过滤条件过滤编号过滤字段图11过滤条件实体属性图聊天记录聊天记录记录编号发送人发送时间发送内容接收人图12聊天记录实体属性图歌曲信息歌曲信息音乐编号歌曲名字歌手姓名歌曲路径图13歌曲实体属性图经过系统功能的初步确定和数据库中实体的初步确定,得到了聊天的E-R图如下图所示:用户用户用户名密码聊天用户用户名密码聊天编号发送人发送内容接收人发送时间NM图14聊天E-R图5.2数据库逻辑结构设计聊天室作为网络服务的一个重要应用,它的数据库在整个系统中占据着极其重要的作用,其数据库在网站建设和网络营销中发挥着非常重要的作用。普通的静态网站是没有数据库的,而具有数据库的网站网页我们通常称为动态页面,也就是说拥有数据库的网站页面的内容不是一成不变的,页面上内容或部分内容是可以根据数据库中数据的变化而改变的,是动态生成的,这就使得动态网站内容更灵活,维护更方便,更新更便捷。本系统采所需要的数据库结构如图15所示。图15聊天室关系图5.3数据库物理结构设计数据库的设计一般情况下是以一个已经开发出来的数据库管理系统为基础进行设计的,我们平常开发中比较常用的数据库管理系统有MySQL、SQLServer[15]、Oracle等。在本系统开发中,由于MySQL是一个开源的、快速的、多用户的SQL数据库服务器,而且MySQL能在不同的平台上工作,所以我采用了MySql数据库管理系统作为基础进行数据库设计,建立的数据库名为chatsys的数据库。根据QQ聊天软件的需求,对应的数据库表的设计及其功能如下:用户信息表:存放用户注册时填写的用户信息,如存放用户名、密码密码提示问题、密码提示问题答案等内容;歌曲信息表:存放歌曲的信息,如歌曲名、歌曲歌手等;聊天记录信息表:存放用户在聊天过程中产生的聊天信息;过滤条件信息表:存放要过滤的字段,即存放用于过滤聊天信息的条件,用于屏蔽非法聊天信息;用户信息表如下表所示:表2用户表(user)列名注释类型是否为主键长度是否为空u_id用户IDInt是--否name用户名Varchar否40否pwd密码Varchar否40是type用户类型Int否4是isuse在线状态Tinyint否4是ask密码找回问题Text否--是ans密码找回答案Text否--是过滤条件信息表如下表所示:表3过滤条件表(cont)列名注释类型是否为主键长度是否为空c_id过滤IDInt是--否name过滤字段Varchar否1000是聊天记录信息表如下表所示:表4聊天表(record)列名注释类型是否为主键长度是否为空r_id聊天记录IDInt是--否name聊天内容Varchar否1000是歌曲信息表如下表所示:表5歌曲表(music)列名注释类型是否为主键长度是否为空m_id歌曲IDInt是--否name歌曲名Varchar否100是singer歌手名字Varchar否100是fujian存储路径Varchar否100是6系统详细设计与实现6.1用户注册想要聊天室进行聊天,就必须要拥有一个用于登录的账号,如果没有,就必须注册一个账号,否则无法进入聊天室。注册时,在注册页面输入要填写的信息,点击注册,会对输入的数据进行验证,验证通过了,会在数据库中插入该用户输入的信息,并将用户名存到session中。注册成功以后,页面会自动跳转到登录页面,并且通过session取到注册时用户输入的用户名,并将用户名显示到登录页面登录时要输入的用户名栏。用户注册的流程图如图16所示:注册的核心代码如下所示:publicStringexecute(){ if(user!=null&&!user.getName().equals("")&&user.getName()!=null&&user.getPwd()!=null&&!user.getPwd().equals("")){ userService.add(user); } returnSUCCESS; }6.2用户登陆在登录界面中,需要输入正确的用户名和密码才能够登录。在登录页面有两种不同角色的登录,一种是普通用户登录,一种是管理员登录。普通用户登录时,在登录页面输入普通用户用户名和密码,单击“登录”按钮,系统将会对用户输入的用户名和密码进行验证,通过查询数据库,判断输入的账号是否存在,若不存在,则继续停留在登录页面,若存在,继续判断密码是否正确,若正确,则进入聊天室界面,同时系统将会通过查询数据库查找到该用户的isuse字段,将字段的值改成1(1代表在线状态,0代表离线状态)。当用户离开聊天室时,系统会自动将该用户表user中的isuse字段改成0。管理员登录与普通用户登录差不多,不过管理员登录后,会跳转到后台管理页面。用户登录流程图如图17所示:开始输入注册信息开始输入注册信息验证信息后台数据库插入信息跳转页面完成成功失败开始输入用户名和密码验证信息跳转页面完成成功失败图16用户注册流程图图17用户登陆流程图核心代码如下所示:publicStringexecute(){ if(userService.login(user)!=null){ user=userService.login(user); HttpSessionsession=ServletActionContext.getRequest() .getSession(); List<User>ulist=userService.findIsOnline(); session.getServletContext().setAttribute("ulist",ulist); if(user.isType()){ List<Cont>cont=contService.select(); ServletActionContext.getRequest().getSession().setAttribute("contlist",cont); return"admin"; } user.setIsuse(User.ON_LINE); userService.update(user); session.setAttribute("user",user); List<Record>talking=(List<Record>)session.getServletContext().getAttribute("talking"); if(talking==null){ talking=recordService.getList(); } Recordcoming=newRecord(); coming.setUser(user); coming.setCont(user.getName()+"进入了聊天室!"); talking.add(coming); session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }; returnERROR; }开始开始输入用户名验证信息输入密码提示问题的答案验证信息跳转到登录页面输入新密码完成存在正确不存在错误6.3找回密码用户忘记密码时,可以单击“找回密码”,跳到下一个页面,输入要找回密码的用户的用户名,点击下一步,系统会通过输入的用户名查询该用户名是否存在,若不存在,则跳到登录页面,若存在,根据该用户名找到该用户在注册时填写的密码提示问题,填入密码提示问题的答案,点击下一步,系统会通过查询数据库验证输入的密码提示问题答案是否正确,如果答案正确,则跳到下一个页面,输入新的密码进行密码修改,点击下一步修改密码成功,跳转到登录页面;如果输入的密码提示问题的答案错误,则跳转到登录页面。找回密码的流程图如图18所示:图18找回密码的流程图核心代码如下所示:publicStringexecute(){ Userolduser=userService.findByName(user); if(olduser!=null){ user=olduser; user.setAns(""); returnSUCCESS; } returnERROR; }6.4聊天室用户登录后进入聊天室页面,聊天室页面的功能有群聊私聊、试听在线音乐、设置背景颜色。用户在输入聊天信息时,能够对输入的字体进行设置,设置字体的大小、颜色等,还能发送表情,同时可在聊天页面手动更改页面的背景颜色。用户在发送信息时,系统会通过查询数据库,检查发送的内容是否为非法的内容,若为非法内容,系统将会自动将聊天的内容屏蔽,并在聊天页面显示提示警告内容,若不是非法内容,系统会将聊天的内容显示在界面。在聊天界面中,系统能够进行实时刷新,显示用户聊天发送的内容,同时能够实时显示在线用户,并形成一个在线用户列表显示在界面中。除此之外,在聊天界面中,还有一个退出功能,点击退出,将会退出聊天系统,跳到登录页面,同时将数据库中的user表中的isuse字段该成0(0代表用户处于离线状态,1代表用户处于在线状态)。普通用户聊天室页面的运行效果如图19所示:图19普通用户聊天页面点击在线音乐,将会弹出在线歌曲列表,点击试听,能播放在线歌曲。在后台有一个歌曲管理,能够上传本地的歌曲,通过查询数据库实时刷新,并在界面中将歌曲列表中显示出来,还能通过后台删除在线的歌曲。在线歌曲页面如图20所示:图20音乐试听核心代码如下所示:publicStringexecute(){ if(record!=null){ HttpSessionsession=ServletActionContext.getRequest() .getSession(); List<Record>talking=(List<Record>)session .getServletContext().getAttribute("talking"); Usercauser=(User)session.getAttribute("user"); if(userService.findById(causer).isIsuse()){ record.setChatime(newDate()); record.setUser(causer); record.setSendto(sendto); if(talking==null){ talking=recordService.getList(); } if(record.getCont()!=null&&!record.getCont().equals("")){ if(contService.selectCont(record.getCont())){ recordService.addRecord(record); }else{ record.setCont("**您的消息不合法已被系统屏蔽!**); } talking.add(record); } session.getServletContext().setAttribute("talking",talking); returnSUCCESS; }} returnERROR;}6.5后台管理在用户登录页面,有两种角色,一种是普通用户,一种是管理员。其中普通用户登录在6.2中已经介绍了,现在介绍管理员的功能。在登录页面输入管理员账号和密码,点击登录,系统将会通过查询数据库验证输入的信息,查看数据库是否存在该用户,若存在,密码是否正确,若密码错误,则登录失败,继续停留在登录页面,若密码正确,则跳转到后台管理页面。管理员登录后,登录的是后台管理页面,登录后为为隐身状态,普通用户在在线用户列表中无法看到管理员。管理员登录后台管理页面后,能看到后台管理页面中,管理员能够实现的功能有在线用户管理、用户资料管理、过滤字段管理、聊天记录管理、音乐文件管理。管理员登录后的后台管理页面的运行结果如图21所示:图21管理员登录后的后台管理页面在聊天室聊天时,用户可以发送聊天信息,在聊天时有可能会遇到某些用户发送不文明的语言,这时可以在系统的后台管理页面设置“过滤非法字段”。在后台管理中,可以通过设置过滤字段,过滤聊天信息。设置过滤字段的时候,系统将在数据库插入用户设置的内容,当前台用户发送的内容与后台非法字段设置的内容相同时,系统将会字段屏蔽该信息,并在聊天页面的聊天室发送警告。通过过滤非法字段的设置,能够在一定程度上让聊天室保持一个文明的公共聊天室环境,当然这也不是绝对的保证聊天室的文明,想要拥有一个文明的公共环境,还需要靠用户自觉来维护聊天室的公共文明。后台管理界面中过滤字段管理页面如图22所示图22过滤字段管理页面在聊天室中,用户可以发送聊天信息,在聊天时有可能会遇到某些用户发送不文明的语言,若是管理员觉得用户经常发送不文明语言,想将该用户踢出,在点击踢出后,系统将会在数据库中执行删除该用户的语句。通过在线用户的管理,能够在一定程度上让聊天室保持一个文明的公共聊天室环境。后台管理界面中在线用户管理页面如图23所示:图23在线用户管理页面在聊天室聊天时,用户输入要发送的信息。点击发送时,系统将会在数据库中将用户发送的信息插入到表中,在后台管理页面中,系统通过查询数据库,将用户发送的信息显示到界面中,后台管理员能够删除用户的聊天记录,还能够到处聊天记录,方便备份聊天记录。后台管理界面中聊天记录管理页面如图24所示:图24聊天记录管理界面在前台聊天页面中,有在线音乐试听的功能,在后台管理页面中同样有歌曲管理功能,管理员能够在后台添加歌曲、删除歌曲。后台管理界面中歌曲管理页面如图25所示:图25歌曲管理界面核心代码如下所示:publicStringexecute(){ IntegerUId=Integer.valueOf(ServletActionContext.getRequest().getParameter("user")); Useruser=newUser(); user.setUId(UId); Userolduser=userService.findById(user); if(olduser!=null){ olduser.setIsuse(User.OFF_LINE); userService.update(olduser); List<User>ulist=userService.findIsOnline(); ServletActionContext.getServletContext().setAttribute("ulist",ulist); } returnSUCCESS; }7系统测试7.1系统测试本系统经过需求分析、系统设计、系统详细设计与实现等阶段后得到系统的源程序,现在开始进入到软件测试阶段。软件测试是用来测试一个软件的质量和性能是否符合用户需求,软件是否能够正确运行的重要阶段,是软件开发过程的必不可少的重要组成部分,是软件质量保证的关键步骤。(1)链接测试进行系统测试时,首先要测试系统的链接是否可用。测试系统的链接可以从三方面进行。首先,测试所URL所指向的页面是否完整正确地存在;其次,测试系统中所有URL是否按指定的链接地址链接到正确的页面中;最后,确保本系统上没有单独孤立的页面,所谓单独孤立页面是指没有任何一个页面上有链接是指向该页面。链接测试必须在集成测试阶段完成。(2)表单测试在用户注册登录模块中,需要用到表单提交信息,因此,我们必须保证表单是完整的、正确的,才能利用表单校验提交的信息是否正确。若表单中需要提交的信息只能接受某些特定的字符,测试时可以跳过这些特定的字符,看一看系统是否会报错。若是不能为空,测试时则必须输入值,否则系统会报错[13]。7.2功能测试(1)注册模块测试在注册模块中涉及用户名、密码、提示问题以及提示问题的答案四项数据,分别输入这四项数据,每一项数据均不能为空,若是其中任何一项为空时,则会数据插入失败,页面仍旧停留在注册页面。用户注册模块的测试用例如下图所示:表7-1用户注册模块测试用例编号页面测试输入预计输出实际输出结果01注册页面输入用户名不输入其他内容停留在注册页面停留在注册页面通过02注册页面输入存在的用户名提示用户存在提示用户存在通过03注册页面输入正确数据跳到登录页面跳到登录页面通过输入上面的数据进行测试,只有第三条数据时正确的,能完成注册并进行页面的跳转,剩下的两条因为部分数据为空和用户名已存在,所以错误。(2)登录模块测试在登录模块中涉及了用户名和密码两项数据,在登陆页面输入这两项数据,数据不能为空且必须是数据库中存在的数据,否则会登陆失败,停留在登陆页面,若输入的数据为数据库存在的正确数据,则登录成功,页面自动跳转到聊天页面。用户登录模块的测试用例如下图所示:表7-2用户登录模块测试用例编号页面测试输入预计输出实际输出结果01登录页面只输入用户名,点击登录停留在登录页面停留在登录页面通过02登录页面只输入密码,点击登录停留在登录页面停留在登录页面通过03登录页面随意输入用户名和密码停留在登录页面停留在登录页面通过04登录页面不输入任何内容停留在登录页面停留在登录页面通过05登录页面输入正确的用户名和密码跳转到聊天页面跳转到聊天页面通过输入上面的数据进行测试,输入第五条数据时,因为已经在注册页面注册成功了,所以能够成功登录到聊天界面;输入第一条数据、第二条数据和第四条数据时,因为输入的数据不完整,所以登录失败,仍然停留在登录页面;输入第三条数据时,因为没有在注册页面注册该条数据,即数据库不存在此数据,所以登录失败。(3)找回密码模块测试在找回密码模块中,用户通过输入的用户名找到用户在注册时输入的密码提示问题,要求用户输入正确的密码提示问题的答案,通过此答案修改密码,因此,在找回密码模块涉及到的数据有用户名和密码提示问题的答案两项。用户找回密码模块的测试用例如下图所示:表7-3用户找回密码模块测试用例编号页面测试输入预计输出实际输出结果01输入用户名页面不输入用户名跳到登录页面跳到登录页面通过02输入用户名页面随意输入用户名跳到登录页面跳到登录页面通过03输入用户名页面输入正确的用户名跳到下一页跳到下一页通过04输入问题答案页面不输入任何内容跳到登录页面跳到登录页面通过05输入问题答案页面随意输入答案跳到登录页面跳到登录页面通过06输入问题答案页面输入正确答案跳到下一页跳到下一页通过07输入新密码页面不输入任何内容跳到登录页面跳到登录页面通过08输入新密码页面输入新密码修改成功跳到登录页面跳到登录页面通过点击找回密码链接,跳转到下一个页面,输入要找回密码的用户的用户名,如果用户名输入正确,才能跳到下一个页面,否则会跳转到登录页面。若果输入用户名正确,根据用户名查找到该用户注册时输入的密码提示问题,并将信息显示出来,按照界面信息的提示输入密码提示问题的答案,如果输入的答案正确,就会跳到下一个页面,提示用户输入新的密码,否则页面会跳到登录页面。若用户输入的新密码不为空,则修改密码成功,跳到登录页面。(4)歌曲管理模块测试管理员登录后,进入到后台管理页面,可以对歌曲进行管理,能够删除歌曲,同时也能上传歌曲。歌曲管理模块的测试用例如下图所示:表7-4歌曲管理模块测试用例编号页面测试输入预计输出实际输出结果01歌曲管理页面不输入任何信息提示错误提示错误通过02歌曲管理页面输入歌曲名,不输入其他的提示错误提示错误通过03歌曲管理页面输入正确信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论