您好,欢迎访问三七文档
1基于ASP的WEB动态交互访问摘要使用ASP提供的Application和Session两个对象,可以实现网站间的动态交互访问,也可以作为聊天室。Application是Web站点所有用户可共享的全局对象,其属性在Global.asa文件中定义。在此用于存储用户的动态交互信息。Session对象是在页面间跳转时保存和传递数据,其属性在应用程序中定义。用于记忆交互访问的用户信息。关键词ASPApplication对象Session对象VBScript脚本JavaScriptHTML标签服务器浏览器IISAccessAbstractTwoobjects,applicationandsession,providedfromASP,canbeusedtoconstructchatroominyourWeb.Applicationisaglobalobjectsharedbyallclientsonweb,anditsattributeisdefinedinGlobal.asafile,hereisusedtosavethechattedcontentsofuser.Sessionobjectisusedtosaveandtransmitdatawhenwebjumps,butitsactiverangeisonlyforoneclient,anditsattributeisdefinedinapplicationprogram.Here,Sessionobjectisusedtoremembernameofuser.KeywordsASPApplicationobjectSessionobjectVBScriptJavaScriptHTMLtagserverbrowserIISA1.前言随着网络技术的发展,web技术有了广阔的发展空间,其中动态访问技术更是用户的需求,为此本文用ASP来实现动态访问的开发,所做的主要工作如下:(1)介绍了动态访问页面功能及WindowsXPProfessional+IIS+MicrosoftOfficeAccess2003系统的ASP服务器搭建。(2)阐述整个动态访问系统的结构及工作原理;分析了系统实现中的特殊性、难点和重点。(3)分析并解决动态访问实现中的若干技术问题。2(4)完成动态访问系统的全部设计,并进行测试及分析结果。1.1本课题研究的意义随着新的技术的发展,通过这些新技术的应用,动态访问的开发,给人们带来新的交流方式,也扩展了人们更大的交流空间。在动态访问的平台上,不仅可以跨地域、跨国家进行交流,还可以在一个狭小的地理范围(如:一个公司内部)进行交流,使人们的交流畅通无阻,能得到很多问题的迅速解答,不仅提高了工作效率,还使工作更有情趣,让人们的工作和新的信息的获得轻松自如。所以,研究动态访问的开发,具有非常重大的意义。1.2本课题的研究目标针对动态访问的众多好处,根据使用动态访问的用户的众多需求,分析并开发出一套可行的动态访问系统,去研究、发现动态访问涉及的关键技术和实现的关键问题,进一步提高动态访问的技术性能。1.3要解决的关键问题动态访问最关键的是交互信息的实时更新,用户的注册及登录,在线用户的列表,数据库的链接及访问,ASP实现的WEB动态交互访问等。如果不能很好的解决这些问题,动态访问的质量就会大打折扣,甚至会使动态访问无法进行。2.需求分析2.1功能需求为用户提供动态交换信息场所,用户可以根据个人习惯选择字体、文字颜色和表情等;可以手动清除动态交换信息的内容。客户端处理模块:获取界面元素、得到动态交换信息内容、与服务器交互、更新客户端页面、响应用户事件。服务器端响应模块:提供动态访问界面元素信息、获得提交数据、数据合法性验证、动态交换信息内容入库。动态访问系统通过界面及用户管理、客户端JavaScript处理和服务器端响应,三个主要功能模块实现了动态访问中游客登录、注册用户登录、注销、发送消息、读取消息和查看在线用户列表等功能。能够注册用户,管理用户信息,动态交换信息者把语句写入文本,输出到屏幕上,浏览器不断的对屏幕输出进行刷新、读取,实时更新在线的客户。2.2性能需求3在动态访问者没有满员的情况下,普通用户能够登录的动态访问进行文本的动态交换信息,能够方便的实现公共交谈、选择颜色、添加表情等,新用户注册时能够保证用户昵称的唯一性。网络管理员能够方便的浏览所有用户的信息等等。考虑到需要验证的内容,在程序中使用Application(“usercount”)来标记当前的用户数。在登录时用Session[upower]来判断用户的权限,如果是普通用户或游客通过验证后会进入动态访问主页,如果是管理员则会进入管理员管理管理页面。3.总体考虑根据设计需求,交互访问的应用程序工作流程如下:图一(程序工作流程图)3.1系统模块的设计动态访问的各功能模块●index.htm:登录界面●reg.asp、reg.htm:用户注册●login.asp:用户登录界面●Global.asa:应用程序文件●chatroom.asp:进入动态访问主界面、进行动态交换信息●iamcoming.asp:用户上线提示●conn.asp:数据库连接文件●homechatroom.mdb:动态访问数据库文件●showOnline.asp:显示当前在线用户●about.html:动态访问说明文件4●process.asp:动态访问信息界面注册模块:初次来动态访问的用户,进行注册,保留自己信息,便于以后继续使用本动态访问时,能够迅速登录。登录模块:游客或已经注册的用户进行登录,进入系统开始动态交换信息交流。动态交换信息模块:游客或注册用户登录到动态访问系统以后,就可以和所有的在线用户,进行动态交换信息交流,除了使用各种颜色字体的文字动态交换信息,还可以使用已提供的图片。退出模块:退出动态交换信息系统,与数据库断开连接,并从在线人数减除。3.2数据库结构设计MicrosoftOfficeAccess2003提供了非常方便的创建新数据库的方法。管理数据库和建立数据库对象采用Access。在数据库中用User表,这个表包括了所有注册用户的信息,如:用户名、密码、昵称、性别等等。下面为数据库表Users(表1)表1(Users表结构)字段名称数据类型字段大小说明Username文本50用户者名称Userpassword文本50用户者密码Nickname文本50用户者昵称Sex文本10用户者性别4.系统的实现4.1INDEX.HTM、LOGIN.ASP、INDEX.JSIndex.htm是进入动态访问的主接口,在界面上有进入动态访问、注册等选择按钮,当用户做出选择时,此页面自动加载login.asp或reg.htm、reg.asp,完成操作。Index.js功能是协同login.asp,在用户登录时,将用户输入的信息与数据库中信息进行匹对的。Index.js关键代码如下:if(flag!=null){setMsg(请输入用户名和密码(只能是字母,数字和下划线\_\的组合));}else{setMsg(fontcolor=\#009900\正在登陆,请等待.../font);varvalues=act=login&username=+username+&password=+password;5homeSendPost(login.asp,values,processLoginRequest);}}functionprocessLoginRequest(){if(homeHttpRequest.readyState==4){if(homeHttpRequest.status==200){if(homeHttpRequest.responseText==True){window.location=chatroom.asp;}else{setMsg(用户名或密码错误,请重试。);}}4.2REG.HTM、REG.ASP、REG.JS此三个文件是用户注册时使用的,关键代码如下:dimsqlStr,rssqlStr=select*fromacrUserswhereacrUsername='&username&'oracrNickname='&nickName&'setrs=server.CreateObject(ADODB.RecordSet)rs.opensqlStr,conn,1,3ifrs.eofthenrs.addnewrs(0)=usernamers(1)=passwordnickName=replace(nickName,&,&)nickName=replace(nickName,,<)nickName=replace(nickName,,>)nickName=replace(nickName,chr(34),")nickName=replace(nickName,, )rs(2)=nickNamers(3)=sexrs.updateresult=注册成功,请登录。elseifrs(0)=usernamethenresult=对不起,用户名已存在。endififrs(2)=nickNamethenresult=result&昵称已存在。endif4.3CONN.ASP我们要访问数据库,首先要必须知道这个数据库在哪里,这个数据库的驱动6程序是什么,在这里使用ASP来指定数据库路径及数据库驱动程序。不必手动去创建数据库源。server.mappath(db.mdb)指定数据库路径,DRIVER={MicrosoftAccessDriver(*.mdb)};指定数据库驱动程序,这里使用ACCESS建立homechatroom.mdb数据库,其代码如下:%dimconn,DBpathDBpath=homechatroom.mdbsetconn=Server.CreateObject(ADODB.Connection)conn.Connectionstring=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(DBpath)conn.open%4.4GLOBAL.ASAGlobal.asa文件其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个Global.asa文件。4.5CHATROOM.ASP、CHATROOM.JS动态交换信息的主界面,如何将用户的动态交换信息信息显示在客户的浏览器中,可以用ASP的Application对象。应用Request.Form方法获取从输入动态交换信息内容页面传递的动态交换信息信息,首先利用Server.HTMLEncode方法对获取到的发言内容进行处理,再对其进行指定的格式设置,最后将其以字符串的形式保存到Application(“Message”)中。functionsend(){varmsg=escape((document.getElementById(msg)).value);//escape解决home中文筹码问题if(msg==){setSuggest(请输入内容);}else{varcolor=document.getElementById(selectColor).value;varvalues=msg=+msg+&color=+color;homeSendPost(process.asp,values,processSendRequest);document.getElementById(msg).value=;document.getElementById(msg).focus();}}functionprocessSendReq
本文标题:动态交互访问
链接地址:https://www.777doc.com/doc-2614515 .html