




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽宁科技大学毕业设计(论文) 第41页基于CS结构的聊天室系统摘要 计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。尤其是,随着信息时代的来临,人们之间愈来愈趋向于通过网络来交流和传递信息。而聊天系统正是当前人们使用最多的中介。在这个平台上,许多认识或不认识的人们彼此间能够随意的相互交交流。因此,开发和架构这种平台符合时代发展的需要。论文首先对目前国内国际方面的状况进行初步的介绍,接下来详细的介绍了本设计用到的主要技术及相关内容,以下按照软件工程的思想对系统进行调研,技术可行性分析,需求分析及总体设计与功能模块划分。接着是详细设计按照不同的模块有侧重的分析,诸如客户端与服务器的通讯,客户端与客户端的通讯,涉及到本设计主要的流程,用流程图加以说明,并有文字说明。本设计主要采用了黑盒测试与其他设计相结合的方法。主要测试系统是否能完成基本的功能,当输入错误的信息时,提示信息是否合理;发送信息、接收信息是否按预想的设计进行;界面的合理、整洁性。黑盒测试是从用户的角度出发的一种比较好的测试方法。本设计分为四章,第一、二章是绪论与文献综述,介绍了本课题的来源背景、研究和解决的问题以及对社会发展的作用。第三、四章提出了解决问题的方案以及提出具体的方法实现该系统的功能,这两章是最重要的部分。第五章是本设计的结果与评价,对此系统在整体上进行测试,并做出客观的评价。最后是致谢和参考文献,对此设计有帮助的人表示感谢以及自己所参考的重要文献。关键词 聊天系统 ;TCP/IP协议;JSP AbstractThe rapid development of the computer networks has been making a great influence in many fields of human society. In particular, along with information age approaching, people tend to increasingly communicate and transmit information through the network. But the chat system is precisely used by people as an intermediary. On this platform, people can chat each other at random whether they know or not. Therefore, this kind of platform developed and constructed conforms to demanding of the time.First the papers introduce the current domestic and international situation. Next, the main technology and the connected content are introduced in detail. Following is the investigation and study according to the software engineering thought to the system, the demand analysis and the system design and the function module. Next is the design which is according to the different module the analysis, such as client and server communications, client and the client communications. In this part also has the design of the main flow, and flow charts to illustrate and text description .The main design mainly uses the Black-box design and the combination of different methods. The fifth chapter is this design result and the appraisal, regarding this systematically carries on the test in the whole, and makes the objective appraisal,studying and solving problem and the function of the social development. Finally is the acknowledgment and the reference, regarding this designs has the help person to express thanks as well as own refer important literature.Keywords C/S; chating system; TCP / IP protocol; JSP目录摘要IAbstractII第1章 绪论11.1课题研究背景11.2基本技术支持11.2.1 ASP简介11.2.2 HTML简介3第2章 需求分析52.1功能需求52.2 性能需求52.3可行性分析62.3.1技术可行性62.3.2操作可行性72.3.3经济与技术可行性7第3章 总体设计83.1软件运行环境设计83.2功能介绍83.2.1功能结构设计83.2.2系统模块设计93.3 数据库设计10第4章 详细设计114.1用户登录模块的设计114.2新用户注册模块的设计134.3密码修改模块的设计144.4聊天者发言模块设计154.4.1用户聊天时的具体设计164.4.3显示发言信息模块设计184.4.3显示在线用户模块设计194.4.4用户离开聊天室的设计194.5数据库结构设计20第5章 网站测试与性能分析22总结25致谢26参考文献27附录A28附录B35第1章 绪论1.1课题研究背景随着Internet的普及和宽带技术的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的Web应用程序为网民之间提供了一个实时互通信息的功能和场所,这就是聊天室。相信经常上网的朋友对聊天室一定不陌生。早在网络早期就开始盛行了,不论是BBS、IRC都有类似的网上聊天机制。聊天室为网友提供了实时性对话的管道,是网络上极为流行的一项服务。聊天室适用于网上会议或闲聊的场合。聊天室为网友提供了较好的交友环境,网友之间互相以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是“网上交友”之所以如此热门的原因。 1.2基本技术支持1.2.1 ASP简介Microsoft Active Server Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 ASP技术的出现,使动态交互式Web主页设计成为一件轻松愉快的工作。只要几行脚本语句,就能将后台的数据库信息发布到Internet/Intranet上,在编程和网页脚本的可读性方面大大优于传统的技术方案。ASP是 Active Server Pages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。ASP 可以胜任基于微软Web 服务器的各种动态数据发布。 把信息系统纳入Internet/Intranet的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求Web 站点具有很强的动态数据发布能力。 然而,目前Web 的服务,仍以提供“静态”主页内容为主。所谓“静态”,指的就是站点的主页内容是“固定不变”的,无法根据用户的需求和实际情况做出相应的变化。当浏览器通过Internet 的HTTP 协议 向站点的Web服务器申请主页时,站点服务器就会将已 设计好的静态的HTML文件传送给浏览器。若要更新主页的内容,只能用非在线的手动方式更新HTML的文件数 据。 ASP所设计出的是动态主页,可接收用户提交的信息并做出反应,其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。在结构关系上,ASP是通过ODBC与数据库打交道。因此,向上层可兼容各类数据库系统。而对于下层,ASP产生的HTML对客户端的浏览器又有广泛的适应性。但ASP对Web服务器本身有所挑剔,这看起来似乎是一种缺陷,而实际上也许是一种商业策略它只支持微软各种操作系统下的Web服务器, ASP的安装分为Windows NT 和Windows 95 两种情况。 对于NT,IIS及ActiveX Server Pages 都包含在Service Pack 3 中;对于Win95,可使用Visual Studio 服务器构件下的ActiveX Server Pages 安装选项。 安装成功之后,在程序管理器中会找到一个ActiveX Server Pages Roadmap 主页,引导你学习和使用ASP1。 从软件的技术层面看,ASP有如下的特点:1、无需编译ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。2、易于生成使用常规文本编辑器(如WINDOWS下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。3、独立于浏览器用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp主页,在浏览器端见不到正确的页面内容。4、面向对象在ASP脚本中可以方便地引用系统组件和ASP 的内置组件,还能通过定制ActiveX Server Component(ActiveX服务器组件)来扩充功能。5、与任何ActiveX scripting语言兼容除了可使用VBScript和JScript语言进行设计外,还可通过Plug in的方式,使用由第三方所提供的其它scripting语言。6、源程序码不会外漏ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。从应用的层面看,ASP有如下的功能:1、处理由浏览器传送到站点服务器的表单输入。2、访问和编辑服务器端的数据库表。使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。3、读写站点服务器的文件,实现访客计数器、座右铭等功能。4、提供广告轮播器、取得浏览器信息、URL表管理等内置功能。5、由cookies读写用户端的硬盘文件,以记录用户的数据。6、可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。7、使用VBScript或JScript等简易的脚本语言,结合HTML码,快 速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。8、扩充功能的能力强,可通过使用VisualBasic、Java、Visual C 等多种程序语言制作ActiveX Server Component以满足自己的特殊需要2。1.2.2 HTML简介HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。生成一个HTML文档主要有以下三种途径:1、手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。2、通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。3、由Web服务器(或称HTTP 服务器)一方实时动态地生成。HTML语言是通过利用各种标记(tags)来标识文档的结构以及标识超链(Hyperlink)的信息。虽然HTML语言描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而只是建议Web浏览器(如Mosaics,Netscape等)应该如何显示和排列这些信息,最终在用户面前的显示结果取决于Web浏览器本身的显示风格及其对标记的解释能力。这就是为什么同一文档在不同的浏览器中展示的效果会不一样。目前HTML语言的版本是2.0,它是基于SGML(Standard Generalized Markup Language)标准广义置标语言,是一套用来描述数字化文档的结构并管理其内容的复杂的规范)中的一个子集演变而来的。虽然下一版本的标准HTML3.0(也称为HTML+)正在制订之中,但其中某些部分的实验性标准草案已被广泛采用,大多优秀的Web浏览器(如Netscape等)都能解释HTML3.0中的部分新标记,因此在本章中介绍的一些HTML3.0新标记均已被多数浏览器所接受3。第2章 需求分析2.1功能需求通过聊天室,用户可以自定义个人的数据,可以以各种不同的身份实时发送聊天信息,可以指定聊天的对象,发送的信息也可以进行各种设置,甚至还可以设置聊天的表情和贴图。功能更为强大的聊天室不仅提供了普通的文字功能,还支持视频和音频聊天、传送文件等功能。聊天室的特点就是要求能够实时心事出聊天者所谈的内容。所谓“实时”就是指在同一个聊天室的使用者,可以在短时间内立刻看到其它人的发言,这与网络上常见的留言板和讨论区有很大的不同。现在用ASP可以快速、简便的设计出一个可以互相对话的典型聊天室程序,几十行的HTML代码加上ASP程序,就可以快速的构建出最基本的聊天室了。但是想让聊天室功能更强大,吸引更多的网友,还是需要花一番心思的。网上聊天室作为用户最喜欢的Web应用程序,其特点就是强调信息的实时性和信息发布方式的多样性。从功能上讲,网上聊天室系统与论坛的系统非常相似,但聊天室系统有自己的特点,它强调信息的实时性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。2.2 性能需求 开发一个完整的聊天室要用到很多知识。在开发以前首先要知道自己开发的程序要满足哪些要求及实现的功能是什么。设计一个功能完善的聊天室系统,工作量是非常庞大的,但设计时一般有以下几个问题需要特别注意。在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示实时谈话内容应以什么方式存储在服务器中。ASP可以用三种形式实现聊天内容的存取:1、用全局变量Application和Session对象实现。这种形式速度快、效果好,但系统资源消耗太大。2、用读写数据库方式实现。这种方法就相对比较简明,但服务器频繁读写数据库负担很重。3、用读写文本文件完成。这种方法适合简单的聊天室。由于ASP对文本文件操作的指令远不如ADO提供的对数据库操作的指令多,所以利用ADO,ASP能灵活地操作数据库,如插入、删除、更新、查询等。本设计选择了Access数据库来存储谈话的内容。聊天室设计性能好坏的另一个重要的标志就是聊天室成员的动态刷新。因为许多用户在退出聊天室的时候,并不是标准的退出,也就是说并不是从“退出”链接退出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。因此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言已经超时,如果超时就自动将该用户删除。但是每次用户发言的时候,必须把发言时间写入数据库。2.3可行性分析2.3.1技术可行性随着计算机软件的发展,计算机硬件的逐渐优化,结合网络技术的不断深入,各个商家为了争夺在市场上的有利地位,都不断地发展更加能够面向更多平台的语言与技术。人们的相互沟通,必然会导致大家向着同一个方向发展,这必然要求有统一规范的标准的出台。而对数据库的操作,安全、适合更多的应用以及更强大的功能提出了更高的要求。本聊天工具使用了多线程。一旦服务器发现一个新的客户端与之建立连接,就马上新建一个线程与该客户端进行通信。用多线程的好处在于可以同时处理多个线程连接,不会出现由于数据排队等待而发生的延迟或者丢失,可以很好地利用系统的性能。服务器为每一个连接着的客户建立一个线程,为了同时响应多个客户端,需设计一个主线程来启动服务器端的多线程。主线程与进程结构类似,它在获得新连接时生成一个线程来处理这个连接。线程调度速度快,占用资源少,可共享进程空间中的数据,因此服务器的响应速度快,且IO吞吐量较大。多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。2.3.2操作可行性网络聊天系统并不是一个很复杂的软件,不需要专业人员的指导,就像使用QQ软件一样。由于现代网络发展以及信息更新速度加快,所以需要企业组织内部以最快的速度获取信息然后传播开来,信息扩散的迅速话必须要求工作节奏的快速化。信息量获取得快慢与否及丰富与否都决定了个人乃至公司的发展。召开会议、下达指示、发送消息等,即时聊天系统都必不可少。加之界面设计的简约化,操作的简易化,在公司、企业内部应该是行得通的。系统是为一个团体设计的,考虑到了个人的方面。综合考虑,工具能够使每个操作者得心应手。2.3.3经济与技术可行性我们在开发过程中用到两台电脑,80G硬盘,512M内存,因特尔微处理器,ADSL连接外网。Windows XP操作系统,员工两人,开发时间一个季度。可完全承担开发任务,能够通过较小的投入得到较大的回报。因此以达到经济可行性需求,能够有比较理想的回报。系统的使用将在用户与企业之间,工作人员与工作人员之间建立有效的沟通渠道,避免了更多的烦恼以及不便因素。从以往的杂乱无章到以后的有条不紊,环境的改观会引起一系列的其他方面的改观,诸如员工的工作动力,办公环境的改观,这些因素都是企业办公中不可忽视的。由此引起的办事效率的提高,沟通的增强,团队的和谐,将会直接带来经济效益的提高,引导企业走向前发展的道路。第3章 总体设计本聊天工具采用客户机/服务器(C/S)的模式来设计,是一个3层的C/S结构:数据库服务器应用程序服务器应用程序客户端。3.1软件运行环境设计 为了保证系统运行的效率和可靠性,服务器应具有较高的软硬件配置,客户端的要求不需要太高,此应用程序可广泛运行于Internet,也适用于内部的局域网。运行要求如下:软件环境1、客户端:Windows98、Internet Explorer4.0以上版本。2、服务器端: Windows2000XP,IIS 5.0及其以上版本。3、数据库: 采用Access 数据库,运行于服务器端。硬件环境1、服务器: CPU要求PIII800以上,内存256 MB以上。2、客户机: CPU要求200 MMX以上,内存64 MB以上。3.2功能介绍3.2.1功能结构设计系统的模块分别是服务器模块,用户端模块。各模块再划分出自身相应的功能。聊天工具按如下过程完成通信:向服务器注册,告知服务器它在监听某主题;注册后,向服务器发送消息;服务器再把消息发送给所有监听此主题的客户。根据网络聊天系统的模块划分,具体的层次方框图如下图3.1所示:聊天系统服务器端客户端建立连接操作数据库新建用户登录聊天图3.1功能结构图系统的总体设计对整个系统完成起到了至关重要的作用,系统的模块分别是服务器模块,用户端模块,各模块再划分出自身相应的功能。本系统主要完成用户的注册、用户登录、新用户注册,密码修改,用户聊天等功能,通过流程图可以很清晰的表现出它们之间的关系以及结构。3.2.2系统模块设计根据需求分析和性能分析,对系统各功能进行集中、分块,按照结构化程序设计的要求,本功能的系统功能模块图如图3.2所示。聊天室系统用户登录 显示在线用户用户退出聊天室显示聊天信 息聊天者发言图3.2 功能模块图其中用户登录功能的数据流图如图3.3所示用户信息用户登录连接数据库校验用户信息校验成功聊天图3.3 用户登录数据流程图3.3 数据库设计本系统采用Access数据库为数据库开发工具,建立一个数据库zhuce,其中包括2个表。使用的数据表有:新用户注册表(zhuce)、在线用户表(onlineuser)。下面介绍各个表的主要功能以及具体信息。1、新用户注册表(zhuce)其中,user表示用户登陆的用户名;password表示登陆的密码;sex表示用户性别;email表示用户信箱;homefrom主页;qq表示oicq;ipaddress表示地址。表3.1 新用户注册表zhuce字段.字段名类型备 注可否为空UserPasswordSexEmailHomefromQqipaddress用户名用户密码性别信箱主页OICQ地址Varchar(50)Varchar(50)Char(1)Varchar(50)Varchar(50)Varchar(50)Char(50)主键0 代表男, 1 代表女否否否否其中,user表示用户登陆的用户名;password表示登陆的密码;sex表示用户性别;email表示用户信箱;homefrom主页;qq表示oicq;ipaddress表示地址。2、在线用户表(onlineuser)此表记录了用户的用户编号(id)、用户名(user)以及用户地址(ipaddres)。id为主键。表3.2 在线用户表onlineuserNo.字段名类型宽度主键说明123iduseripaddresVarcheVarcharVarchar5050501用户编号用户名用户地址第4章 详细设计详细设计是整个设计过程中,最重要的步骤之一。下面就分以下几个部分对系统进行详细设计:1、用户登陆模块设计2、聊天者发言模块设计3、显示发言信息模块设计4、显示在线用户模块设计4.1用户登录模块的设计用户登录是首先进入主界面,如图4.1所示:图4.1登陆界面输入用户名和密码点击登录,便进入聊天界面,登录功能实现所需代码如下:用此语句获取登录用户的用户名sUserName = request.getParameter(UserName);用此语句获取登录用户的用户密码:sUserPassword1 = request.getParameter(UserPassword);然后以用户名为条件查询数据库,以便判断该用户名是否存在strSql=select * from users where UserName like +sUserName+;使用rs = ExecuteDB.exeQuery(strSql);来得到满足条件的结果集。如果登录的用户名存在则获取该用户名在数据库中对应的其他信息,其代码如下: sUserPassword2 = rs.getString(UserPassword); sSex = rs.getString(Sex); sNickName = rs.getString(NickName);接着判断登录密码是否正确if(sUserPassword1.equals(sUserPassword2)。将用户信息保存到session中:session.setAttribute(UserName,sUserName);session.setAttribute(Sex,sSex);session.setAttribute(NickName,sNickName);在登陆界面的下方由三个常用功能:通过 当前本聊天室共有可以知道有多少人在聊天 通过 可以修改用户密码 通过 在登陆界面使用用户名和密码进行登陆操作,并且使用数据库语句进行连接,并做判断,实现用户登陆功能的具体流程图如下:图4.2 登录具体流程图4.2新用户注册模块的设计用户注册与数据库中用户表(tuser)想对相应。其中用户名要求唯一,两次密码输入相同以及电子邮件的填写。注册页面如图4.3图4.3注册页面在注册模块中,用户需要录入用户名、用户密码、二次输入用户密码以及用户电子邮箱。要求用户名必须是唯一的,并且不能有数字,字母以及特殊符号,输入的两次密码必须是统一的,性别使用了单选按钮,其中账号和密码是必须填写的。在此模块中数据库连接时非常重要的,具体代码如下:set conn=server.createobject(ADODB.connection) 建立ADODB连接conn.opendriver=Microsoftaccessdriver(*.mdb);dbq=&server.mappath(liaotianshi.mdb) 打开数据源liaotianshi.mdb exec=select * from onlineuserset rs=server.createobject(ADODB.Recordset) 建立记录对象rs rs.open exec,conn,1,1 打开数据库里的onlineuser表4.3密码修改模块的设计当用户认为密码不安全或想更换密码的情况下可以随意修改密码,修改密码的登入界面如图4.4图4.4密码修改界面在此模块中以用户账号为条件查询数据库,并通过账号原始密码更改用户信息,在数据库中删除旧密码储存新密码,并两次输入新密码,通过修改按钮提交新的数据到数据库。用此条语句转到修改密码的页面上:用户密码修改4.4聊天者发言模块设计考虑到聊天室制作的复杂性和毕业设计的时间问题,本次设计的聊天室主要实现了以下的功能:1、用户登录聊天室2、聊天者把语句写入数据库3、修改聊天语句的颜色4、改变聊天对象5、设置发言人的表情6、浏览器不断的对数据库进行刷新、读取7、实时更新在线的用户聊天界面如下图所示:图4.5 聊天界面1、右边下面的框架,实现聊天者发送信息,打开的网页文件为chatform.asp。2、左边框架的左边部分,用来显示在线聊天用户的信息,打开的网页文件为online.asp。3、右边上面框架的右边部分,用来显示聊天者发言的信息。4. 4.1用户聊天时的具体设计该模块的主要作用是实现聊天者一各种表情、各种身份、不同颜色的文字对不同的用户发送聊天信息,实现发言功能的程序也是chatadd1.asp。当用户以正确的用户名和密码登陆后就可以通过聊天者发言的功能,发送聊天信息。1、聊天者以默认的设置发言聊天室默认的发言设置是:(1)字体:黑色字体(2)发言对象:大家(3)表情:微笑2、以用户自定义的方式发言使用用户自定义的方式发言可以定义的功能如下:(1)发言文字颜色的设置用户发言前可以从颜色的下拉列表中选择某种颜色后,再进行发言,将来网页中显示的发言内容的颜色即为用户选择的颜色,颜色的实现主要应用了单选按钮的控件。 部分代码如下:颜色option style=color:# value=爱的暗示(2)发言对象的设置用户发言前可以从对象下拉列表中选择某个对象后,再进行发言,将来网页中显示的发言内容是专门指向用户选择的对象。选择用户发言对象的这段程序实现了“保值”的功能,这是开发ASP程序中需要特别注意的一点。所谓“保值”,就是指当用户从下拉列表中选择某个选项后,通过提交按钮向服务器提交数据后的页面中能够继续保持显示用户所选择的选项。 用此语句表明聊天对象的人数当前本聊天室共有人在聊天(3)发言表情的设置用户发言前可以从表情下拉列表中选择某个表情后,再进行发言,将来网页中显示的发言人的表情就是用户选择的表情。在chatadd1.asp程序中,用于实现用户自定义发言表情的部分代码如下:表情请选择笑着高兴地含情脉脉当用户自定义了发言文字的颜色、发言的表情、发言的对象并输入了发言内容后,用户就可以点击发言按钮将发言的内容以记录的形式提交到服务器,或者点击复原按钮取消本次发言。其中需要值得注意的是聊天用户客户端IP地址的获得方法,由于IP地址并不需要显示在网页中,所以程序中使用“hidden”隐藏域来存储用户客户端IP地址并最后提交到服务器的数据库中。4.4.2显示发言信息模块设计 把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,屏幕显示出聊天室的用户登陆界面。用户输入用户名及密码正确登陆后即可进行聊天,按发送按钮时,用户的发言便会将用户的IP地址、发言文字的颜色、发言的表情、发言的对象以及发言的内容一起写入聊天表中。 接下来,用户设计所关心的就是怎样将发言的信息显示在浏览器中,而且还要实现自动刷新最新的聊天内容。1、显示发言信息模块与聊天者发言信息模块的关系需要注意的是,发言之后,用户可以实现发言的内容并不是立即出现在屏幕上的,而是在很短暂的是延迟后才能看到发言的内容。那是因为发言程序本身负责的纯粹是把数据写入数据库,而不会向客户端返回任何东西。聊天室还需要一个重要的程序,这个程序自动地、不断地读取数据库中最新的记录,并把这些记录显示在所有用户的浏览器上。这个程序唯一的任务是读取聊天表中的数据,把数据都显示出来。无论客户是否发言,无论客户对谁说话,无论客户选择什么表情与颜色,即使这个聊天室没有一个用户说话,这个程序也是不段的读取聊天表中的数据,每N秒钟刷新一次,这个N是由编程者决定的。由此可知,登陆、发言部分与自动刷新部分本身并没有任何联系,二者之间的数据传递是通过写数据库和读数据库操作实现的。2、实现聊天信息显示的关键技术(1)记录的显示顺序程序将发言信息写入数据库的时候,记录是不断往数据表的尾部增加的。因此,用户必须知道哪一句话是最新的,哪一句话是在前面说的。在聊天表中,有一个自动编号的字段ID,这个字段非常有用。ID最大的记录是最新输入的记录,每添加一个记录,ID自动加1。由此,用户可通过ID来对用户发言的信息进行从新到旧的、一句一句的排序输出。众所周知,在SQL的Select语句中有一个Order By子句,功能是按一列或多列对查询结果进行升序或降序排序。Select查询语句如果不用Order By子句,那么默认为升序输出,于是用户就会看到最旧的发言总是在前面显示,而最新的则跑到最后面显示,这当然不 是设计着所希望看到的。(2)设置显示最新记录的范围由于用户的聊天信息不断的向聊天表追加新的内容,数据库将会变得越来越大。为了获得较快的信息读取和显示 速度,用户不可能也不必要读取全部的聊天信息并将这些信息显示出来,秩序要设计看到最新的N句话,比如最新的50句话就够了。4.4.3显示在线用户模块设计每当一个新的用户进入聊天室后,系统应当将用户显示在在线聊天室名单中,并将当前用户的颜色以不同于其他用户的颜色显示。实现显示在线用户功能的程序是online.asp。 在本程序中最为关键的就是怎样实现将当前用户的颜色以不同于其他用户的颜色显示,这里是通过将在在线用户表中的名字字段和session(“user”)获得的用户名进行比较,在比较的循环中,如果某个记录的名字和当前用户的名字一致时,就将该用户在在线名单中以红色表示,而其他的用户以黑色表示7。由于在线用户也需要不断的自动刷新,所以程序中同样也设置自动刷新的功能。4.4.4用户离开聊天室的设计 当用户离开聊天室的时候,除了让页面中显示相应地离开信息,还应当实现将用户从聊天室的在线名单中删除。例如,用户“天使”准备离开聊天室,点击离开聊天室按钮,用户可以看到管理员发送的离开提示,并且更新在线用户的名单。用于实现用户离开聊天室的程序段如下所示:sql=select top 1 * from chatinfo order by puttime ascrs.open sql,conn,0,3rs(saycontent)=&session(userid)&离开了聊天室,欢迎下次再来!rs(ispublic)=truers(puttime)=now()rs.updaters.close这里比较关键的一个技术就是,当用户离开聊天室后怎样动态地更新显示聊天室中在线的名单。程序中谁了一个session(“user”)对象,用于存储用户的姓名信息。当用户没有退出聊天室之前,其中一直存储用户的姓名信息。如果用户点击了离开聊天室按钮,首先执行SQL删除命令将当前用户从在线用户表中删除。当删除了当前用户在在线用户表中的记录后,将session(“user”)对象的值清空,以便将来动态地更新聊天室中在线的名单6。4.5数据库结构设计 数据库在一个信息管理系统中占有非常重要的地位,数据设计的优势将直接对应用系统的效率以及实现的效果产生影响。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。本系统设计采用了Access 数据库设计。设计了一个数据库chatdb.mdb,用来存储聊天者发言的信息、用户的信息以及在线用户的信息7。以下是数据库的连接设计,本系统的数据库连接采用了OLE DB数据库连接字符串的显示定义,这样做的好处在于,使用DSN 数据源实现对数据库的访问要经过额外的软件层来完成,而使用连接字符串可以直接实现这种连接,代码如下8:dim conn,rs,sqldbpath=server.mappath(chatdb/chatdb.asp)set conn=server.createobject(adodb.connection)conn.open PROVIDER=Microsoft.jet.OLEDB.4.0;data source=&dbpathset rs=server.createobject(adodb.recordset)说明:(1)定义数据库的相对路径和数据库的驱动程序方法如下9;dbpath=server.mappath(chatdb/chatdb.asp)set conn=server.createobject(adodb.connection)conn.open PROVIDER=Microsoft.jet.OLEDB.4.0;data source=&dbpath(2)定义一个数据库对象的方法如下;Set Conn=Server.CreateObject(ADODB.Connection)(3)定义数据库打开的方法如下;Conn.open Connstr其中 Connstr 确定了数据库文件的路径和数据库连接使用的驱动程序;Conn的含义是定义了一个变量用来存放数据库连接所创建的对象;Conn.open Connstr语句则真正实现了数据库的连接10。第5章 网站测试与性能分析设计测试方案是测试阶段的关键技术问题。在软件开发的初期使用白盒测试技术进行单元测试,而在开发的后期着重对软件的功能进行测试因此采用黑盒测试技术。在初期每做完一个单元都进行了测试,服务器端与客户端建立好连接以后进入可视化界面,如果测试新建用户功能则点击新建按扭输入数据,向服务器提交信息,如果出现预期的结果并返回icqno值说明该单元成功不必进行调试,如果出错则进入调试阶段,其他单元做相似的处理11。在测试的阶段遇到了很多问题,起初建立服务器与客户端连接时先运行了客户端后运行服务器以至于无法连接不能登上登录界面,经过思考先运行服务器就行了,新建用户时也出现了注册信息写不进数据库,抛出false new异常,经过调试发现是JDBC连接数据库的加载数据库驱动错误,经过细心调试也终于实现了新建用户功能。我在编写完每一个模块后,都进行测试与调试,尤其在更新用户信息时遇到了很大的问题,当重复加同一个好友时不能提示信息并进行覆盖,更新没有做到当好友信息修改了以后,使好友信息自动在用户端改正。在设计后期主要进行功能测试,输入以有的icqno和不存在的icqno分别进行测试观察结果是否与预期结果相符并做相应的处理。性能方面看软件的运行速度,如果速度过慢就应该分析一下系统的整体设计是否冗余过大并进行相应的处理,做去除重复语句等处理。设计后期的功能测试,用户登录,新建用户,查看好友资料,直接加友模块都已实现,但是发送接收消息还不稳定,发送消息只能传送字母和数字,不能传送汉字能发送但接收到了的有的汉字正确有的是乱码,这一点让我很困惑,接收信息有时会显示陌生人来信息,而不能读传来了信息。测试得出来了结果对以后的开发是非常宝贵的经验,经过仔细的调试、标识把错误改正记录下来,这些记录是我们日后开发的重要经验总结。白盒测试与黑盒测试对我们测试我们的设计是非常有效可行的测试方法,选定一些数据进行相应的测试是最简单和最使用的,也是白盒,黑盒测试的核心12。模块测试也叫单元测试,目的是保证每一个模块作为一个单元能正确运行,本测试所发现的往往是编码和详细设计的错误,主要评价模块的下述五个特点:模块接口、 局部数据结构、重要的执行路径、出错处理通路、影响上述各方面特性的边界条件。模块测试主要由代码审查和软件测试两部分组成。集成测试包括系统测试和子系统测试。集成测试是组装软件的系统技术,主要目标是发现与接口有关的问题。集成测试有两种方法:非渐增式和渐增式,但比较而言,渐增式方法比较好,因为:编写的测试软件较少,开销较小。1、较早地发现模块间的接口错误。2、错误位置容易判断。3、测试更彻底。因此,本系统集成测试采用渐增式测试中的混合法,即对软件结构中较上层使用自顶而下的测试方法,而对软件结构中较下层,使用的是自底向上方法,两者结合,这是对模块较多时测试的一种折衷方法。验收测试这一步是验证软件的有效性。目的是向未来的用户表明系统能够象预定的那样工作,验收测试一般使用黑盒测试法,验收测试有两种可能的结果如下13:功能和特性与用户的要求有差距。1、功能和性能与用户要求一致,软件是可以接受的。2、这个阶段发现的问题往往和需求分析阶段的差距有关。所谓平行运行就是同时运行。新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。目的有:1、可以在准生产环境中运行新系统而有不冒风险;2、用户能有一段熟悉新系统的时间;3、可以验证用户指南和使用手册之类的文档;4、能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。以下以管理员登录为例描述模块测试过程13:用例名称:管理登录测试基本描述:通过登录拥有网站的管理权限。1、测试方案:分别使用不同的登录方法进行登录,从而查看系统是否相应的错误和成功提示。用正确密码登录已存在账号;2、用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国桑叶项目创业计划书
- 中国肉用仔鸡饲料项目创业计划书
- 中国康复医疗机械项目创业计划书
- 中国计算机系统排除故障项目创业计划书
- 中国干香菇项目创业计划书
- 中国鹅养殖业项目创业计划书
- 乙炔钢瓶试题及答案
- 乐山保安考试题及答案
- 家具定制配送安装合同协议
- 小学五年级上册作文
- 2025年新高考2卷(新课标Ⅱ卷)英语试卷
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 人教版高一下学期期末考试数学试卷与答案解析(共五套)
- MOOC 思辨式英文写作-南开大学 中国大学慕课答案
- T∕ACSC 01-2022 辅助生殖医学中心建设标准(高清最新版)
- 《白内障》ppt课件
- Resume(简历英文版)
- 报价单模板(中英文
- 股骨颈骨折中医诊疗方案
- 苯甲苯连续精馏装置工艺设计 精馏塔设计说明书 化工设计
- 高中通用技术会考(学业水平测试)复习大纲
评论
0/150
提交评论