深入認識學習ASP應用Cookies的技巧

2021-05-24 07:58:20 字數 4969 閱讀 5784

什麼是 cookie?cookie 其實是乙個標籤,經常可能聽到的中文翻譯:小舔餅。當你訪問乙個需要唯一標識你的站址的 web 站點時,它會在你的硬碟上留下乙個標記,下一次你訪問同乙個站點時,站點的頁面會查詢這個標記。

每個 web 站點都有自己的標記,標記的內容可以隨時讀取,但只能由該站點的頁面完成。每個站點的cookie與其他所有站點的cookie存在同一資料夾中的不同檔案內(你可以在 win98 的 windows 目錄下的 cookie 資料夾中找到它們,而 win2k 則在 documents and settings 資料夾下特定使用者的 cookies 資料夾中)。

乙個 cookie 就是乙個唯一標識客戶的標記,cookie 可以包含在乙個對話期或幾個對話期之間某個 web 站點的所有頁面共享的資訊,使用 cookie 還可以在頁面之間交換資訊。這項功能經常被使用在要求認證客戶密碼以及電子公告板、web 聊天室等 asp 程式中。

當然,cookie也有一些不足。首先,由於利用cookie的功能可以程式設計實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設定是否允許或者接受cookie(ie瀏覽器中「工具」--「internet選項...」--「安全」--「自定義級別」--「cookie的使用」;netscape瀏覽器中「工具」--「cookie管理器」--「管理貯存的cookie」即可),因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到「藍屏」宕機時,或者重新格式化硬碟、安裝系統後,原來儲存的cookie將全部丟失。最後一點,有一些最初始的瀏覽器並不能支援cookie。

◆ 怎樣利用cooklie?

有2種使用cookie的基本方式:

1、將cookie寫入訪問者的計算機(使用 response 命令)

2、從訪問者的計算機中取回cookie(使用 request 命令)

◆ 建立cookie的基本語法: response.cookies(cookie)[(key)|.attribute]=value

這裡的 cookie 是指定 cookie 的名稱。

而如果指定了 key,則該 cookie 就是乙個字典。

(測試一cookie是否為乙個字典可用後面**顯示布林值:<%=request.cookies("cookiename").haskeys%>。為true是字典,false則不是。 )

attribute 指定 cookie 自身的有關資訊。attribute 引數可以是下列之一 :

①domain 若被指定,則 cookie 將被傳送到對該域的請求中去。域屬性表明cookie由哪個**產生或者讀取,預設情況下,cookie的域屬性設定為產生它的**,但你也可以根據需要改變它。(response.cookies("cookiename").domain = "www.dwww.cn")

②path 為一路徑屬性,該屬性可以實現更多的安全要求,通過設定**上精確的路徑,就能限制cookie的使用範圍。如果未設定該屬性,則使用應用程式的路徑。(response.cookies("cookiename").path = "/maindir/subdir/path" )

③expires 指定 cookie 的過期日期。為了在會話結束後將 cookie 儲存在客戶端磁碟上,或在許多時候,我們希望能更長時間地在訪問者的計算機上儲存cookie。必須設定該日期。若此項屬性的設定未超過當前日期,則在任務結束後 cookie 將到期。

後面的**,就可以設定cookie的使用到期時間為「2023年1月1日」: response.cookies("cookiename").expires=#january 01, 2010#

後面的**,將設定cookie的過期時間為「cookie的建立時間+365天」:response.cookies("cookiename").expires=date+365

但最好不要隨便寫 response.cookies("cookiename").expires=date,這樣頁面之間的呼叫時值會為空。

執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=ken :

response.cookies("visitorname")="ken"

執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=表單中username的值

response.cookies("visitorname")=request.form("username")

你可以擴充套件下面的**成為cookie子關鍵值(cookiesubname),即cookie字典的生成。**如下:

response.cookies("visitorname")("firstname")="ken"

response.cookies("visitorname")("lastname")="baumbach"

◆ 讀取cookie的基本語法:request.cookies(cookie)[(key)|.attribute]

cookie 指定要檢索其值的 cookie。

key 可選引數,用於從 cookie 字典中檢索子關鍵字的值。

