• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP中Cookie使用指南

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 48次 | 進入軟件測試論壇討論

    領測軟件測試網 我自己曾想寫一篇關于Cookie的文章,特別是Client端Script同Server端ASP通過Cookie交互的問題可能會困擾大家。其實是如果你對Cookie有深入的理解,特別是對域和路徑的概念比較清晰的話,就不會有問題了。
    另外想提示的一點是request.ServerVariables("HTTP_COOKIE")得到Cookie和Request.Cookies得到的結果可能會有所不同。大家思考一下為什么,會對ASP的學習提高有所幫助的。 Request.Cookies,例子:

    <TABLE BORDER="2">
    <THEAD>
    <TH>Cookie Name</TH>
    <TH>Cookie Value</TH>
    <TH>Cookie HasKeys</TH>
    </THEAD>
    <%
    Dim Item
    For Each Item in Request.Cookies
    %>
    <TR>
    <TD><% = Item %></TD>
    <TD><% = Request.Cookies(Item) %></TD>
    <TD><% = Request.Cookies(Item).HasKeys %></TD>
    </TR>
    <TR>
    <%
    If Request.Cookies(Item).HasKeys Then
    For Each strSubKey In Request.Cookies(Item)
    %>
    <TD>&bnsp;</TD>
    <TD>&bnsp;</TD>
    <TD><% = Request.Cookies(strKey)(strSubKey) %></TD>
    <%
    Next
    End If
    Next
    %>
    </TABLE>

    request.ServerVariables("HTTP_COOKIE"),粒子:
    <TABLE BORDER="2">
    <THEAD>
    <TH>Cookie Name</TH>
    <TH>Cookie Value</TH>
    </THEAD>
    <%
    Dim Item,sp,i,d
    sp = split(request.ServerVariables("HTTP_COOKIE"),"; ",-1,1)
    ' Loop through the cookie collection displaying each cookie we find

    For i=0 to UBound(sp)
    d = split(cstr(sp(i)),"=",-1,1)
    %>
    <TR>
    <TD><% = d(0) %></TD>
    <TD><% if UBound(d)=1 then Response.Write(d(1)) else Response.Write " " %></TD>
    </TR>
    <%
    Next
    %>
    </TABLE>
    重粒子@Y2K0814
    --------------------------------------------------------

    下面是甘冀平翻譯的<ASP中Cookie使用指南>

    實際上,在web開發中,cookie僅僅是一個文本文件,當用戶訪問站點時,它就被存儲在用戶使用的計算機上,其中,保存了一些信息,當用戶日后再次訪問這個站點時,web可以將這些信息提取出來。

    盡管現在聽起來cookie沒有什么激動人心的,但實際上利用它,你能實現許多有意義的功能!比如說:你可以在站點上放置一個調查問答表,詢問訪問者最喜歡的顏色和字體,然后根據這些定制用戶的web界面。并且,你還可以保存訪問者的登錄密碼,這樣,當訪問者再次訪問這個站點時,不用再輸入密碼進行登錄。

    當然,cookie也有一些不足。首先,由于利用cookie的功能可以編程實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設置是否允許或者接受cookie,因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到“藍屏”死機時,或者重新格式化硬盤、安裝系統后,原來保存的cookie將全部丟失。最后一點,有一些最初始的瀏覽器并不能支持cookie。

    利用cooklie能做什么?

    有2種使用cookie的基本方式:
    1、將cookie寫入訪問者的計算機(使用 RESPONSE 命令)
    2、從訪問者的計算機中取回cookie(使用 REQUEST 命令)

    創建cookie的基本語法

    Response.Cookies("CookieName")=value

    執行下面的代碼將會在訪問者的計算機中創建一個cookie,名字=VisitorName,值=Ken
    Response.Cookies("VisitorName")="Ken"

    執行下面的代碼將會在訪問者的計算機中創建一個cookie,名字=VisitorName,值=表單中UserName的值
    Response.Cookies("VisitorName")=Request.Form("UserName")

    讀取cookie的基本語法 

    Request.Cookies("CookieName") 

    可以將Request值當作一個變量看待,執行下面的代碼,將取回名字為KensCookie的cookie值,并存入變量MyVar:
    MyVar=Request.Cookies("KensCookie")

    執行下面的代碼,將判斷名字為KensCookie的cookie值是否為“Yes”:
    If Request.Cookies("KensCookie")="Yes" then

    功能豐富的cookie 

    你可以擴展上面的代碼成為Cookie子關鍵值(CookieSubName),代碼如下:
    Response.Cookies("VisitorName")("FirstName")="Ken" 
    Response.Cookies("VisitorName")("LastName")="Baumbach" 

    講解例子前,最后討論2個概念:命令約定和使用到期時間。

    命名約定

    同其他變量的命名一樣,合適地、獨特地命名cookie,有利于在程序中前后連貫地使用它。你可以使用下面的1個或者2個cookie屬性進行cookie變量的命名:

    域屬性(Domain):域屬性表明cookie由哪個網站產生或者讀取,默認情況下,cookie的域屬性設置為產生它的網站,但你也可以根據需要改變它。相關代碼如下:Response.Cookies("CookieName").Domain = &quotwww.mydomain.com" 

    路徑屬性(Path):路徑屬性可以實現更多的安全要求,通過設置網站上精確的路徑,就能限制cookie的使用范圍。例如:
    Response.Cookies("CookieName").Path = "/maindir/subdir/path" 

    使用到期時間

    通常情況下,當瀏覽器關閉時,一個cookie就不存在了。但是在許多時候,比如下面將要討論的web站點例子,我們希望能更長時間地在訪問者的計算機上保存cookie。很幸運,有這樣的實現方法。下面的代碼,就可以設置cookie的使用到期時間為2010年1月1日: 
    Response.Cookies("CookieName").Expires=#January 01, 2010#

    執行下面的代碼,將設定cookie的過期時間為“cookie的創建時間+365日”:
    Response.Cookies("CookieName")=Date+365

    使用cookie的實際例子(非常精彩)

    現在開始討論實際的例子。假設:你想做一個調查,每個人初次訪問時需要填寫好信息,但是當日后再訪問時,就不需要再那么做。利用cookie,就可以非常圓滿地解決這個問題,而大可不必用到數據庫。

    < %@ LANGUAGE="VBSCRIPT" % >
    < % 
    Survey=Request.Cookies("KensSurvey")
    If Survey ="" then
    Response.Cookies("KensSurvey")="x"
    Response.Cookies("KensSurvey").Expires=#January 01, 2010#
    Response.Redirect "survey.asp"
    Else
    'rest of the page
    End if
    % >
    好,下面開始從頭討論上面的代碼。

    首先,初始設置頁面,并讀取名字為KensSurvey的cookie值:


    < %@ LANGUAGE="VBSCRIPT" % >
    < % 
    Survey=Request.Cookies("KensSurvey")
    然后,判斷是否已經存在cookie值:

    If Survey ="" then
    如果不存在, 就創建并設置cookie,并轉到頁面survey.asp。 當下一次訪問時,因為存在cookie值,就不會再轉到survey.asp 頁面。

    Response.Cookies("KensSurvey")="x"
    Response.Cookies("KensSurvey").Expires=#January 01, 2010#
    Response.Redirect "survey.asp"
    如果cookie已經存在,那么訪問者將執行頁面中剩余的代碼:

    'rest of the page

    End if
    % >
    例子2 

    這里有另外一個簡單的例子:當訪問者第1次瀏覽某個站點時,向他們顯示歡迎信息。代碼如下:

    < %@ LANGUAGE="VBSCRIPT" % >
    < % 
    RequestName = Request.Form("Name")
    RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
    If RequestName < >"" or RequestLeaveMeAlone < >"" then
    Response.Cookies("MySiteVisitorName") = RequestName
    Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
    Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
    Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
    End if 
    VisitorName = request.cookies("MySiteVisitorName")
    LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")

    If VisitorName ="" and LeaveMeAlone ="" then
    % >
    < HTML > < HEAD > < /HEAD >
    < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
    < DIV ALIGN="CENTER" >
    < form action="index.asp" method="POST" >
    < H2 >Let's be friends< /H2 >
    What's your name (leave blank and hit the Submit button if you don't want us to know)? 
    < input type="text" name="name" >< BR >< BR >
    < input type="hidden" name="LeaveMeAlone" value="x" >
    < input type="submit" value="Submit" >
    < /FORM >
    < /DIV >
    < /BODY >
    < %
    End if
    If VisitorName < > "" then
    Response.write "Hi, " & VisitorName & "! I hope you are having a great day!"
    End if
    'rest of the page
    % >
    好,現在來看看上面的代碼實現執行了什么。首先,設置頁面。然后,檢查表單變量(在同一個頁面中)。如果表單變量存在,就創建cookie,并設置到期時間。

    < %@ LANGUAGE="VBSCRIPT" % >
    < % 
    RequestName = Request.Form("Name")
    RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
    If RequestName < >"" or RequestLeaveMeAlone < >"" then
    Response.Cookies("MySiteVisitorName") = RequestName
    Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
    Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
    Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
    End if 

    接著,讀取cookie:

    VisitorName = request.cookies("MySiteVisitorName")
    LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")
    如果cookie在訪問者的計算機上不存在,就創建一個表單,詢問相關信息:

    If VisitorName ="" and LeaveMeAlone ="" then
    % >
    < HTML >
    < HEAD >
    < /HEAD >
    < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
    < DIV ALIGN="CENTER" >
    < form action="index.asp" method="POST" >
    < H2 >Let's be friends< /H2 >
    What's your name (leave blank and hit the Submit button if you don't want us to know)? 
    < input type="text" name="name" >< br >< br >
    < input type="hidden" name="LeaveMeAlone" value="x" >
    < input type="submit" value="Submit" >
    < /FORM >
    < /DIV >
    < /BODY >
    < %
    End if
    如果cookie已經存在,并且用戶名字存在,就顯示給訪問者一個歡迎界面,然后執行其余的代碼。

    If VisitorName < > "" then
    Response.write "Hi, " & VisitorName & "! I hope you are having a great day!"
    End if
    'rest of the page
    % >


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>