《基于ASP技术的聊天室系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于ASP技术的聊天室系统的设计与实现.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、聊天室是Internet上最为常见的服务之一,深受广大网民欢迎。其实,聊天室的工作原理和设计并不困难,利用ASP技术就容易实现。ASP (Active Server Pages)动态服务器页面,是一套Microsoft开发的服务器端脚本环境,通过ASP可以结合HTML网页、ASP指令和ActiveX元件建立动态的、交互的且高效的Web服务器应用程序。其优点体现在:简单易学,编辑方便。使用VBScript、Jscript 等简单易懂的脚本语言,结合HTML代码,使用普通的文本编辑器,即可进行编辑设计;效率高,对机器硬件设备的要求不高。有了ASP程序不必担心客户端的浏览是否能运行所编写的代码,客户
2、端的浏览器不需要执行这些脚本语言,无须Compile编译,所有的程序都将在服务器端直接执行。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度;可扩充性较强。ASP使用ActiveX 服务器组件,可以使用Visual Basic、Java、Visual C+、COBOL 等程序设计语言来编写所需要的服务器组件。Application 对象用于在服务器上一个Web 站点内的应用程序之间传递消息。Application 对象没有内置的属性,但用户可以定义自己的属性。一旦为Application对象定义了属性,该属性的有效期从请求该应用程序
3、的第一个页面开始,到Web站点关闭为止。Application 对象的属性可以被该站点的所有应用程序的所有用户共享。因此, 聊天应用程序中可以用来存放用户的谈话内容。对Application 对象属性的定义脚本必须放在Global. asa 文件的Application_onstart 事件中。Global.asa 文件存储于Web 站点的根目录,用于指定该站点的全局对象和存储事件信息。Session 对象也可以在页面间跳转时保存和传递数据, 但与App lication 对象不同的是,Session 对象只保存单个用户的信息,即作用范围仅限于某个特定用户访问的不同页面间,而不是在各用户之间传
4、递数据。Session对象的属性,同样由用户自己定义。定义与读写的脚本语法与Application对象相同,只是脚本要放在应用程序中。一个网络聊天室的主要功能就是:接收各个客户端的讨论,然后按照各自的聊天对象发送到相应的客户机浏览器上。在本系统中,一个浏览器的窗口中,既能输入聊天用户的发言,同时又能看到自己与他人的对话内容。还有,为了方便用户选择聊天对象,窗口中要提供聊天用户的名单。本聊天室有以下几个基本功能:聊天用户登陆;聊天内容输入;聊天内容显示;聊天内容显示页面实时更新。本聊天室需要在登录页面的处理中考虑用户名是否重复。如果重复,则提示出错,并回到登录页面,如果没有重复,则进入聊天室。登
5、录页面为login.asp,登录处理程序为enter.asp,进入聊天室的页面为chatroom.asp。用户登录成功后进入聊天室页面chatroom.asp,这个页面主要由4个框架页面构成:userinfo.asp,userlist.asp, chatlist.asp, inputmsg.asp, 分别是用户信息框架页面、在线用户显示框架页面、聊天框架页面和用户输入框架页面。用户在输入页面输入聊天内容后,提交给系统,系统接收后输出到聊天页面,而在线用户页面将所有的在线用户列出给用户选择。聊天过程的实现如下图所示:本聊天室主要使用Application对象和Session对象。用户信息通过表单
6、输入,不需要验证。用户名用Session对象存放, 发言用Application对象存放,聊天室定期刷新用标记实现。登录部分页面由index.asp和enter.asp两个页面构成。Index.asp是用户名输入页面,具体实现由一个文本框和一个提交按纽完成。将用户名提交到enter.asp页面后, enter.asp页面读取从index.asp传来的用户名,判断是否与在线用户名冲突。如果是,则给出提示,并重新连接到index.asp,否则,就直接进入聊天页面。Enter.asp的部分代码如下:聊天处理页面主要由4个页面构成:聊天内容显示页面、用户输入页面、在线用户显示页面和用户信息页面; 主要
7、由global.asp, getchat.asp chatlist.asp 来完成; 采用application(“msg”)来存取内容。在global.asp中先初始化聊天内容,如下所示:聊天内容记录是通过getchat.asp来实现的,如下所示:读取目前时间的小时与分钟1 ASP技术2 聊天室基本功能分析与总体设计3 详细设计1.1 ASP技术概述1.2 Application对象和Session 对象简介3.1 登录部分页面3.2 聊天处理页面系统总体流程图Dimusername,iUsername=request(“username”)For i=0 to (application(“
8、totalusers”)-1)If username=application(“onlineuser”)(i) thenResponse.write “用户名重复,请重新选择一个用户名进行登录”用户名相同,提示用户Response.write“重新登录”Response.endEnd ifNext直接进入聊天室Response.redirect“chatroom.asp?username=”&usernameSub application_onstartFor i=1 to 21Application(“msg”&i)=”NextEnd subApplication.lockFor i=21
9、to 2 step-1J=i-1Application(“msg”&i)=application(“msg”&j)NextStrhour=hour(time()If len(strhour)=1 thenStrhour=“0” & strhourStrminute=minute(time()刘伟(中国矿业大学信电学院)基于ASP技术的聊天室系统的设计与实现摘要关键词本文主要讲述使用ASP提供的Application和Session两个对象,构造一个基本的聊天室系统。其中Application对象和Session对象分别用来存储聊天用户的聊天内容和用户名,而聊天室的定时刷新用标记实现。ASP A
10、pplication对象Session对象定时刷新聊天室内肛科技网络纵横2007年第2期97If len(strminute)=1 thenStrminute=“0” & strminuteStrtime=“”初始化一个向大家说再见的字符串,然后存放在application(“msg1”)Strtmp=“ ” &session(“ username” )&“ ” &“ 说: ” &request(“chatmsg”)&strtimeApplication(“msg1”)=strtmpApplication.unlockResponse.redirect“chatlist.asp”将网页重新导入
11、For i=1 to 21Response.write application(“msg”&i)&“”NextDim refreshtime, idletime, totalusers, onlineuser(),tmp(),num,I,newuser,user,usernamerefreshtime=10 设置网页自动更新时间为10秒idletime=refreshtime*3 设置闲置时间为自动更新时间的3倍newuser=request(“username”)application.lockIf application(newuser&“lastaccesstime”)=empty th
12、enIf application(“totalusers”)=empty then application(“totalusers”)=0Redimtmp(application(“totalusers”)+1)Num=0If application(“totalusers”)0 thenFor i=lbound(application(“ onlineuser” ) to ubound(application(“onlineuser”)User=application(“onlieuser”)(i)If u sernewuser and usersession(“username”) the
13、nTmp(num)=userNum=num+1ElseApplication(user&“lastaccesstime”)=emptyEnd ifNestEnd ifSession(“username”)=newuserTmp(num)=session(“username”)Application(“totalusers”)=num+1Redimpreserve tmp(application(“totalusers”)Application(“onlineuser”)=tmpEnd ifRedimtmp (application(“totalusers”)Num=0For i=0 to ap
14、plication(“totalusers”)-1User=application(“onlineuser”)(i)If(timer-application(user&lastaccesstime)idletime thenTmp(num)=userNum=num+1ElseApplication(user&“lastaccesstime”)=emptEnd ifNestIf numapplication(“totalusers”) thenRedimpreserve tmp(num)Application(“onlineuser”)=tmpApplication(“totalusers”)=
15、numEnd ifApplication.unlockResponse.write“”Response.write”Response.write“ ”Response.write“”Response.write“”Response.write” 当前列席人数: ” &application(“ totalusers” )&”Response.write”For i=0 to (application(“totalusers”)-1)Response.write&application(onlineuser)(i)&NextResponse.writeResponse.write聊天内容的显示是
16、通过在chatlist.asp中应用如下循环将内容显示出来的:用户输入页面是通过inputmsg.asp来完成的。主要是依靠表单中的一个文本框和一个提交按钮来实现,并利用javascript脚本对文本进行相应的检查。在线用户列表也是聊天室一个相当关键的部分, 通过userlist.asp来实现。对在线用户的记录和对断线用户的处理采用如下程序来实现:onlineuser数组记录了所有连线到次网页的使用者名称清点所有连线到次的网页的使用者,然后将目前的使用者名称放入数组的最后面记录目前使用者的最近存取时间Application(session(“username”)&“lastaccesstime
17、”)=timer检查所有连线到次网页的使用者的最近存取时间,若与目前时间相差30秒以上,表示结束连线num表示目前线上人数,若与application(“totalusers”)不同,表示中间有人断线用户信息页面主要显示用户的一些相关信息,这里就不再详细讲述。本文用ASP技术的Application对象和Seesion对象,构造了一个简单的聊天室系统。该聊天系统基本功能都具备,并且实现起来比较简单。4 结束语参考文献1 石志国. 动态网站编程. 北京清华大学出版社2 谭浩强. 网页编程技术与实例. 人民邮电出版社3 丁贵广. ASP编程基础与实例M . 机械工业出版社,2003, 4(收稿日期
18、:20061220)(接封二)3.3 自由知识的快速引进有助于非自由知识的自主创新4.1 继续加大科技投入,加强自主创新4.2 注重完善知识传播的传导机制自由知识的引进一方面可以使我们迅速填补和发达国家的巨大差距。同时,差距的缩小、人员素质的提高又反过来促进了我国自主创新的能力提升。自主创新并不是一朝一夕就可以实现的,要以一定的知识水平做基础。因为我们在努力赶超的同时发达国家也在继续创新,由于知识的差距和知识传播体系的差距,导致了两种世界科技成果涌现的速度出现了更大的差距,如果自由知识再来不及充分的传播,那么知识差距会越拉越大。因此,自由知识的差距得不到弥补,一味追求自主创新,结果可能将适得其
19、反。尽管我们可能会取得一些技术领域的领先地位,但我国与发达国家的全面差距却会越拉越大。自主创新必不可少,它可以使国家或企业在某些领域直接的领先于世界,从而直接的提高我国的国际竞争力,特别是在那些已经具备世界领先或领先潜力巨大的领域,比如航天事业、核物理技术、以及部分海外上市的跨国公司。对此,国家应该重点扶持,加大科技投入,加强自主创新的力度。继续大力完善知识传播体系,加快引进自由知识。引进自由知识就必须通过普及义务教育,提高全民族的思想道德素质和文化素质;通过完善知识产权法、加强政府指导作用等措施来提高社会规范;加强国际经济联系和国际贸易,解决贸易争端问题;加大对基础设施的建设等等。只有这样自由知识才会更加顺畅的引进,同时才会给自主创新一个更高的平台。4 关于加强自主创新的建议参考文献作者简介1 袁葵荪. 科学技术的发展与经济学J . 四川大学学报(哲社版),1993,(2)2 袁葵荪. 经济学的基本前提与西方信息经济学的缺陷J . 经济学家,2000,(4)陈安涛,四川大学经济学院05级西方经济学硕士研究生。(收稿日期:20061229)内肛科技_