《 input type=〃text〃 name=〃nick〃 size=〃20〃 value=〃nick〃 style=〃background…color: rgb(192;192;192)〃》《 br》
《 input type=〃submit〃 value=〃 进入聊天室 〃 name=〃B1〃 style=〃color: rgb(255;255;0); font…size: 9pt; background…color: rgb(0;128;128)〃》
《 p》《 input type=〃hidden〃 name=〃log〃 size=〃20〃 value=〃1〃》《 br》《 /p》
《 /form》
《 %
Response。End " 结束程序的处理
Else
Response。clear " 清空缓存中的内容
dim talk
If Request。Form(〃nick〃)〃〃 then
" 判断客户是是否在聊天界面中
Session(〃nick〃)=Request。Form(〃nick〃)
End If
"………………………………………………………………"
客户聊天界面
"………………………………………………………………
%》
《 form method=〃POST〃 action=〃chat。asp〃 name=form1》《 p》《 %=Session(〃nick〃)%》说话:《 input type=〃text〃 name=〃talk〃 size=〃50〃》《 br》
《 input type=〃submit〃 value=〃 提交 〃 name=〃B1〃》
《 input type=〃reset〃 value=〃 取消 〃 name=〃B2〃》《 /p》
《 /form》
《 A HREF=〃/asptest/shusheng/chat。asp〃》离开 《 /a》《 br》《 br》
《 %
If Request。Form(〃log〃)1 then
If trim(Request。Form(〃talk〃))=〃〃 then
" 判断用户是否没有输入任何内容
talk=Session(〃nick〃)&〃 沉默是金。〃
Else
talk=trim(Request。Form(〃talk〃))
" 去掉字符后的空格
End If
Application。lock
Application(〃show〃)=〃《 table border="0" cellpadding="0" cellspacing="0" width="85%" 》《 tr》《 td width="100%" bgcolor="#C0C0C0"》《 /td》《 /tr》《 tr》《 td width="100%"》《 font color="#0000FF"》来自 〃&Request。ServerVariables(〃remote_addr〃)&〃 的 〃&Session(〃nick〃)&time&〃 说:《 /font》〃&talk&〃《 /td》《 /tr》《 tr》《 td width="100%" bgcolor="#C0C0C0"》《 /td》《 /tr》《 /table》《 br》〃&Application(〃show〃)
Application。UnLock
Response。Write Application(〃show〃)
End If
End If
%》
第一次运行 chat。asp 程序,你首先将看到如下页面 :
选择你的 nick 进入聊天室后,将看到如下页面 :
输入你想要说的话,对话将出现在输入框的下方,如下图 :
下面我们来对这个聊天室程序进行逐步的分析。
首先,由于聊天室的所有客户都要能够共享信息,所以不可避免的要用到具有应用程序级变量的对象 Application,这是建立 Chat 程序的关键所在,所有的谈话数据都存放在一个应用程序级变量中,以便让所有的客户读取。我们可以用所学过的 request 对象获取客户所输入的谈话,并保存在变量 talk 中 ; 然后将 talk 的值存入应用程序级变量 show 中,如下 :
《 % Application(〃show〃)=talk&Application(〃show〃) %》
接下来要考虑的是当不同的客户同时向 Chat 应用程序进行操作的时候如何处理。这个问题其实与在数据库中的两个用户同时写入同一个记录一样,如果两个用户同时对同一个应用程序级变量进行写操作,则一个用户所作的修改会被另一个用户的操作所覆盖,所以,如果对 Application 对象数据的并发访问不采取一定措施,则会导致当两个用户试图同时对 Asp 聊天室应用程序提交时,一个用户的提交内容会被另一个用户的提交内容所覆盖,在被参加到会话中的任何人看到之前就消失了。为了避免这类问题的出现,我们需要使用 Application 对象的 Lock 属性来约束只允许当前的用户编辑或增加 Application 对象的属性,这样当用户开始修改应用程序级变量开始,到 Application 对象被显式地 Unlocked 为止,Application 对象的属性只能被该用户编辑,如果此时有其他用户请求编辑 Application 对象,则这些用户要排队等待,知道应用程序被 Unlock 为止。如下所示 :
Application。lock
Application(〃show〃)=talk&Application(〃show〃)
Application。UnLock
现在整个程序的核心部分你已经了解了,下面考虑如何保存客户信息,这里我们要用到一个会话级变量,即将客户的 nick 保存在 Session 中。如:
Session(〃nick〃)=Request。Form(〃nick〃)
最后,我们要考虑的是如何仅在一个 。asp 文件中处理各种事件 ; 如 : 客户登陆界面、客户聊天界面。由于客户第一次请求 。asp 文件时,采用的是简单的 HTTP GET 方式,但是当客户向页面上的表单字段中增加的数据并向自身提交表单后,。asp 文件会再次被请求,不过这次数据是经过 HTTP POST 方式进行传递的。文件被请求的方式可以用两种方法来确定。一是测试 Request。Form 集合是否包含成员,若没有,则表明没有发送给表单处理的数据。二是使用 Request。ServerVariables(〃Request_Method〃) 变量。如果表单是通过 HTTP GET 方式被请求的,则这个变量会返回〃GET〃,如果表单被提交处理则返回〃POST〃。由于后一种方法对于确定文件的请求方式更直接,所以我们使用如下代码进行判断 :
if Request。ServerVariables(〃Request_Method〃)=〃GET〃 then
由于我们设置了 ASP 缓存,所以当程序判断页面请求方式为 GET 时,程序运行 Response。End,来结束后面的所有操作,否则则运行 Response。clear; 清空缓存中已有的内容,并继续程序的运行。这样我们就得以用同一个 。asp 文件根据不同情况给客户显示不同的界面。
好了,我已经将这个 ASP Chat 程序的核心部分告诉大家了,剩下的一些细节性问题请各位自己读程序吧,其实这个程序还存在很多不足之处,最大的毛病是我没有写自动刷新的功能,因此如果你在 Chat 中不说话,那也就看不到其他客户所说的话了。Chat 在 Internet 中的魅力大家是知道的,其实 ; 用 ASP 也完全能做到同 irc 类似的强大功能,当然这就需要写更多的代码,如果大家有兴趣请写信给我,我将在今后的文章中逐步提升这个 chat 程序的等级,让大家也过过〃Oper〃的隐。注:有了这个 chat 程序,你就可以用来在自己的 PWS 上建一个 chat 应用程序,只要将你的 IP 地址告诉朋友,如 http://202。96。210。33/asp/chat。asp,你们就可以通过你的电脑在网上聊天了,很爽的,不信你试试 !
ASP基础教程:ASP内建对象Server
通过前九篇的理论和实践,相信大家已经对 ASP 有了系统的了解,虽然至今为止,我们只学了 ASP 的 4 个内建对象,但已经完全能够写出一些实用的小程序了。今天,作者将继续给大家讲解最后一个 ASP 内建对象……Server。
在开始本次课程之前,我仍要在这里回答一些朋友们提出的比较普遍的问题。最近仍有不少朋友来信问我,如何构建服务器端的 Active Server Page 环境。我想可能是我在前几篇中没有讲清楚,因此,在本篇的开头有必要把这个问题详细阐述一遍。
ASP 的应用完全是基于 Microsoft Internet Infomation Server(简称 IIS)之上的,IIS 有分别用于 Windows NT Server 和 WorkStation 的两个版本中(当然 IIS4。0 也有 Windows98 版,这里暂且不提),其功能几乎完全相同,所不同的只是安装过程。一般来说,我们使用的都是基于 NT 服务器上的 IIS 版本。在 NT Server 的环境中,发布信息、管理站点的工作一般都是通过 IIS 来完成的。通常我们在 NT4。0 版本中运行的是 IIS2。0 版,但它不具有支持 ASP 的功能。ASP 必须在安装完 IIS 后单独安装,安装文件是一个微软发布的 ASP 安装包,大约有 9 兆多,应该可以在微软的网站上下载。当 IIS2。0 中增添了支持 ASP 的功能后,其也就自动升级为 3。0 版本。2。0 和 3。0 对于 WEB 服务器来说,并没有什么大的改动,只是单纯地增加了运行 ASP 的能力。当安装完成后,运行 Internet 服务管理器,你将看到如下画面:
可以到在 IIS3。0 中提供了三种服务:WWW、Gopher、FTP,WWW 服务为客户浏览器提交 WEB 页,并允许客户访问 。asp 文件。当然,你可以直接安装最新的 IIS4。0 版本,作者也建议各位安装此版本,因为它具有更强更高的 WEB 管理机能和安全性。在 IIS4。0 中 IIS 的管理界面发生了根本性的?
小说推荐
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 其他
- 最新章:第17章
- JSP入门教程(DOC格式)
- -Page 1-jsp 入门教程0.0.1版权(c 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。QQ:475784337QQ 群:51239192MSN:lingirl6@hotmail.EMAIL:lingirl6@hotmail.2008-02-28 20:05:061
- 其他
- 最新章:第37章
- 路由器基本知识及应用实例(DOC格式)
- 第二章 路由器第一节 路由器发展概述自从1984年问世至今,路由器已经走过了近20年的快速技术发展历程。路由器的应用领域不断扩展、从单一的互通网关逐渐扩展到覆盖广域网、城域网乃至用户接入的各个领域。近年来,路由器早已逐渐脱离单纯用于企业网出口和互联的概念,开始成为运营网络和各种专用业务网络的核心设备
- 其他
- 最新章:第48章
- Word2003使用技巧大全(DOC格式)
- Word使用技巧(二)表格使用大全更新时间:2009-11-16 19:32:15 本文共阅读了257次 作者:xushezheng 文章来源:电教组字体大小:大中小一、快速插入表格 拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最大为18行×28列 二、
- 其他
- 最新章:第1章
- Excel word ppt office使用技巧大全(DOC格式)
- -Page 1-Excel_word_ppt_使用技巧大全(完全版)Excelwordppt使用技巧大全(2011新版本)I-Page 2-Excel_word_ppt_使用技巧大全(完全版
- 其他
- 最新章:第338章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 其他
- 最新章:第31章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章