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

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

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

    weidagang2046的專欄

    物格而后知致
    隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
    數據加載中……

    用JSP操作Cookie

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

    雖然現在網頁的制作技術比起幾年以前已經發展了許多。不過有些時候,Cookie還是能夠幫我們很多忙的。接下來,我們就來看看,如何在寫JSP文件的時候,用JSP操作Cookie。

    二、 寫入Cookie

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

    ........(中間略)


    <%
    String cookieName="Sender";
    Cookie cookie=new Cookie(cookieName, "Test_Content");
    cookie.setMaxAge(10);
    response.addCookie(cookie);
    %>
    ........(其他內容)


    這樣我們就設置了一個Cookie,很簡單吧?

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

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

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

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

    三、 讀出Cookie

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

    ........(中間略)

    Name value

    <%
    Cookie cookies[]=request.getCookies();
    Cookie sCookie=null;
    String svalue=null;
    String sname=null;
    for(int i=0;i{
    sCookie=cookies[i];
    svalue=sCookie.getValue();
    sname=sCookie.getName();
    %>

    <%
    }
    %>

    name value
    <%=name%> <%=svalue%>

    ........(其他內容)

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

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

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

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

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

    四、 需要注意的一些問題

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

    1. Cookie的兼容性問題

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

    2. Cookie的內容

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

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

    from: http://www.3lian.com/zl/2004/10-5/22162.html

    posted on 2006-11-20 18:05 weidagang2046 閱讀(242) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 国产成人精品免费午夜app| 无码人妻一区二区三区免费看 | 亚洲免费日韩无码系列| 蜜桃成人无码区免费视频网站| 菠萝菠萝蜜在线免费视频| 久久综合日韩亚洲精品色| 免费人妻无码不卡中文字幕18禁| a拍拍男女免费看全片| 日本永久免费a∨在线视频| 亚洲国产欧美国产综合一区| tom影院亚洲国产一区二区| 久久亚洲精品成人777大小说| 亚洲av无码无在线观看红杏| 亚洲午夜精品第一区二区8050| 免费国产在线观看老王影院| 亚洲av日韩片在线观看| 成人毛片免费观看| 免费精品国产自产拍在线观看图片| 亚洲国产精品免费观看| 日本高清免费观看| 免费在线中文日本| 最近免费中文字幕mv在线电影| 国产精品免费无遮挡无码永久视频 | 亚洲精品无码乱码成人| 亚洲国产综合精品中文第一区| 亚洲色WWW成人永久网址| 亚洲大片在线观看| 激情婷婷成人亚洲综合| 搜日本一区二区三区免费高清视频| 一级毛片在线完整免费观看| 91香蕉在线观看免费高清| 99爱在线精品视频免费观看9| 亚洲精品动漫免费二区| 亚洲中文字幕无码一久久区| 亚洲国产综合专区电影在线 | 日韩免费视频观看| 亚洲av永久无码精品表情包| 亚洲二区在线视频| 国产免费阿v精品视频网址| 免费电视剧在线观看| 亚洲日韩欧洲乱码AV夜夜摸|