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

首頁 > 編程 > ASP > 正文

在ASP中訪問和更新Cookies集合

2024-05-04 11:07:40
字體:
來源:轉載
供稿:網友
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 & “(“ & objItemKey & “) = “_
& Request.Cookies(objItem)(objItemKey) & “<BR>”
Next
Else
‘Print out the cookie string as normal
Response.Write objItem & “ = ”& Request.Cookies(objItem) & “<BR>”
End If
Next


  這非常類似于前面的從Request.Form集合中提取多個值的復雜代碼。但是這里可以使用Haskeys屬性來判別每個條目是否為一個集合。而在Form例子里,必須查詢Request.Form(item_name).Count屬性,這是因為Form集合(和所有的除cookie外的其他集合)成員不可能是真正的集合。ASP只是做了“幕后”的工作,得到了每個多條目集合的值。

  Form和QueryString的差異

  了解了訪問各種ASP集合的技術以后,需要解決另一個問題是:Form和QueryString集合之間的差異是什么?假如準備使用ASP,毫無疑問應該清楚這種差異,但需要參考HTTP工作方式來重新認識,理解它們。

  通過HTTP從Web服務器請求頁面或其他資源,有兩個通用的方法??墒褂肎ET方法直接獲得資源,也可使用POST把值傳給相應資源。GET方法是缺省的,可以看一下本章前面的一個HTTP請求的實例:

  7/8/99 10:27:16 Sent GET /Store/Download.asp HTTP/1.1

  假如把一個或多個成對的名稱/值附在請求頁面的URL后,就變成請求的查詢字符串,且在QueryString集合中提供給ASP頁面。單擊Web頁面、Email消息或其它文檔的超鏈接,或在瀏覽器的地址欄中輸入地址并按回車,或單擊瀏覽器中的Links或Favorites按鈕,所有這些都要使用GET方法。

  因此,對這些動作中傳遞值給ASP的唯一方法是通過QueryString集合,把值附在URL后。

  出現在Request.QueryString集合中并被訪問的值,與前面看到的Form集合實例中的工作方式相同。URL和查詢字符串的結合:

  http://mysite.com/process_page.asp?FirstName=Priscilla&LastName=Descartes

  可以采用如下方式訪問在QueryString集合中提供的值:
 

 

strFirstName = Request.QueryString(“FirstName”) ‘Return “Priscilla”
strLastName = Request.QueryString(“LastName”) ‘Return “Descartes”
strRaw = Request.QueryString
‘Return “FirstName=Priscilla&LastName=Descartes”

 

 


  窗體的GET和POST方法

  在一個頁面內使用<FORM>段時,可以設置打開的FORM標記的METHOD屬性值為“GET”或“POST”,缺省值為“GET”。假如使用“GET”或省略其屬性,瀏覽器將該值綁定在頁面所有控件上,成為一個查詢字符串,且附在被請求頁面的URL上。

  當這個請求到達Web服務器時,其值由ASP的Request.QueryString集合提供。然而,假如設置METHOD屬性為“POST”,瀏覽器將值包裝進發送服務器的HTTP報頭中,通過Request.Form集合提供給ASP。

  通過來說,可以在所有的HTML窗體中使用POST方法。然而,瀏覽器或服務器的URL字符串長度存在一定的限制。因此,附有長的字符串可能會引起溢出和某些字符串的字符被截掉。同時,查詢字符串出現在瀏覽器的地址欄和所有的保存的鏈接和收藏夾中。不僅如此,還顯露了通過Web服務器時在HTTP請求中不想顯示的值,它也可能出現你的服務器和其他路由服務器的日志文件中。在HTTP請求報頭中的值很少是可見的,并且不出現在日志文件中。

  使用POST方法需要注意的小問題是,當用戶重新下載<FORM>時,窗體的值將不再保留,其值為空且必須重新輸入。然而,當附在URL上時,其值被存儲為一個鏈接,將被保留,因此將出現在所有的URL與字符串結合的請求中,這或許是個優點也可能是個缺點,這根據應用而定(一些瀏覽器在客戶端上能夠在一定范圍內自動保留一個頁面上的值)。

  另一點是URL與查詢字符串的結合體不能包含任何空格或其他非法字符,否則的話,Navigator和一些其他的瀏覽器將出現問題。非法字符是那些用來分隔URL和查詢字符串的部分,例如“/”、“:”、“?”和“&”(IE能夠自動將空格轉換為正確的格式——加號“+”,但其他的非法字符不能處理)

  ASP中的cookie的使用

  在這一節我們將學習那些提供給ASP代碼使用的集合、方法和屬性的各種技術。

  1) cookie中存儲用戶的細節情況

  可以使用cookie來存儲這兩類值:當瀏覽器關閉時我們不想保存的值(例如用戶的注冊信息)以及在用戶訪問站點時要保留的值。在每種情況下cookie的值對于來自用戶瀏覽器的每個頁面請求的ASP都是可用的。

  然而,需要記住的是,cookie只有在對Cookie中的虛擬路徑(path)內的頁面發出請求時,才會發往服務器。缺省時,假如path的值在cookie中沒有設置,則其值為創建cookie的頁面的虛擬路徑。為使一個cookie發往一個站點的所有頁面,需要使用path=“/”。