attribe 指定 cookie 自身的有關資訊。如:haskeys 唯讀,指定 cookie 是否包含關鍵字。

如果客戶端瀏覽器傳送了兩個同名的 cookie,那麼 request.cookie 將返回其中路徑結構較深的乙個。例如,如果有兩個同名的的 cookie,但其中乙個的路徑屬性為 /www/ 而另乙個為 /www/home/,客戶端瀏覽器同時將兩個 cookie 都傳送到 /www/home/ 目錄中,那麼 request.cookie 將只返回第二個 cookie。

案例分析:

◆ num.asp(通過留在本地磁碟上的cookie記錄一年內訪問本站的次數,第一次顯示「首次訪問」,以後顯示「第幾次訪問」)

<%

dim num

num=request.cookies("visitnum")

if num > "0" then

num=num+1

response.write "您已是第"&num&"次訪問本站點了。"

else

response.write "歡迎您首次訪問本站。"

num=1

end if

response.cookies("visitnum")=num

response.cookies("visitnum").expires=date+365

%>

◆ showcookie.asp(從cookies資料夾中遍歷出瀏覽器所有的cookie name,以及相關的字典cookie的顯示(藍字顯示))

<%

for each cookie in request.cookies

if request.cookies(cookie).haskeys =false then

response.write cookie & "=" & request.cookies(cookie)

response.write ("

") else

for each key in request.cookies(cookie)

response.write ("")

response.write cookie & ".("&key&")" & "=" & request.cookies(cookie)(key)

response.write ("

") next

end if

next

%>

◆ check.asp

'首先,設定頁面。然後,檢查表單變數(在同乙個頁面中)。如果表單變數存在,就建立cookie,並設定到期時間。

<%@ language="vbscript" %>

<%

bgcolor = request.form("bgcolor")

fgcolor = request.form("fgcolor")

pwd = request.form("pwd")

if bgcolor <>"" or fgcolor <>"" then

response.cookies("check")("bgcolor") = bgcolor

response.cookies("check")("fgcolor") = fgcolor

response.cookies("check")("pwd") = pwd

response.cookies("check").expires=#may 01, 2004#

end if

'接著,讀取cookie

bgcolor = request.cookies("check")("bgcolor")

fgcolor = request.cookies("check")("fgcolor")

pwd = request.cookies("check")("pwd")

'如果cookie在訪問者的計算機上不存在,就建立乙個表單,詢問相關資訊

if bgcolor ="" and fgcolor ="" and pwd="" then

%>

<%

end if

'如果cookie已經存在,並且bgcolor存在,就跳轉到color.asp。

if bgcolor <> "" then

response.redirect "color.asp"

end if

%>

◆ color.asp(顯示使用者愛好顏色的頁面特性)

<%

bgcolor=request.cookies("check")("bgcolor")

fgcolor=request.cookies("check")("fgcolor")

pwd=request.cookies("check")("pwd")

%>

<%response.write("")%>

你的密碼是:

<%response.write(" "&pwd&" ")%>

WCF學習 (三)深入認識WCF契約

從soa概念上講,契約屬於服務公開介面的一部分。乙個服務契約,定義了服務端公開的服務方法,使用傳輸協議,可訪問位址,傳輸的訊息格式等內容。換句話說 契約描述了該服務的功能和作用,它告訴soa系統中的其他節點這個服務是幹什麼的 1 服務契約 客戶端能夠執行的操作 a servicecontract 宣...

ASP高階學習必經之認識數學函式11種

在這篇asp之數學函式裡,以 的形式,讓大家了解到關於asp中能用到的數學函式,裡面包括乙個數的絕對值 乙個數的平方根,角度的正弦 余弦值等。函式 語法 功能 abs abs num 返回乙個數的絕對值 sqr squ num 返回乙個數的平方根 sin sin num 返回角度的正弦值 cos c...

鴻蒙應用開發學習系列 深入了解鴻蒙開發核心

本文將詳細地講解蒙應用開發的核心 ability和執行緒,帶你深入了解ability的fa feature ability 和 pa particle ability 兩種型別 並學習使用在harmonyos中用於處理執行緒間通訊的eventhandler機制 此外還有的詳細步驟教你使用鴻蒙的開發工...