友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
第三电子书 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

asp基础入门篇(DOC格式)-第6部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!

《 SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server》
Sub Application_OnStart。 。 。
End Sub
《 /SCRIPT》
2、Application_OnEnd
Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生,Application_OnEnd 事件的处理过程也必须写在 Global。asa 文件之中。
下面让我们来看看在使用 Application 对象时必须注意的一些事项。
不能在 Application 对象中存储 ASP 内建对象。例如,下面的每一行都返回一个错误。
《 %
Set Application(〃var1〃)=Session
Set Application(〃var2〃)=Request
Set Application(〃var3〃)=Response
Set Application(〃var4〃)=Server
Set Application(〃var5〃)=Application
Set Application(〃var6〃)=ObjectContext
%》
若您将一个数组存储在 Application 对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。
《 % Application(〃StoredArray〃)(3) = 〃new value〃 %》
这是因为 Application 对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。建议您在将数组存储在 Application 对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Application 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。
………asp8a。asp………
《 %
dim MyArray()
Redim MyArray(5)
MyArray(0)=〃hello〃
MyArray(1)=〃some other string〃
Application。Lock
Application(〃StoredArray〃)=MyArray
Application。Unlock
Response。Redirect 〃asp8b。asp〃
%》
………asp8b。asp………
《 %
LocalArray=Application(〃StoredArray〃)
LocalArray(1)=〃 there〃
Response。Write LocalArray(0)&LocalArray(1)
Application。Lock
Application(〃StoredArray〃)=LocalArray
Application。Unlock
%》
      与 Application 对象具有相近作用的另一个非常实用的 ASP 内建对象就是 Session。我们可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
  通过向客户程序发送唯一的 Cookie 可以管理服务器上的 Session 对象。当用户第一次请求 ASP 应用程序中的某个页面时,ASP 要检查 HTTP 头信息,查看是否有在报文中有名为 ASPSESSIONID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,在把这个值作为新 ASPSESSIONID Cookie 的值发送给客户端,正是使用这种 Cookie,可以访问存储在服务器上的属于客户程序的信息。Session 对象最常见的作用就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持 cookie 的浏览器中保留,如果客户关闭了 Cookie 选项,Session 也就不能发挥作用了。
一、属性
1、SessionID
SessionID 属性返回用户的会话标识。在创建会话时,服务器会为每一个会话生成一个单独的标识。会话标识以长整形数据类型返回。在很多情况下 SessionID 可以用于 WEB 页面注册统计。
2、TimeOut
Timeout 属性以分钟为单位为该应用程序的 Session 对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。
二、方法
Session 对象仅有一个方法,就是 Abandon,Abandon 方法删除所有存储在 Session 对象中的对象并释放这些对象的源。如果您未明确地调用 Abandon 方法,一旦会话超时,服务器将删除这些对象。当服务器处理完当前页时,下面示例将释放会话状态。
《 % Session。Abandon %》
三、事件
Session 对象有两个事件可用于在 Session 对象启动和释放是运行过程。
1、Session_OnStart 事件在服务器创建新会话时发生。服务器在执行请求的页之前先处理该脚本。Session_OnStart 事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。
尽管在 Session_OnStart 事件包含 Redirect 或 End 方法调用的情况下 Session 对象仍会保持,然而服务器将停止处理 Global。asa 文件并触发 Session_OnStart 事件的文件中的脚本。
为了确保用户在打开某个特定的 Web 页时始终启动一个会话,就可以在 Session_OnStart 事件中调用 Redirect 方法。当用户进入应用程序时,服务器将为用户创建一个会话并处理 Session_OnStart 事件脚本。您可以将脚本包含在该事件中以便检查用户打开的页是不是启动页,如果不是,就指示用户调用 Response。Redirect 方法启动网页。程序如下 :
《 SCRIPT RUNAT=Server Language=VBScript》
Sub Session_OnStart
startPage = 〃/MyApp/StartHere。asp〃
currentPage = Request。ServerVariables(〃SCRIPT_NAME〃)
if strp(currentPage;startPage;1) then
Response。Redirect(startPage)
end if
End Sub
《 /SCRIPT》
上述程序只能在支持 cookie 的浏览器中运行。因为不支持 cookie 的浏览器不能返回 SessionID cookie,所以,每当用户请求 Web 页时,服务器都会创建一个新会话。这样,对于每个请求服务器都将处理 Session_OnStart 脚本并将用户重定向到启动页中。
2、Session_OnEnd 事件在会话被放弃或超时发生。
关于使用 Session 对象需要注意的事项 Application 对象相近,请参照前文。
会话可以通过以下三种方式启动 :
1、一个新用户请求访问一个 URL,该 URL 标识了某个应用程序中的 。asp 文件,并且该应用程序的 Global。asa 文件包含 Session_OnStart 过程。
2、用户在 Session 对象中存储了一个值。
3、用户请求了一个应用程序的 。asp 文件,并且该应用程序的Global。asa 文件使用 《 OBJECT》标签创建带有会话作用域的对象的实例。
如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。可以通过在 Internet 服务管理器中设置〃应用程序选项〃属性页中的〃会话超时〃属性改变应用程序的默认超时限制设置。应依据您的 Web 应用程序的要求和服务器的内存空间来设置此值。例如,如果您希望浏览您的 Web 应用程序的用户在每一页仅停留几分钟,就应该缩短会话的默认超时值。过长的会话超时值将导致打开的会话过多而耗尽您的服务器的内存资源。对于一个特定的会话,如果您想设置一个小于默认超时值的超时值,可以设置 Session 对象的 Timeout 属性。例如,下面这段脚本将超时值设置为 5 分钟。
《 % Session。Timeout = 5 %》
当然你也可以设置一个大于默认设置的超时值,Session。Timeout 属性决定超时值。你还可以通过 Session 对象的 Abandon 方法显式结束一个会话。例如,在表格中提供一个〃退出〃按钮,将按钮的 ACTION 参数设置为包含下列命令的 。asp 文件的 URL。
《 % Session。Abandon %》
今天,我们学习了两个在 WEB 页面特别是基于 WEB 的 BBS 或 Chat 上经常使用 ASP 内建对象,由于这两个对象在实际运用中很实用,因此在下一篇中作者将运用至此我们所学过的 4 个 ASP 内建对象,给大家演示一个完整的 ASP 应用程序,相信通过这个练习,能大大加深你对 ASP 应用程序的理解和掌握。敬请关注〃动态网站设计十八般武艺 ……ASP 篇 (9)〃。
 
