ASP 3.0高階程式設計(三)

才智咖 人氣:2.04W
ASP 3.0高階程式設計(三)
ASP 3.0高階程式設計(三) 訪問和更新Cookies集合
Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要複雜得多。Cookie是一小塊由瀏覽器存貯在客戶端系統上的文字,且隨同每次請求發往它們應用於的域中的服務器。
ASP使得應用cookie較為容易,可以從Request物件的Cookies集合中獲得所有隨同請求發出的cookie值,並可建立或修改cookie,通過Response物件的Cookies集合發回給使用者。
Cookie包含可用兩種方式構造的資訊,單值cookie提供其值給程式碼是通過一個一般的類ASP集合。然而,集合的每個成員可能本身也是一個集合,包含這種資訊的cookie通過稱為多值(multiple-Value)cookie。
建立一個單值的cookie較為簡單,如下所示:
ies(“item-name”) = “item-value”
建立一個多值的cookie,可以使用如下命令:
ies(“item-name”)(“sub-item-name”) = “sub-item-value”
設定cookie應用的域及路徑及其有效期,我們使用:
ies(“item-name”)in = “domain-url”
ies(“item-name”) = “virtual-path”
ies(“item-name”)res = #date#
通常,客戶只在對建立cookie的目錄中的頁面提出請求時,才將cookie隨請示發住伺服器。通過指定path屬性,可以指定站點中何處這個cookie是合法的,並且這個cookie將隨請求傳送。如果cookie隨對整個站點的頁面請求傳送,設定path為“/”。
假如Expires屬性沒有設定,關閉當前的瀏覽器例項時,cookie將被自動消除。
注意,我們在向瀏覽器傳送任何輸出時,已經建立了cookie。因為,這些cookie是頁面HTTP報頭的一部分。

在ASP 3.0中,緩衝的預設狀態是開啟的,且沒有輸出被髮送,除非使用h指定做這個工作或者頁面已到末端。這意味著建立cookie的程式碼可以在頁面上的任何位置,直到任何輸出“重新整理”(flush)到客戶端前,它都可以被執行。

要讀現有的cookie,使用ies集合。可以單獨訪問其中的專案,方法類似於建立它們時使用的方法。
StrSingleValue = ies(“item-name”)
StrSubItemValue = ies(“item-name”)(“sub-item-name”)
注意ies集合(和所有其他Request集合一樣)是隻讀的。ies集合是隻寫的.,事實上可以訪問這個集合中一系列cookie的名稱,而不是它們的值。

遍歷Cookies集合
為了使用Cookies集合更加方便,可使用名稱為Haskeys的附加屬性。假如訪問的cookie本身也是個集合,即它是一個多值的cookie,這將返回True。使用Haskeys屬性,可以遍歷完整的ies集合,從而獲得所有cookie的列表及它們的值。
For Each objItem In ies
If ies(objItem)ey Then
‘Use another For Each to iterate all subkeys
For Each objItemKey in ies(objItem)
e objItem