ASP中遍历和操作Application对象的集合

2016-01-29 18:56 27 1 收藏

ASP中遍历和操作Application对象的集合,ASP中遍历和操作Application对象的集合

【 tulaoshi.com - ASP 】

 

  为了能够正常使用,必须把它们放到服务器上的一个虚拟应用程序内,并且把所提供的global.asa文件放到该应用程序的根目录中。最简单的办法是把global.asa文件放到缺省Web网站的根目录(缺省情况下是C:/InetPub/WWWRoot)中。

  对任何已有的global.asa文件重命名是一个好办法,可以在以后对该文件进行恢复。

  1. 显示Application集合的内容

  ASPCounter对象是StaticObjects集合的一个成员(通过<OBJECT>元素进行定义),但是其余部份(由Server.CreateObject实例化)是Contents集合的成员。

  可以看到使用global.asa例子网页放到这些集合中的值,这在前面已经看到:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

<!-- Declare instance of the ASPCounter component with
application-level scope //-->
<OBJECT ID=”ASPCounter” RUNAT=”Server” SCOPE=”Applicatoin”
PROGID=”MSWC.Counters”>
</OBJECT>
...
...
<SCRIPT LANGUAGE=”VBScript” RUNAT=”Server”>
Sub Application_onStart()
‘Create an instance of an ADO Connection with application-level scope
Set Application(“ADOConnection”) = Server.CreateObject(“ADODB.Connection”)
Dim varArray(3) ‘Create a Variant array and fill it
varArray(0) = “This is a”
varArray(1) = “Variant array”
varArray(2) = “stored in the”
varArray(3) = “Application object”
Application(“Variant_Array”) = varArray ‘Store it in thd Application
Application(“Start_Time”) = CStr(Now) ‘Store the date/time as a string
Application(“Visit_Count”) = 0 ‘Set counter variable to zero
End Sub
...
...
</SCRIPT>

  (1) 遍历Contents集合的代码

  为了遍历Contents集合,可使用一个For Each ... Next结构。集合中的每一项可以是一个简单的Variant类型变量、一个Variant数组或者一个对象的引用。因为需要对每种类型的值进行不同的处理,所以就不得不对每一个进行检查来判别其类型。

  在VBScript中可使用VarType函数完成这个工作。这里使用IsObject和IsArray函数代替:

For Each objItem in Application.Contents
If IsObject(Application.Contents(objItem)) Then
Response.Write “Object reference: ‘” & objItem & “’

ElseIf IsArray(Application.Contents(objItem)) Then
Response.Write “Array: ‘” & objItem & “’ contents are:

VarArray = Application.Contents(objItem)
‘Note: the following only works with a one-dimensional array
For intLoop = 0 To UBound(varArray)
Response.Write “ Index(“ & intLoop & “) = “ & _
VarArray(intLoop) & “

Next
Else
Response.Write “Variable: ‘” & objItem & “’ = “ _
& Application.Contents(objItem) & “

End If
Next

  注意程序如何从Application对象检索该数组。将其分配给一个局部(Variant)变量,使用下面的语句:

varArray = Application.Contents(objItem)

  使用UBound函数可以查找出数组的大小(元素的数量),这个值可以作为遍历的终止条件:

For intLoop = 0 UBound(varArray)

  这个例子是一维数组,并将只显示这样的一个数组的内容。可根据需要编辑代码以处理多维数组,例如:

For intLoop = 0 To UBound(varArray)
IntNumberOfDimensions = UBound(varArray, 1)
For intDimension = 0 To intNumberOfDimensions
Response.Write “ Index(“ & intLoop & “) = “ _
& varArray(intLoop, intDimension)
Next
Response.Write “”
Next

  (2) 遍历StaticObjects集合的代码

  StaticObjects集合包含了所有在global.asa中使用<OBJECT>元素声明的对象引用。因为每个条目都是一个对象变量,可用简单些的代码对这个数组进行遍历。我们将输出对象的名字(在ID属性中原有的定义):

For Each objItem in Application.StaticObjects
If IsObject(Application.StaticObjects(objItem)) Then
Response.Write “<OBJECT> element: ID=’” & objItem & “’

End If
Next

  2、对集合的操作

  1) 增加值到Contents集合

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

  增加值到Contents集合的方法,与在global.asa网页的脚本代码中使用过的方法相同。允许把一个新的Variant值增加到Application对象中,并已有建议的名字和值(可根据需要进行编辑),单击按钮,重新载入这个网页,把值增加到Application.Contents集合中,并且在列表中显示。

  增加新的Contents条目的代码

  所有的按钮和其他HTML控件放置在示例网页中的一个窗体上。

来源:http://www.tulaoshi.com/n/20160129/1507860.html

延伸阅读
标签: ASP
  二、Session对象的成员概述 Session对象的成员比Application对象多一项属性,即:集合、属性、方法、事件 ⒈Session对象的集合 Contents :没有使用<OBJECT元素定义的存储于特定Session对象的所有变量的集合。 StaticObject:使用<OBJECT元素定义的、存储于Session对象中的所有变量的集合。 例:在defau...
标签: ASP
一、语法 Server.property method 二、属性 ScriptTimeout 超时值,在脚本运行超过这一时间之后即作超时处理。如下代码指定服务器处理脚本在 100 秒后超时。 < % Server.ScriptTimeout=100 %> 这里需要注意的是,通过使用元数据库中的 AspScriptTimeout 属性可以为 Web 服务或 Web 服务器设置缺省的...
标签: Web开发
用ASP编写虚拟社区、网上购物等程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对象是提高程序质量的关键。下面让笔者根据自己在这方面的经验,向大家深入介绍一下ASP的这两个内建对象。 一、Application对象的成员概述 Application对象成员包括Application对象的集合、方法和事件。 ⒈Applic...
标签: Web开发
一、Cooies集合是Response对象和Request对象共有的一项经常用到的集合。用户通过HTTP标头访问一个主页时,每次都要重新开始。因此,如果要判断某个用户是否曾经进入本网站,那么就可以使用Cookies了。当用户第一次访问此网站时,可以利用Response对象的Cookies集合将数据存储到客户端计算机,当用户再一次访问此网站时,则可以利用Request...
标签: Web开发
看看我们的jQuery为我们都提供了哪些可用的方法: size():很明显,它应该是返回包装集中的元素个数,如$('a').size()表示链接元素的个数; get(index):当没指定index时就默认取包装集中所有元素,并以js中的数组形式返回,如果指定了index,则返回下标为index对应的元素,如$('img[title]').get(0)返回包含属性title的第一个img元...

经验教程

880

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部