ASP教程:Global。asa文件的使用及Chat程序
在上一篇中作者给大家详细介绍了两个非常实用的 ASP 内建对象 Application 和 Session 的使用方法。由于这两者的 OnStart、OnEnd 事件的脚本都必须在 Global。asa 文件中声明 ; 因此,本篇将给大家详细介绍 Global。asa 文件的使用方法。为使大家熟练掌握至今所学过的知识,本篇还将举出一个 ASP 的 Chat 程序,供各位参考。
最近很多朋友来信问我,为什么前两期的范例程序运行时有这样那样的错。首先,我要向大家声明,这些程序都是我自己写的,在出〃厂〃前都经过合格检验,绝无〃假冒伪劣产品〃。:) 由于程序中使用了 cookie 记录客户信息,所以如果你在浏览器中没有设置接受 cookie 则程序将不能正常运行。另外,程序将客户信息记录在客户端的 cookie 所使用的方法是 Response。Cookie,此语句必须写在 ASP 文件中的第一个 《 HTML》标记前,这是因为 Cookie 是作为 HTTP 传输的头信息的一部分发送给客户的,如果当 HTTP 报头信息已经传输给客户后再使用 Response。Cookie,将出现以下错误 :〃HTTP 标题已经写入到客户浏览器。任何 HTTP 标题的修改必须在写入页内容之前。〃,可能一些朋友在剪贴程序的时候没有注意,打乱了程序的前后次序 ; 或者是错误的将 HTML 代码添加在 ASP 范例程序之前,因而导致程序运行出错。因此,我建议大家一方面在首次运行例程的时候不要对程序进行任何改动,尽量在看懂程序的基础上逐步改进,另一方面在运行 ASP 程序时至少要在浏览器中选择可接受 Cookie,否则一旦 ASP 程序中使用了 Cookie 或 Session,它们都将无法正常运行。
下面我来向大家介绍 Global。asa 文件的使用方法。
什么是 Global。asa 文件?它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是 Global。asa 且必须存放在应用程序的根目录中。每个应用程序只能有一个 Global。asa 文件。
在 Global。asa 文件中,如果包含的脚本没有用 《 SCRIPT》标记封装,或定义的对象没有会话或应用程序作用域,则服务器将返回错误。我们可以用任何支持脚本的语言编写 Global。asa 文件中包含的脚本。如果多个事件使用同一种脚本语言,就可以将它们组织在一组 《 SCRIPT》标记中。
在 Global。asa 文件中声明的过程只能从一个或多个与 Application_OnStart、Application_OnEnd、Session_OnStart 和 Session_OnEnd 事件相关的脚本中调用。在基于 ASP 的应用程序的 ASP 页中,它们是不可用的。如果要在应用程序之间共享过程,可在单独的文件中声明这些过程,然后使用服务器端包容 (SSI) 语句将该文件包含在调用该过程的 ASP 程序中。通常,包含文件的扩展名应为 。inc。
下面是一个很标准的 Global。asa 文件 :
《 SCRIPT LANGUAGE=〃VBScript〃 RUNAT=〃Server〃》
'Session_OnStart 当客户首次运行 ASP 应用程序中的任何一个页面时运行
'Session_OnEnd 当一个客户的会话超时或退出应用程序时运行
'Application_OnStart 当任何客户首次访问该应用程序的首页时运行
'Application_OnEnd 当该站点的 WEB 服务器关闭时运行
《 /SCRIPT》
《 SCRIPT LANGUAGE=〃VBScript〃 RUNAT=〃Server〃》
Sub Application_OnStart
VisitorCountFilename = Server。MapPath (〃/ex2〃) + 〃VisitCount。txt〃
Set FileObject = Server。CreateObject(〃Scripting。FileSystemObject〃)
Set Out= FileObject。OpenTextFile (VisitorCountFilename; 1; FALSE; FALSE)
Application(〃visitors〃) = Out。ReadLine
Application(〃VisitorCountFilename〃) = VisitorCountFilename
End Sub
'=========================================================
SUB Application_OnEnd
Set FileOutObject = Server。CreateObject(〃Scripting。FileSystemObject〃)
Set Out= FileOutObject。CreateTextFile (Application(〃VisitorCountFilename〃); TRUE;FALSE)
Out。WriteLine(application(〃visitors〃))
End Sub
'=========================================================Sub Session_OnStart
Session。Timeout = 5
Application(〃visitors〃) = Application(〃visitors〃) + 1
Session(〃ID〃)=Session。SessionID
End Sub
《 /SCRIPT》
     在这个 Global。asa 程序中,涉及到了 ASP 的 File Access 组件,它可以提供用于访问文件系统的方法、属性和集合。这将在以后 ASP 的组件中进行展开讨论。在这里,它起到了在服务器上创建新文件并对文件进行写操作的作用。这其实是一个 ASP 页面访问记数器应用程序的 Global 文件,首先当客户首次访问该应用程序的首页时 ; 过程 Application_OnStart 定义了在服务器上指定的虚拟目录下新建一个 VisitCount。txt 的文本文件,并将文件的路径和内容保存在应用程序级的变量中。而当任何一个客户访问 ASP 应用程序中的任何一个页面时,过程 Session_OnStart 定义将应用程序级的变量 visitors 的值自动加一。这样,每当有客户访问页面时,变量 visitors 都将自动加一,以起到统计点击率的作用。由于变量 visitors 的值是存储在系统内存之中,所以如果服务器关闭或重新启动,存储在变量中的数据将自动丢失,所以通过定义过程 Application_OnEnd,在服务器关闭或重启之前将数据写入事先建立的文本文件之中,这样就能确保当服务器再次启动时, Application_OnStart 过程可以从 VisitCount。txt 文件中读取以前的统计数。
