IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)網(wǎng)絡(luò)編程Asp編程 → ASP中遍歷和操作Application對(duì)象的集合

ASP中遍歷和操作Application對(duì)象的集合

時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

為了能夠正常使用,必須把它們放到服務(wù)器上的一個(gè)虛擬應(yīng)用程序內(nèi),并且把所提供的global.asa文件放到該應(yīng)用程序的根目錄中。最簡(jiǎn)單的辦法是把global.asa文件放到缺省Web網(wǎng)站的根目錄(缺省情況下是C:/InetPub/WWWRoot)中。

對(duì)任何已有的global.asa文件重命名是一個(gè)好辦法,可以在以后對(duì)該文件進(jìn)行恢復(fù)。

1. 顯示Application集合的內(nèi)容

ASPCounter對(duì)象是StaticObjects集合的一個(gè)成員(通過<OBJECT>元素進(jìn)行定義),但是其余部份(由Server.CreateObject實(shí)例化)是Contents集合的成員。

可以看到使用global.asa例子網(wǎng)頁(yè)放到這些集合中的值,這在前面已經(jīng)看到:

以下為引用的內(nèi)容:

<!-- 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集合,可使用一個(gè)For Each ... Next結(jié)構(gòu)。集合中的每一項(xiàng)可以是一個(gè)簡(jiǎn)單的Variant類型變量、一個(gè)Variant數(shù)組或者一個(gè)對(duì)象的引用。因?yàn)樾枰獙?duì)每種類型的值進(jìn)行不同的處理,所以就不得不對(duì)每一個(gè)進(jìn)行檢查來判別其類型。

在VBScript中可使用VarType函數(shù)完成這個(gè)工作。這里使用IsObject和IsArray函數(shù)代替:

以下為引用的內(nèi)容:

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對(duì)象檢索該數(shù)組。將其分配給一個(gè)局部(Variant)變量,使用下面的語(yǔ)句:

varArray = Application.Contents(objItem)

使用UBound函數(shù)可以查找出數(shù)組的大小(元素的數(shù)量),這個(gè)值可以作為遍歷的終止條件:

For intLoop = 0 UBound(varArray)

這個(gè)例子是一維數(shù)組,并將只顯示這樣的一個(gè)數(shù)組的內(nèi)容??筛鶕?jù)需要編輯代碼以處理多維數(shù)組,例如:

以下為引用的內(nèi)容:

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>元素聲明的對(duì)象引用。因?yàn)槊總€(gè)條目都是一個(gè)對(duì)象變量,可用簡(jiǎn)單些的代碼對(duì)這個(gè)數(shù)組進(jìn)行遍歷。我們將輸出對(duì)象的名字(在ID屬性中原有的定義):

以下為引用的內(nèi)容:

For Each objItem in Application.StaticObjects

If IsObject(Application.StaticObjects(objItem)) Then

Response.Write "<OBJECT> element: ID=’" & objItem & "’
"
End If

Next

2、對(duì)集合的操作

1) 增加值到Contents集合

增加值到Contents集合的方法,與在global.asa網(wǎng)頁(yè)的腳本代碼中使用過的方法相同。允許把一個(gè)新的Variant值增加到Application對(duì)象中,并已有建議的名字和值(可根據(jù)需要進(jìn)行編輯),單擊按鈕,重新載入這個(gè)網(wǎng)頁(yè),把值增加到Application.Contents集合中,并且在列表中顯示。

增加新的Contents條目的代碼

所有的按鈕和其他HTML控件放置在示例網(wǎng)頁(yè)中的一個(gè)窗體上。ACTION設(shè)置了當(dāng)前網(wǎng)頁(yè)的路徑,提交該窗體時(shí),重新裝入。METHOD屬性為"POST",所以控件中的值出現(xiàn)在Request.Form集合中。在以前的章節(jié)中采用過這兩種技術(shù):

<FORM ACTION="<% = Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">

該窗體上的按鈕都是普通的HTML INPUT控件,具有相同的標(biāo)題(三個(gè)空格)但名字不同。例如,創(chuàng)建第一個(gè)按鈕(把值增加到Application對(duì)象中)的代碼是:

<INPUT TYPE="SUBMIT" NAME="cmdAdd" VALUE=" ">

重新載入該網(wǎng)頁(yè)時(shí),檢查Request.Form集合,判定單擊的是哪個(gè)SUBMIT按鈕,并進(jìn)行相應(yīng)的處理。如果是增加一個(gè)值到Application對(duì)象的按鈕(該按鈕在HTML的<INPUT>元素中被命名為cmdAdd),使用下面的程序段:

關(guān)鍵詞標(biāo)簽:ASP,Application

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 ASP編程代碼:隱藏圖片的真實(shí)地址 ASP編程代碼:隱藏圖片的真實(shí)地址 ASP教程:0177:800401f3錯(cuò)誤解決 ASP教程:0177:800401f3錯(cuò)誤解決 ASP代碼中如何屏蔽ip地址 禁止某IP段訪問網(wǎng)站 ASP代碼中如何屏蔽ip地址 禁止某IP段訪問網(wǎng)站 錯(cuò)誤80004005信息處理方法 錯(cuò)誤80004005信息處理方法

相關(guān)下載

    人氣排行 ASP下標(biāo)越界的解決方法 ASP代碼中如何屏蔽ip地址 禁止某IP段訪問網(wǎng)站 “文件共享鎖定數(shù)溢出” 原因及解決方法 無法寫入數(shù)據(jù)庫(kù)的解決方法 ASP教程:0177:800401f3錯(cuò)誤解決 ASP常用函數(shù)列表 如何用ASP來獲取客戶端真實(shí)IP的地址 ASP用FSO生成HTML簡(jiǎn)單實(shí)例+詳解[原創(chuàng)]

      <li id="2177q"></li>
      <samp id="2177q"><listing id="2177q"></listing></samp>