《论ASP网络聊天室的设计和实现.doc》由会员分享,可在线阅读,更多相关《论ASP网络聊天室的设计和实现.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、论ASP网络聊天室的设计和实现 专 业 计算机信息管理 学 生 姓 名 李荣荣 指导教师姓名 陈凯斌 提 交 日 期 2012年4月8日 论ASP网络聊天室的设计和实现 【摘 要】网络聊天室是用户比较喜欢的一种WEB应用程序,借助聊天室和他的留言系统,用户可以及时互通信息,交流思想.本系统主要采用了基于B/S(Browser/Server,即浏览器/服务器)模式开发的简易聊天室系统。本系统是采用了ASP技术开发的动态网站。系统开发主要包括前台界面及其功能设计和后台数据库设计(即发言区管理和用户管理)。本系统采用了Microsoft ASP 作为开发工具,后台数据库采用了ACESS数据库设计,利
2、用ADO数据库访问技术实现对数据库的各种管理操作,实现了聊天室的聊天功能和显示在线聊天用户信息的功能。在设计过程中,首先建立了系统的应用模型,然后在此基础上再进行需求分析逐步进行各功能的设计实现。在详细设计时经过不断的修正和完善,经过测试阶段反复调试和验证,最终形成达到了设计要求的可行系统。【关键词】 聊天室 数据库 ADO Application Session Web Chat rooms Design and Realize User management 【Abstract】The network chat room is one kind of WEB application pro
3、cedure which the user comparison likes, with the aid of the chat room and his message system, the user may promptly exchange the information, the exchange thought. This system mainly based on B/S (Browser/Server, namely browser / server) pattern development simple chat room system. This system was u
4、ses the ASP technology development dynamic website. The system development mainly includes the onstage contact surface and its the functional design and the backstage database design.The system used Microsoft ASP as the development tool. The backstage database used the ACESS database design. We used
5、 the ADO database visit technology realization to the database each kind of management operation, realized the chat room chats the function and demonstrates on-line chatted the user information function. In the design project, first established the system application model, then carried on the deman
6、d analysis again in this foundation gradually carries on various functions the design and realization. When detailed design passes through the unceasing revision and the consummation, repeatedly debugs and the confirmation after the test stage, finally formed achieves the design request feasible sys
7、tem.【Keywords】 Chat room Database ADO Application Session 目 录引言 11. 聊天室系统需求分析 11.1 功能要求 11.2 性能要求22. 系统运行环境33. 聊天室系统整体模块图34. ASP(ActiveServerPage)简介45. ASP访问数据库方法76. 聊天室用户管理区的详细设计与实现9 6.1 聊天室系统的数据库设计9 6.1.1 聊天室系统用户组册登录模块的设计10 6.1.2 聊天室系统用户发言模块设计126.1.3聊天室系统实时在线用户模块设计136.1.4聊天室系统在线用户离开模块设计146.1.5聊天室系
8、统用户留言管理模块设计156.2 聊天室留言板系统的数据库设计 166.2.1聊天室留言板数据库联接17 6.2.2 聊天室留言板留言签写模块设计17 6.2.3聊天室留言板编辑和回复模块设计186.2.4聊天室留言板留言管理模块设计207. 结束语228.参考文献 239.致谢23引言 随着Internet的普及和宽带技术的的成熟,越来越多的用户进入到网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效。与此同时,一个新型的WEB应用程序提供了一个即使互通信息的功能和场所,这就是聊天室及留言其系统。1.需求分析 1.1功能要求 通过聊天室,用户可以自
9、定义个人资料,可以以不同的身份实时发送聊天信息,可以指定聊天的对象,发送信息也可以进行各种设置包括聊天者的表情及文字颜色,功能更强大的聊天室不仅提供了文字聊天功能还支持视频和音频、传送文件、留言板等功能。聊天室的特点就是要求能够进行实时显示出聊天者所谈的内容。所谓“实时”就是指在同一个聊天室的不同使用者,可以在短时间里立刻看到其他人的发言,这与我们所说的论坛有很大的不同。在ASP没有得到广泛应用之前,聊天室大多是用CGI 程序或者JAVA开发的APPLET维护的,要开发一个聊天室系统是很费时费力的。现在我们可以使用ASP快速、简单地设计出一个可以相互对话的典型聊天室程序,我们使用HTML代码加
10、上ASP程序就可以构建出最基本的聊天室了。网上聊天室作为用户的最为喜欢的WEB应用程序,其特点就是强调信息的即使性和信息发布式的多样性。从功能上讲,网上聊天室系统与论坛系统非常相似,但聊天室系统有自己的特点。它强调信息的即使性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。1.2性能要求开发一个完整的聊天室要用到许许多知识,在开发以前首先要知道开发的程序要满足哪些要求及实现的功能是什么。设计一个功能完善的聊天系统,工作量是非常庞大的,但设计时一般有以下几个问题需要我们注意。1.2.1系统需要解决的主要问题在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示即使
11、谈话的内容应以什么方式存储在服务器中。ASP可以用三中形式实现聊天室内容的存取:1) 用全局变量Alication和Session对象实现,这种形式速度快、效果好,但系统资源消耗太大。2) 用读写数据的方法实现。这种方法相对比简明,但服务器频繁读写数据库负担很重3) 用读写文本文件完成.这种方法适合简单的聊天室。由于ASP对文本文件操作的指令远不如ADO提供的对数据库操作的指令多,所以利用ADO,ASP能灵活的操作数据库,如插入、删除、更新、查询等等。本设计选择了ACESS数据库来存储谈话的内容。聊天室设计的性能的好坏的另一个重要标志就是聊天室成员的动态刷新。因为许多用户在退出聊天室的时候并不
12、是标准的退出也就是说并不从退出连接推出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。因此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言到现在已经超时,如果超时就自动将用户删除。但是每次用户发言的时候必须把发言时间写入数据库。实现页面自动刷新的关键设置就是在页面的和之间加入以下代码:这是一条最简单的页面自动刷新HTML脚本.语句设置页面自动刷新的时间为4s,由Content属性设置。1.2.2系统具备的功能 本聊天室主要实现了以下功能 用户注册登陆聊天室 聊天室把语句写入数据库 修改聊天语句的颜色 改变聊天对象 设置发言人的表情 浏览器不断的对数据库进
13、行刷新 读取 实时更新在线的用户 对用户留言进行查看和管理 BBS留言、回复、管理功能 2. 软件的运行环境为了保证系统运行的效率和可靠性,服务器端应具有较高的软硬件配置,客户端的要求不需要很高.此应用程序可广泛运行于Internet,也适用于内部的局域网,运行要求如下: 2.1 软件环境: 客户端: WINDOWS98 Internet EXPLORER 4.0以上版本. 服务器端: WINDOWS 2000/XP, IIS5.0及其以上版本 数据库: 采用ACESS数据库,运行于服务器端2.2 硬件环境: 服务器: CPU 要求PIII800以上,内存256MB以上. 客户机: CPU 要
14、求2000MX以上,内存64MB以上. 3. 聊天室系统整体模块流程图 聊天室登录系统留言板留言系统聊天室聊天系统 留言板用户编辑留言板用户管理留言板用户回复留言板用户留言用户留言管理用户退出聊天室显示在线用户显示聊天信息聊天者发言用户注册登录三 A S4.ASP (ActiveServerPage)简 介 动态服务器页面ASP(ActiveServerPage)是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。4.1 ASP访问原理ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WE
15、B服务器程序。当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveXDataObjects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。4.2 ASP页面的结构ASP的程序代码简单、通用,文件名由.asp
16、结尾,ASP文件通常由四部分构成:1.标准的HTML标记:所有的HTML标记均可使用。2.ASP语法命令:位于标签内的ASP代码。3.服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。4.脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。4.3 ASP的运行环境目前ASP可运行在三种环境下。1)WINDOWSNTserver4.0运行IIS3.0(InternetInformationServer)以上。2)WINDOWSNTworkstation4.0运行Pe
17、erWebServer3.0以上。3)WINDOWS95/98运行PWS(PersonalWebServer)。其中以NTserver上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。4.4 ASP的内建对象ASP提供了六个内建对象,供用户直接调用:1.Application对象:Application对象被用来存储一个应用中所有用户共享的信息,比如你可以利用Application对象来在你的站点的不同用户间传递信息。2.Session对象:Session对象被用来存储一个普通用户其滞留期间的信息。 3.Request对象:从用户端取得信息传递给服务器,是A
18、SP读取用户输入的主要方法。4.Response对象:服务器将输出内容发送到用户端。5.Server对象:提供对服务器有关方法和属性的访问,最常用的方法是创建ACTIVE组件的实例(server.createObject)。其他方法用于将URL或HTML编成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。6. ObjectContext对象:可以被用来控制(ActiveServerPage)的执行,用来进行事务处理。此项功能需得到MTS(MicrosoftTranscationServer)管理的支持。4.5 ASP的主要内置组件:1.AdRotator组件:用来按指定计划在同一页上自
19、动轮换显示广告,用于WWW上日益重要的广告服务。2.BrowserCapabilities组件:确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。3.DatabaseAccess组件:提供ADO(ActiveXDataObjects)来访问支持ODBC的数据库。4.FileAccess组件:提供对服务器端文件的读写功能。5.ContentLinking组件:生成WEB页内容列表,并将各页顺序连接,用于制作导航条。此外,还可安装Myinfo、Counters、ContentRotator、PageCount等组件,用户也可自行编制Actiive组件,以提高系统的实用性。4.6Da
20、tabaseAccess组件ADOWWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveXServerComponent),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:如SYBASE、ORACLE、INFORMIX、SQLSERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。ADO组件主要提供了以下七个对象和四个集合来访问数据库。1.Connection对象:建立与后台数据库的连接。2.Command对象:执行SQL指令,访问数据库。3.P
21、arameters对象和Parameters集合:为Command对象提供数据和参数。4.RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。5.Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功能。6.Property对象和Properties集合:提供有关信息,供Connection、Command、RecordSet、Field对象使用。7.Error对象和Errors集合:提供访问数据库时的错误信息。5. ASP访问数据库方法 在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:要与ODBC兼容的数据库进行连接,必须建
22、立一个DSN(date source name)用以定位和标识特定的ODBC兼容数据库. 通过ODBC,用户可以选择希望创建的DSN的类型:用户,系统或文件.用户和系统DSN存储在windowsNT/2000/XP注册表中.系统DSN允许所有的用户登陆到特定的服务器上去访问数据库,而用户DSN使用适当的安全身份证明限制数据库到特定用户的连接,文件DSN 用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN文件,可以轻易的从一个服务器转移到另一个服务器. 5.1 使用ADO组件查询WEB数据库 1.调用Server.CreateObject方法取得“ADODB.Connection
23、”的实例,再使用Open方法打开数据库:conn=Server.CreateObject(“ADODB.Connection”)conn.Open(“数据库表名”)2.指定要执行的SQL命令连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录sqlStr=“select*fromsignaltabwherecodelike%X%”rs=conn.Execute(sqlStr)3.使用RecordSet属性和方法,并显示结果为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内
24、存中的数据。4.关闭数据库conn.close()6. 网络聊天室用户管理区详细的设计与系统实现详细设计是整个设计过程中,最重要的步骤之一,下面就系统中设计涉及到数据库方面的部分进行详细的设计。数据库在一个信息系统当中占有非常重要的地位,数据库设计的优劣直接对系统的以及实现的效果产生影响。设计数据库应该充分了解用户各个方面的要求。包括现有的以及将来可能增加的需求。 本系统设计采用了Acess数据库设计。设计了两个数据库即聊天室系统的chat.mdb它用来存储聊天者的发言信息、用户信息以及在线用户信息 和实现留言的books.mdb它们用来保存留言数据和管理留言数据。 6.1聊天室管理系统的数据
25、库设计数据库的结构定义存储用户信息的用户表定义如表 列 名数据类型可否为空说明 ID自动编号NOT NULL用户标示 姓名nvarchar(15)NULL用户姓名 性别nvarchar(2)NULL用户性别 密码nvarchar(15)NULL用户登录存储聊天者发言信息的聊天表的定义如下列 名数据类型可否为空说 明 ID自动编号NOT NULL用户标示IPnvarchar(15)NULL客户端的IP地址姓名nvarchar(15)NULL用户姓名颜色nvarchar(7)NULL聊天者的发言的字体颜色采用16进制存储表情nvarchar(8)NULL聊天发言者的表情说话对象nvarchar(1
26、5)NULL聊天发言的对方说话nvarchar(100)NULL聊天者的发言内容聊天室存储在线用户信息表如下列 名数据类型可否为空说 明 ID自动编号NOT NULL文件编号 姓名nvarchar(15)NULL用户姓名 性别nvarchar(2)NULL用户性别登陆时间datetimeNULL用户登陆聊天室的时间下面就是实现系统各个模块的详细设计6.1.1聊天室系统用户组册登录模块的设计 如果用户是第一次登陆的话,那么必须进行注册,否则将无法登陆到我们的聊天室中。在这里我们设计了一个简单的用户注册模块,即将用户的用户名和登陆密码提交到用户表中去。系统会根据用户表中的信息判断是否准许用户进入聊
27、天室。6.1.2聊天室系统用户发言模块设计为了使用户能够看到聊天者的聊天信息,在此我们设计实现了输出发言者聊天信息的功能首先我们实现了如何显示聊天者发言的程序 6.1.3 聊天室系统实时在线用户模块设计(listonline.asp)每当一个新的用户进入聊天室后,系统应当将该用户显示在在线聊天名单中,并将当前的用户的颜色以不同于其他用户的颜色显示。实现这一功能的数据库操作如下: 6.1.4 聊天室系统在线用户离开模块设计当用户离开聊天室的时候,除了让页面中显示相应的离开信息,还应当实现从聊天室的在线名单中删除。 例如,当用户“孙道元”准备离开聊天室时,点击离开聊天室按钮即可,用户离开后可以看到
28、管理员发送的离开提示,并且更新在线用户的名单 用于实现用户离开聊天室的程序段如下:如果用户选择离开聊天室从在线名单中把他删除6.1.5 聊天室系统用户留言管理模块设计 在这一模块中如果有聊天者散布非正常言论我们将对其进行删除,也就是通过数据库将其留言从数据库中删除,实现其功能的具体程序如下:6.2 聊天室系统留言板的数据库设计当用户不在线时我们给用户设计了留言板系统,我们仍然采用ACESS创建了一个名为BOOKS的数据库并在数据库中创建了名为liuyan 和admin 的数据表分别用于保存留言数据库和管理留言数据.数据库中包含了两个liuyan 和admin 的数据表1.Liuyan 数据表用
29、于保存留言数据 Liuyan 数据表字段名字段类型宽度字段属性说明ID自动编号主键作者文本15不允许空留言姓名Email文本20允许空留言者的Email标题文本50不允许空留言标题内容备注不允许空留言内容时间日期允许空留言时间2.admin表 Admin表用于保存管理员帐号 ,密码字段名字段类型宽度字段属性说明Adminname文本15不允许空字符串管理员帐号Password 文本15不允许空字符串管理员密码6.2.1聊天室留言板数据库联接由于多个页面中需要打开数据库,可将数据库的连接字符串和连接对象保存在一个单独的文件中,并将文件的扩展名为 ,使用时只需将其包含到页面中即可实现这一功能的程序
30、是 6.2.2 聊天室留言板留言签写模块设计在留言的签写与保存模块中,post.asp程序负责处理留言板中提交的留言并将留言数据写入到数据库中保存:6.2.3 聊天室留言板编辑和回复模块设计在留言恢复的模块中由reply.asp和replyok.asp两个程序共同完成. reply.asp用于显示回复留言的书写界面, replyok.asp程序负责将回复的留言写到数据库中保存,回复的内容与原内容累加或保存在同一个字段中,两者之间插入换行符CHAR(10)以便显示留言时回复的内容换行显示.其中后台采用数据库处理,实现其功能.6.2.4 聊天室留言板留言管理模块设计在验证管理员登陆模块时,在该模块
31、中admin表用来记录具有管理留言权限的管理员帐号和密码信息.管理留言由两个程序实现.用于提供管理员登陆界面,用于校验管理员帐号和密码是否正确.当管理员登陆系统时,管理员输入的帐号和密码都将在表里检索.如果帐号存在并且正确,系统将允许该用户进入管理模块,实现此功能的程序如下: 自此我们结束了整个系统的设计方案,在这个设计中我们全部采用了ASP工具进行开发实现,在此期间我们进行了大量的程序测试达到了最基本的设计要求。 7. 结束语 本系统采取的测试方法是先进行各模块测试,经过修改和调整通过以后,进行总体的测试,测试结果各项功能均已经或基本达到了设计要求。本网站采取的测试环境是:服务器采用WIND
32、OWS XP操作系统+IIS信息服务管理器;客户机采用的是WINDOWS XP操作系统+IE浏览器。 测试的主要内容包括:用户登录,聊天者发言功能、聊天者信息自动刷新功能在线用户自动刷新功能,及BBS用户留言管理,测试结果一切正常,达到了设计要求。为了增添界面的内容单调我们在登陆界面中增加了两个FLASH小动画。 8 参考文献 1 王恩波. 网络数据库实用教程.北京:高等教育出版社,20012 王 珊. 数据库系统原理教程.北京:清华大学出版社,2002 3 石志国. ASP动态网站编程.北京:清华大学出版社,2005 4 廖彬山. ASP动态网站开发教程. 北京:清华大学出版社,2003 9.致谢 在本次毕业设计过程中,陈凯斌老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。无论在理论上还是在实践中,都给予了我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有很大的帮助,在此期间他给我的的论文提出了大量有价值的建议,并从繁忙的工作中抽出时间给予指导,在此向陈凯斌老师表示衷心的感谢。