经过这段时间的学习,相信大家已经能够比较熟练的运用我们所学过的这些 ASP 内建对象来编写一些较简单的 ASP 应用程序,可别小看你现在所掌握的这些 ASP 基本知识哦 ! 其实你已经能够开发一些简单但实用的 ASP 应用程序了。下面我就举一个非常简单的 ASP WEB 聊天室程序,你会发觉写聊天室原来是一件这么容易、轻松的事。可能朋友们已经在一些杂志上看到过 ASP 聊天程序的编写方法,但作者在这里自己写了一个更简单的程序,仅仅使用了一个 。asp 文件。请将以下代码剪贴到记事簿并保存为 chat。asp。
《 %@ Language=VBScript %》
《 %
Response。Buffer=true ' 设置输出缓存,用于显示不同页面。
On error resume next ' 忽略程序出错部分
If Request。ServerVariables(〃Request_Method〃)=〃GET〃 then
' 判断客户是以什么方式请求 WEB 页面
'………………………………………………………………
' 客户登陆界面
'………………………………………………………………
%》
《 form method=〃POST〃 action=〃chat。asp〃》《 p》
《 input type=〃text〃 name=〃nick〃 size=〃20〃 value=〃nick〃 style=〃background…color:
返回目录 上一页 下一页 回到顶部 0 0
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!