Request和Response物件都有一組Cookie。 Request.cookie集合是一系列Cookie,從客戶端與HTTP Request一起傳送到Web伺服器。反過來,如果你希望把Cookie送到客戶機,就可以使用Response.cookie。 Cookie是一種傳送到客戶瀏覽器的文字串句柄,並保存在客戶機硬碟上,可以用來在某個Web網站工作階段之間持久地保持資料。 Request和Response物件都有一組Cookie。 Request.cookie集合是一系列Cookie,從客戶端與HTTP Request一起傳送到Web伺服器。反過來,如果你希望把Cookie送到客戶機,就可以使用Response.cookie
1、ExpiresAbsolute屬性
這個屬性可以賦一個日期,過了這個日期Cookie就不能再被使用了。透過為Expires屬性賦一個過期的日期,就可以刪除Cookie。如:
<%Response.cookies(passtime).expiresAbsolute=1/1/99%>
2、Domain屬性
此屬性定義Cookie要傳送的唯一域。如:Cookie只傳送給Microsoft的人,則可使用下列程式碼。
<%Response.Cookies(domain).Domain=www.microsoft.com%>
3.ASP用來寫入Cookie即傳送Cookie的語法給客戶端:
Response.Cookie(Cookie名稱).[(鍵名).屬性]=內容
如果某個ASP檔案要建立一個Cookie,則下面的程式碼可以放在ASP檔案的第一個<html>之前,以避免產生錯誤.
<%Response.Cookies(CookieName)=NewCookie %>
<html>
.....
</html>
4.同樣ASP用Request物件的Cookies集合來讀取Cookie,如:
<%Response.write Request.Cookies(CookieName)%>
以下以一個完整的例子來說明Cookie:
複製代碼代碼如下:
<%
dim Num
Num=Request.Cookies(Visit_num)
if Num>0 then
Num=Num+1
Response.write 您已經是第& Num & 次造訪本網站了。
else
Response.write 歡迎您首次造訪本站。
Num=1
end if
Response.Cookies(Visit_num)=Num
%>
在這個範例中,先讀取Cookies變數Visit_num,看用戶端電腦是否儲存有Cookies變數。如果有該變量,則表示使用者已經造訪過該頁面,同時輸入出造訪次數。如果使用者是首次造訪該頁面,則其電腦內不會有Cookies變量,程式會顯示歡迎字樣,然後將Cookies變數Visit_num存到使用者電腦中,以便該使用者下次造訪該頁面時給予造訪的次數資訊。
5、Cookie字典
有時在一個頁面中可能需要定義很多個Cookies變量,為了更好地管理它,在Cookies元件中常引入一人的概念子鍵。引用它的語法如下:
Request.Cookies(變更名)(子鍵名)
如下面的Cookie建立一個名為Dictionary的字典,其中保存了三個鍵值:
複製代碼代碼如下:
<%
Response.Cookie(info)(Myname)=jeff
Response.Cookie(info)(Gender)=male
Response.Cookie(info)(Myheight)=172
%>
事實上客戶機上的Cookie字典是以字串的形式存在:
info=Myname=jeff&Gender=male&Myheight=172
如果使用者沒有指定子鍵名而直接引用Cookies變量,將會傳回一個包含所有的子鍵名及值的字串。例如上面這個範例包含三個子鍵:Myname、Gender和Myheight,當使用者沒有指定其子鍵而直接透過Request.Cookies(info)來引用時,則會得到下列字串:
info=Myname=jeff&Gender=male&Myheight=172
如果要把Cookie中讀取的所有數據,可以用下面的程式碼得到:
複製代碼代碼如下:
<%For each cookie in Request.Cookies
if Not cookie.HasKeys then
Response.write cookie & = & Request.Cookies(cookie)
Else
for each key in Request.Cookies(cookie)
Response.write cookie&(&key&)&=& Request.Cookies(cookie)(key)
next
end if
next
%>
以下是具體的在頁面中記錄查詢的記錄的程式碼
複製代碼代碼如下:
Sub SetCookie
Dim C_DomainList,C_i
C_DomainList=Request.Cookies(jb51)(C_DomainList)
If Domain<> and C_DomainList<> then
If not instr(C_DomainList,Domain&|)>0 then C_DomainList=Domain&|&C_DomainList
End if
If Domain<> and C_DomainList= then
C_DomainList=Domain&|
End if
If C_DomainList<> then
Response.write <div id=C_domainlist>您關注的網站:
C_arrDomain = split(C_DomainList,|)
C_DomainList=
numDomain=ubound(C_arrDomain)-1
If numDomain>4 then numDomain=4
for C_i=0 to numDomain
Response.write <a href=?url=&C_arrDomain(C_i)&>&C_arrDomain(C_i)&</a> |
C_DomainList=C_DomainList&C_arrDomain(C_i)&|
next
Response.Cookies(jb51)(C_DomainList)=C_DomainList
Response.Cookies(jb51).Expires=Date+30
Response.write <a href=# style=cursor:pointer onClick=clearCookie('jb51');alert('已清除記錄!');>清除記錄</a></div>
End If
End Sub