這里是個實例,從自定義的Login頁面中,將用戶的注冊信息存貯在一個cookie中,由于沒有應用有效期,cookie值僅在關閉這個瀏覽器這前保留:
 

 

 

...
Request.Cookies(“User”)(“UID”) = “<% = Request(“UserName”) %>”
Request.Cookies(“User”)(“PWD”) = “<% = Request(“Password”) %>”
Request.Cookies(“User”).Path = “/adminstuff” ‘Only applies to admin pages
...

 

 


  現在,在用戶從adminstuff目錄或其子目錄請求的每個頁面中,都可以找到這個cookie。假如它不存在,可以將用戶重定向到注冊頁面:
 

 

 

If (Request.Cookies(“User”)(“UID”) <> “alexhomer”) _
Or (Request.Cookies(“User”)(“PWD”) <> “secret”) Then
Response.Redirect “login.asp?UserName=” & Request.Cookies(“User”)(“UID”)
End If
...

 

 


  由于把cookie中的用戶名放在Response.Redirect的URL查詢字符串中,假如在口令輸入時出現錯誤且希望用戶不必重新鍵入用戶名,可以在login.asp頁面中使用它:
 

 

 

<FORM ACTION=”check_user.asp” METHOD=”POST”>
<INPUT TYPE=”TEXT” NAME=”UserName”
VALUE=”<% = Request.QueryString(“UserName”) %>”><P>
<INPUT TYPE=”SUBMIT” VALUE=”LOGIN”>
</FORM>

 

 


  2) 修改現有的cookie

  可以使用ASP修改現有的cookie,但不能只修改cookie中的一個值。當更新一個在Response.Cookies集合中的Cookie時,現有的值將丟失。我們可以用如下代碼創建一個cookie,可以使用:
 

 

 

Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart
Response.Cookies(“VisitCount”)(“LastDate”) = Now
Response.Cookies(“VisitCount”)(“Visits”) = CStr(intVisits)
Response.Cookies(“VisitCount”).Path = “/” ‘Apply to entire site
Response.Cookies(“VisitCount”).Expires = DateAdd(“m”,3,Now)

 

 


  假如想要更新Visits和LastDate的值,必須先不需改變的所有值,然后重寫整個的cookie:
 

 

 

