- 相關推薦
ASP 3.0高級編程(三)
Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要復雜得多。Cookie是一小塊由瀏覽器存貯在客戶端系統上的文本,且隨同每次請求發往它們應用于的域中的服務器。
ASP使得應用cookie較為容易,可以從Request對象的Cookies集合中獲得所有隨同請求發出的cookie值,并可創建或修改cookie,通過Response對象的Cookies集合發回給用戶。
Cookie包含可用兩種方式構造的信息,單值cookie提供其值給代碼是通過一個一般的類ASP集合。然而,集合的每個成員可能本身也是一個集合,包含這種信息的cookie通過稱為多值(multiple-Value)cookie。
創建一個單值的cookie較為簡單,如下所示:
Response.Cookies(“item-name”) = “item-value”
創建一個多值的cookie,可以使用如下命令:
Response.Cookies(“item-name”)(“sub-item-name”) = “sub-item-value”
設置cookie應用的域及路徑及其有效期,我們使用:
Response.Cookies(“item-name”).domain = “domain-url”
Response.Cookies(“item-name”).path = “virtual-path”
Response.Cookies(“item-name”).expires = #date#
通常,客戶只在對創建cookie的目錄中的頁面提出請求時,才將cookie隨請示發住服務器。通過指定path屬性,可以指定站點中何處這個cookie是合法的,并且這個cookie將隨請求發送。如果cookie隨對整個站點的頁面請求發送,設置path為“/”。
假如Expires屬性沒有設置,關閉當前的瀏覽器實例時,cookie將被自動消除。
注意,我們在向瀏覽器發送任何輸出時,已經創建了cookie。因為,這些cookie是頁面HTTP報頭的一部分。
在ASP 3.0中,緩沖的缺省狀態是打開的,且沒有輸出被發送,除非使用Response.Flush指定做這個工作或者頁面已到末端。這意味著創建cookie的代碼可以在頁面上的任何位置,直到任何輸出“刷新”(flush)到客戶端前,它都可以被執行。
要讀現有的cookie,使用Request.Cookies集合?梢詥为氃L問其中的項目,方法類似于創建它們時使用的方法。
StrSingleValue = Request.Cookies(“item-name”)
StrSubItemValue = Request.Cookies(“item-name”)(“sub-item-name”)
注意Request.Cookies集合(和所有其他Request集合一樣)是只讀的。Response.Cookies集合是只寫的,事實上可以訪問這個集合中一系列cookie的名稱,而不是它們的值。
遍歷Cookies集合
為了使用Cookies集合更加方便,可使用名稱為Haskeys的附加屬性。假如訪問的cookie本身也是個集合,即它是一個多值的cookie,這將返回True。使用Haskeys屬性,可以遍歷完整的Request.Cookies集合,從而獲得所有cookie的列表及它們的值。
For Each objItem In Request.Cookies
If Request.Cookies(objItem).HasKey Then
‘Use another For Each to iterate all subkeys
For Each objItemKey in Request.Cookies(objItem)
Response.Write objItem
【ASP 3.0高級編程三】相關文章:
ASP 3.0高級編程(二)10-22
ASP 3.0高級編程(一)07-29
ASP07-08
基于ASP的購物網站的設計與實現ASP+Access09-11
基于ASP.NET電子購物系統ASP.NET+SQL08-19