亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP中遍歷和操作Application對象的集合

2019-11-18 19:05:45
字體:
來源:轉載
供稿:網友

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

  對任何已有的global.asa文件重命名是一個好辦法,可以在以后對該文件進行恢復。

  1. 顯示application集合的內容

  aspCounter對象是StaticObjects集合的一個成員(通過<OBJECT>元素進行定義),但是其余部份(由Server.CreateObject實例化)是Contents集合的成員。

  可以看到使用global.asa例子網頁放到這些集合中的值,這在前面已經看到:

<!-- 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)

  這個例子是一維數組,并將只顯示這樣的一個數組的內容??筛鶕枰庉嫶a以處理多維數組,例如:

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集合

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

  增加新的Contents條目的代碼

  所有的按鈕和其他HTML控件放置在示例網頁中的一個窗體上。ACTION設置了當前網頁的路徑,提交該窗體時,重新裝入。METHOD屬性為“POST”,所以控件中的值出現在Request.Form集合中。在以前的章節中采用過這兩種技術:

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

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

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

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

If Len(Request.Form("cmdAdd")) Then
strVarName = Request.Form("txtVarName")
strVarValue = Request.Form("txtVarValue")
Application.Lock
Application("strVarName") = strVarValue
Application.Unlock
End If

  注意程序如何使用Application.Lock和Application.Unlock方法,確保這些值不會因兩個用戶并發地訪問而產生混亂。如果只是對一個特定的值進行設置,一般不可能發生這種情況。但一直使用Lock和Unlock方法是明智的。

  2) Contents集合中刪除值

  通過遍歷Contents集合(如前面我們所做的)執行ASP網頁時,創建該列表。但是,我們僅收集每項的名字并把它們放到<SELECT>列表元素內的<OPTION>元素中:


<SELECT NAME=”lstRemove” SIZE=”1”>
<%
For Each objItem in Application.Contents
Response.Write “<OPTION>” & objItem & “</OPTION>”
Next
&>
</SELECT>

  該ASP代碼執行以后,在瀏覽器中看到的結果是:

<SELECT NAME=”lstRemove” SIZE=”1”>
<OPTION>ADOConnection</OPTION>
<OPTION>Variant_Array</OPTION>
<OPTION>Start_Time</OPTION>
<OPTION>Visit_Count</OPTION>
<OPTION>My_New_Value</OPTION>
</SELECT>

  (1) 刪除單個值

  當單擊按鈕刪除單個值時,該窗體再次提交給相同的網頁,但是這一次將設立一個為cmdRemoveThis的SUBMIT按鈕,然后調用Application.Contents集合的Remove方法:

If Len(Request.Form("cmdRemoveThis")) Then
strToRemove = Request.Form("lstRemove")
Response.Write "strToRemove = " & strToRemove
Application.Lock
Application.Contents.Remove(strToRemove)
Application.Unlock
End If

  注意這是Contents集合的一個方法,而不是Application對象的。語法是Application.Contents.Remove,而不是Application.Remove。
從Contents集合中刪除Start_Time值的結果。

  (2) 刪除所有的值

  如果單擊三個SUBMIT類型按鈕中的最后一個,該網頁中的代碼將檢測到單擊的按鈕為cmdRemoveAll,將執行 Application.Contents集合的RemoveAll方法:

