<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    一、 前言

      說起來,Cookie應(yīng)該是一種應(yīng)用較久的技術(shù)了。早在HTML剛剛出現(xiàn)的時候,在每個獨立的頁面之間沒有辦法記錄和標識不同的用戶。后來人們就發(fā)明了Cookie技術(shù),當(dāng)用戶訪問網(wǎng)頁時,它能夠在訪問者的機器上創(chuàng)立一個文件,我們把它叫作Cookie,寫一段內(nèi)容進去,來標識不同的用戶。如果下次用戶再訪問這個網(wǎng)頁的時候,它又能夠讀出這個文件里面的內(nèi)容,這樣網(wǎng)頁就知道上次這個用戶已經(jīng)訪問過該網(wǎng)頁了。

      雖然現(xiàn)在網(wǎng)頁的制作技術(shù)比起幾年以前已經(jīng)發(fā)展了許多。不過有些時候,Cookie還是能夠幫我們很多忙的。接下來,我們就來看看,如何在寫JSP文件的時候,用JSP操作Cookie。


    二、 寫入Cookie

      其實用JSP操作Cookie是非常簡單的,我們來看下面一段JSP程序:

    <html>
    <head>........(中間略)
    </head>
    <body>
    <%
    String cookieName="Sender";
    Cookie cookie=new Cookie(cookieName, "Test_Content");
    cookie.setMaxAge(10);
    response.addCookie(cookie);
    %>
    ........(其他內(nèi)容)
    </body>
    </html>

      這樣我們就設(shè)置了一個Cookie,很簡單吧?

      我們來仔細研究一下這段代碼:

      Cookie cookie=new Cookie(cookieName, "Test_Content");

      這一行建立了一個Cookie對象,初始化有兩個參數(shù),第一個參數(shù)cookieName定義了Cookie的名字,后一個參數(shù),也是一個字符串,定義了Cookie的內(nèi)容。也就是我們希望網(wǎng)頁在用戶的機器上標識的文件內(nèi)容。

      接下來一行:cookie.setMaxAge(10),調(diào)用了Cookie中的setMaxAge方法,設(shè)定Cookie在用戶機器硬盤上的存活期為10秒。一個Cookie在用戶的硬盤里面存在的時間并不是無限期的,在建立Cookie對象的時候,我們必須制定Cookie的存活期,超過了這個存活期后,Cookie文件就不再起作用,會被用戶的瀏覽器自行刪除。如果我們希望用戶在下次訪問這個頁面的時候,Cookie文件仍然有效而且可以被網(wǎng)頁讀出來的話,我們可以將Cookie的存活期設(shè)得稍微長一些。比如cookie.setMaxAge(365*24*60*60)可以讓Cookie文件在一年內(nèi)有效。


    三、 讀出Cookie

      Cookie文件創(chuàng)建好后,自然還需要我們把它讀出來,否則我們不是白費力氣嗎?接下來我們看看如何讀出在用戶硬盤上的Cookie。

    <html>
    <head>........(中間略)
    </head>
    <body>
    <table border=1>
    <tr><td>Name</td><td>value</td></tr>
    <%
    Cookie cookies[]=request.getCookies();
    Cookie sCookie=null;
    String svalue=null;
    String sname=null;
    for(int i=0;i<cookies.length;i++)
    {
    sCookie=cookies[i];
    svalue=sCookie.getValue();
    sname=sCookie.getName();
    %>
    <tr><td><%=name%></td><td><%=svalue%></td></tr>
    <%
    }
    %>
    </table>
    ........(其他內(nèi)容)
    </body>
    </html>

      這一小段JSP文件可以讀出用戶硬盤上的所有有效的Cookie,也就是仍然在存活期內(nèi)的Cookie文件。并用表格的形式列出每個Cookie的名字和內(nèi)容。

      我們來逐行分析一下這段代碼:

      Cookie cookies[]=request.getCookies() 我們用request.getCookies()讀出用戶硬盤上的Cookie,并將所有的Cookie放到一個cookie對象數(shù)組里面。

      接下來我們用一個循環(huán)語句遍歷剛才建立的Cookie對象數(shù)組,我們用sCookie=cookies[i]取出數(shù)組中的一個Cookie對象,然后我們用sCookie.getValue()和sCookie.getName()兩個方法來取得這個Cookie的名字和內(nèi)容。

      通過將取出來的Cookie的名字和內(nèi)容放在字符串變量中,我們就能對其進行各種操作了。在上面的例子里,可通過循環(huán)語句的遍歷,將所有Cookie放在一張表格中進行顯示。


    四、 需要注意的一些問題

      通過上面兩個簡單的例子,可以看到,用JSP進行Cookie的操作,是非常簡單的。不過我們在實際操作中還要注意一些問題:

      1. Cookie的兼容性問題

      Cookie的格式有2個不同的版本,第一個版本,我們稱為Cookie Version 0,是最初由Netscape公司制定的,也被幾乎所有的瀏覽器支持。而較新的版本,Cookie Version 1,則是根據(jù)RFC 2109文檔制定的。為了確保兼容性,JAVA規(guī)定,前面所提到的涉及Cookie的操作都是針對舊版本的Cookie進行的。而新版本的Cookie目前還不被Javax.servlet.http.Cookie包所支持。

      2. Cookie的內(nèi)容

      同樣的Cookie的內(nèi)容的字符限制針對不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括號,圓括號,等于號(=),逗號,雙引號,斜杠,問號,@符號,冒號,分號都不能作為Cookie的內(nèi)容。這也就是為什么我們在例子中設(shè)定Cookie的內(nèi)容為“Test_Content”的原因。

      雖然在Cookie Version 1規(guī)定中放寬了限制,可以使用這些字符,但是考慮到新版本的Cookie規(guī)范目前仍然沒有為所有的瀏覽器所支持,因而為保險起見,我們應(yīng)該在Cookie的內(nèi)容中盡量避免使用這些字符。


    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=133385

    posted on 2006-12-13 16:59 蘆葦 閱讀(976) 評論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 国产免费久久精品丫丫| 亚洲一级毛片在线播放| 91成人免费福利网站在线| 国产a级特黄的片子视频免费| 亚洲欧美日韩久久精品| 男人的好看免费观看在线视频| 亚洲一区二区三区在线网站| 国产一卡二卡3卡四卡免费| 亚洲免费福利视频| 妞干网免费视频观看| 国产天堂亚洲国产碰碰| 亚洲人妻av伦理| A级毛片高清免费视频在线播放| 亚洲av之男人的天堂网站| 99久热只有精品视频免费看 | 男女啪啪免费体验区| 亚洲国产香蕉人人爽成AV片久久 | 亚洲精品国产精品| 亚洲成人高清在线| 久久免费视频观看| 亚洲国产中文在线二区三区免| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 啦啦啦中文在线观看电视剧免费版 | 国产精品无码一二区免费| 一级特黄录像视频免费| 亚洲va在线va天堂va888www| 精品福利一区二区三区免费视频| 91在线亚洲综合在线| 亚洲国产小视频精品久久久三级 | 免费少妇a级毛片人成网| 97在线免费视频| 亚洲成a人片毛片在线| 国产精品高清全国免费观看| 97超高清在线观看免费视频| 亚洲成在人线电影天堂色| 国产传媒在线观看视频免费观看| baoyu777永久免费视频| 国产精品亚洲综合五月天| 亚洲日韩国产精品乱| 中文毛片无遮挡高潮免费| 一本久久免费视频|