在jsp中怎麼使用Cookie?el運算式中擷取cookie的問題__js

來源:互聯網
上載者:User
在jsp中怎麼使用Cookie? 2006-10-04 01:27 diqigan0623   |   分類:其他程式設計語言  |  瀏覽21873次
初學jsp,不清楚cookie的使用方法,希望高手指點一下。
分享到: 2006-10-04 09:12 提問者採納
一般來說有兩種辦法,在JSP中使用Java的嵌入指令碼.例如:寫入Cookie<html><head>........(中間略)</head><body><%String cookieName="Sender";Cookie cookie=new Cookie(cookieName, "Test_Content");cookie.setMaxAge(10);response.addCookie(cookie);%>........(其他內容)</body></html>  這樣我們就設定了一個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。<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>........(其他內容)</body></html>  這一小段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的內容中盡量避免使用這些字元。另一種方法是用Javascript指令碼來操作Cookie兩種方法操作Cookie的具體方法可以這樣查到:在baidu中搜尋索引鍵:JSP Cookie或是Javascript Cookie即可看到你想要的資訊.
 
 
 
el運算式中擷取cookie的問題我的servlet中的代碼是這樣子的Cookie cookie=new Cookie("username",new String(name.getBytes("iso8859-1")));在jsp頁面中,${cookie.username.value}但是頁面裡獲得的值是亂碼,這個怎麼去解決,請求提供在el運算式裡解決的辦法,
 
 
 
 
 
 
 
 
提問者評價
太感謝了。

參考資料: http://www.jr163.org/cup2/9/9903.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.