If Len(Request.Form("cmdRemoveAll")) Then
Application.Lock
Application.Contents.RemoveAll
Application.Unlock
End If

  再次提醒,這是Contents集合的一個方法,而不是Application。語法是Application.Contents.RemoveAll,而不是Application.RemoveAll。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女无圣光视频| 欧美在线视频在线播放完整版免费观看| 精品成人国产在线观看男人呻吟| 国产精品日本精品| 国产综合视频在线观看| 精品亚洲国产视频| 欧美日韩中文字幕| 欧美另类xxx| 一区二区三区 在线观看视| 欧美激情xxxxx| 91伊人影院在线播放| 亚洲一区二区三区四区视频| 深夜成人在线观看| 久久影视电视剧免费网站| 亚洲专区中文字幕| 国产专区欧美专区| 国产精品久久久久不卡| 97精品视频在线观看| 伊人伊成久久人综合网站| 欧美中文字幕在线播放| 久久精品国产欧美激情| 国产成人精品日本亚洲专区61| 久久精品一偷一偷国产| 国产精品欧美一区二区三区奶水| 国产精品igao视频| 国产日韩亚洲欧美| 成人97在线观看视频| 国产精品欧美一区二区| 欧美日韩电影在线观看| 国产精品偷伦视频免费观看国产| 91精品国产777在线观看| 久久久久久久爱| 日韩在线观看免费av| 国产精品香蕉在线观看| 欧美老女人性视频| 日韩在线观看电影| 中文综合在线观看| 精品国产31久久久久久| 久久夜色精品国产欧美乱| 这里只有精品久久| 国产精品久久久久久久久久新婚| 亚洲精品国产成人| 日韩欧美在线观看| 欧美成人四级hd版| 欧美日韩高清在线观看| 日本在线观看天堂男亚洲| 欧美黑人一级爽快片淫片高清| 欧美日韩国产在线播放| 狠狠躁天天躁日日躁欧美| 日韩电影中文字幕一区| 日韩中文字幕免费| 91精品在线播放| 最近中文字幕2019免费| 九九热精品视频在线播放| 中国日韩欧美久久久久久久久| 国产精品96久久久久久又黄又硬| 国产日韩精品在线观看| 九九热最新视频//这里只有精品| 尤物九九久久国产精品的特点| 久久精品国产成人| 亚洲国产高清高潮精品美女| 国产成人精品a视频一区www| 亚洲精品成a人在线观看| 欧美日韩国内自拍| 97**国产露脸精品国产| 日本亚洲精品在线观看| 在线观看免费高清视频97| 中文字幕日韩精品在线观看| 久久久久久久香蕉网| 欧美性猛交视频| 国产伦精品一区二区三区精品视频| 日韩av电影在线免费播放| 国产精品一久久香蕉国产线看观看| 国产一区二区三区在线免费观看| 亚洲成人激情小说| 欧美激情综合亚洲一二区| 黑人欧美xxxx| 日韩精品黄色网| 国产精品视频白浆免费视频| 亚洲精选中文字幕| 日韩视频在线一区| 国产精品久久久久久久久久尿| 日韩精品极品在线观看| 欧美视频中文字幕在线| 日韩有码在线观看| 国产精品中文字幕在线观看| 国产一区二区精品丝袜| 欧美日韩精品在线视频| 亚洲xxxx妇黄裸体| 91免费精品国偷自产在线| 欧美日韩国产中文字幕| 午夜免费日韩视频| 国产精品一区二区三区久久久| 亚洲高清免费观看高清完整版| 国产成人一区二区在线| 日韩在线观看免费网站| 亚洲视频专区在线| 亚洲性69xxxbbb| 欧美日韩电影在线观看| 欧美性猛交xxxx久久久| 亚洲免费电影一区| 日本欧美在线视频| 国产在线999| 久久久久久久久国产| 久久视频在线观看免费| 国产精品一区二区三区免费视频| 成人激情在线播放| 久久久久久久久久亚洲| 欧美丝袜一区二区| 粉嫩av一区二区三区免费野| 黑人巨大精品欧美一区二区三区| 久久中文精品视频| 欧美在线免费看| 亚洲欧美国产精品va在线观看| 欧美成人中文字幕在线| 中文字幕日韩欧美精品在线观看| 国产精品久久久久高潮| 久久在线观看视频| 国产一区二区日韩| 在线播放日韩精品| 91美女片黄在线观看游戏| 日韩精品在线观看一区二区| 热久久免费国产视频| 一区二区三区 在线观看视| 国产精品久久婷婷六月丁香| 日韩精品极品视频免费观看| 日韩欧美国产骚| 美日韩丰满少妇在线观看| 欧美在线观看www| 91免费观看网站| 96sao精品视频在线观看| 日韩免费视频在线观看| 国产丝袜精品视频| 亚洲精选在线观看| 久久精品中文字幕| 日韩电影免费观看中文字幕| 色伦专区97中文字幕| 欧美怡春院一区二区三区| 国产自摸综合网| 欧美福利小视频| 亚洲人成电影在线播放| 亚洲精品久久久久久久久| 国产欧洲精品视频| 欧美疯狂性受xxxxx另类| 国产91在线播放精品91| 国产成人在线视频| 久久夜精品香蕉| 久久精品国产亚洲| 久久777国产线看观看精品| 国产一区二区三区在线视频| 91中文在线视频| 伊人一区二区三区久久精品| 亚洲精品视频二区| 中文字幕国产精品| 欧美日韩国产成人在线观看| 久久久久亚洲精品国产| 久久夜色精品国产欧美乱| 久久天天躁狠狠躁老女人| 亚洲精品www久久久| 国产日韩欧美在线播放| 国产日韩在线亚洲字幕中文| 欧美精品电影免费在线观看| 国产精品视频yy9099| 国产精品一区二区三区成人|