datDtart = Response.Cookies(“VisitCount”)(“StartDate”)
intVisits = Response.Cookies(“VisitCount”)(“Visits”)
Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart
Response.Cookies(“VisitCount”)(“LastDate”) = Now
Response.Cookies(“VisitCount”)(“Visits”) = Cstr(intVisits)
Response.Cookies(“VisitCount”).Path = “/”
Response.Cookies(“VisitCount”).Expires = DateADD(“m”,3,Now + 1)且對于幾乎所有的其他Response方法和屬性,應該在寫入任何內容(即打開<HTML>標記或任何文本或其他的HTML)到響應之前完成這個工作。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人精品电影| 国产成人av网址| 欧美精品激情在线| 日韩美女主播视频| 黄网站色欧美视频| 中文字幕亚洲情99在线| 亚洲精品视频在线观看视频| 97视频在线观看免费| 人人爽久久涩噜噜噜网站| 欧美视频中文在线看| 成人国产精品免费视频| 欧美在线激情视频| 亚洲电影免费观看高清完整版在线| 国产精品美女免费视频| 欧美日韩国产在线| 日韩国产激情在线| 97精品欧美一区二区三区| 久久免费视频网站| 亚洲一区二区三区毛片| 96国产粉嫩美女| 久久久久久久久久久国产| 国产精品mp4| 亚洲影院在线看| 伊人久久综合97精品| 成人中文字幕+乱码+中文字幕| 亚洲成人久久网| 国产福利精品av综合导导航| 成人av.网址在线网站| 亚洲色图50p| 一区二区三区回区在观看免费视频| 91精品久久久久| 国产v综合ⅴ日韩v欧美大片| 久久久中文字幕| 精品av在线播放| 欧美成人午夜免费视在线看片| 欧美寡妇偷汉性猛交| 久久九九全国免费精品观看| 色偷偷亚洲男人天堂| 91久久久亚洲精品| 国产亚洲精品一区二555| 亚洲精品资源在线| 97免费中文视频在线观看| 亚洲色图校园春色| 亚洲缚视频在线观看| 国产经典一区二区| 久久久久久综合网天天| 亚洲第一av网站| 亚洲欧美制服中文字幕| 久久精品99久久久久久久久| 亚洲天堂开心观看| 91精品国产91久久久久久久久| 亚洲国产成人精品久久久国产成人一区| 亚洲激情第一页| 欧美国产高跟鞋裸体秀xxxhd| 国产精品啪视频| 国内外成人免费激情在线视频网站| 欧美日韩精品在线播放| 国产日韩欧美成人| 成人免费网站在线观看| 欧美性极品xxxx做受| 国产成人黄色av| 国产精品色视频| 欧美激情手机在线视频| 在线观看中文字幕亚洲| 成人在线精品视频| 欧美最猛性xxxx| 欧美电影在线播放| 欧美性猛交xxxx免费看| 久久天天躁狠狠躁夜夜av| 97免费视频在线| 久久免费少妇高潮久久精品99| 亚洲欧洲一区二区三区在线观看| 亚洲欧洲国产一区| 九九热在线精品视频| 亚洲日韩欧美视频一区| 欧美国产视频日韩| 久久久这里只有精品视频| 国产日产久久高清欧美一区| 亚洲另类xxxx| 久久久久久久久久久网站| 成人有码在线播放| 精品国产91久久久久久老师| 欧美性猛交xxxx免费看久久久| 一道本无吗dⅴd在线播放一区| 欧美精品激情在线| 欧美激情视频在线免费观看 欧美视频免费一| 国产一区二区三区免费视频| 欧美成aaa人片在线观看蜜臀| 亚洲欧美日韩爽爽影院| 欧美日韩一区二区在线| 3344国产精品免费看| 欧日韩在线观看| 国产精品亚洲аv天堂网| 精品人伦一区二区三区蜜桃免费| 久青草国产97香蕉在线视频| 大量国产精品视频| 在线观看国产成人av片| 韩国国内大量揄拍精品视频| 欧美中文字幕在线| 日韩性xxxx爱| 国模私拍一区二区三区| 日韩欧美中文字幕在线播放| 久久电影一区二区| 热re99久久精品国产66热| 最近更新的2019中文字幕| 欧美国产日韩视频| 亚洲色图狂野欧美| 亚洲国产91精品在线观看| 91精品国产成人www| 亚洲日本欧美日韩高观看| 日韩av影视综合网| 亚洲男人av在线| 国产91精品黑色丝袜高跟鞋| …久久精品99久久香蕉国产| 91国自产精品中文字幕亚洲| 黄色一区二区三区| 亚洲护士老师的毛茸茸最新章节| 81精品国产乱码久久久久久| 自拍偷拍免费精品| 高清欧美性猛交| 亚洲黄色成人网| 91超碰中文字幕久久精品| 亚洲午夜性刺激影院| 成人黄色在线免费| 精品国产乱码久久久久酒店| 美女福利精品视频| 成人激情电影一区二区| 日本亚洲精品在线观看| 国产精品免费一区二区三区都可以| 久久精品国产久精国产一老狼| 午夜精品久久久久久久白皮肤| 精品成人在线视频| 国产精品白嫩初高中害羞小美女| 欧美老女人在线视频| 91精品视频免费看| 久久免费视频这里只有精品| 久久精品国产亚洲| 26uuu日韩精品一区二区| 欧美午夜宅男影院在线观看| 欧美日韩成人在线观看| 中文字幕欧美在线| 久久久久久久久久久免费精品| 国产不卡精品视男人的天堂| 欧美另类极品videosbest最新版本| 亚洲欧美国内爽妇网| 国产精品一区二区3区| 欧美黑人国产人伦爽爽爽| 日韩电视剧在线观看免费网站| 亚洲欧美国产精品专区久久| 精品久久久国产精品999| 欧美一级电影免费在线观看| 久久777国产线看观看精品| 久久久久久久久91| 成人写真福利网| 国产综合福利在线| 亚洲欧美福利视频| 亚洲成色777777在线观看影院| 久久久国产精彩视频美女艺术照福利| 日韩中文字幕在线视频播放| 黄色成人在线免费| 国产精品视频久久久久| 51精品国产黑色丝袜高跟鞋| 国产精品激情av在线播放| 日韩a**中文字幕|