用JSP操作者Cookie一、前言說道一起,Cookie應當是一種應用于較長的技術了。早在HTML剛經常出現的時候,在每個獨立國家的頁面之間沒辦法記錄和標識有所不同的用戶。后來人們就發明者了Cookie技術,當用戶采訪網頁時,它需要在訪問者的機器上創辦一個文件,我們把它叫做Cookie,寫出一段內容進來,來標識有所不同的用戶。
如果下次用戶再行采訪這個網頁的時候,它又需要朗讀這個文件里面的內容,這樣網頁就告訴上次這個用戶早已采訪過該網頁了。雖然現在網頁的制作技術相比幾年以前早已發展了許多。不過有些時候,Cookie還是需要老大我們很多整天的。
接下來,我們就來想到,如何在寫出jsp文件的時候,用JSP操作者Cookie。1/7二、載入Cookie只不過用JSP操作者Cookie是非常簡單的,我們來看下面一段JSP程序:........(中間額)<%StringcookieName=Sender;Cookiecookie=newCookie(cookieName,Test_Content);cookie.setMaxAge(10);response.addCookie(cookie);%>........(其他內容)2/7這樣我們就設置了一個Cookie,很非常簡單吧?我們來細心研究一下這段代碼:Cookiecookie=newCookie(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文件在一年內有效地。
3/7三、朗讀CookieCookie文件創建好后,大自然還必須我們把它讀出來,否則我們不是白費力氣嗎?接下來我們想到如何朗讀在用戶硬盤上的Cookie。........(中間額)Namevalue<%Cookiecookies[]=request.getCookies();CookiesCookie=null;Stringsvalue=null;Stringsname=null;for(inti=0;i{4/7sCookie=cookies[i];svalue=sCookie.getValue();sname=sCookie.getName();%><%}%>name value<%=name%>?。?=svalue%>........(其他內容)這部分段JSP文件可以朗讀用戶硬盤上的所有有效地的Cookie,也就是依然在存活期內的Cookie文件。后用表格的形式所列每個Cookie的名字和內容。
5/7我們來逐行分析一下這段代碼:Cookiecookies[]=request.getCookies()我們用request.getCookies()朗讀用戶硬盤上的Cookie,并將所有的Cookie放在一個cookie對象數組里面。接下來我們用一個循環語句迭代剛才創建的Cookie對象數組,我們用sCookie=cookies[i]放入數組中的一個Cookie對象,然后我們用sCookie.getValue()和sCookie.getName()兩個方法來獲得這個Cookie的名字和內容。通過將放入來的Cookie的名字和內容放到字符串變量中,我們就能對其展開各種操作者了。
在上面的例子里,可通過循環語句的迭代,將所有Cookie放到一張表格中展開表明。6/7四、必須留意的一些問題通過上面兩個非常簡單的例子,可以看見,用JSP展開Cookie的操作者,是非常簡單的。不過我們在實際操作中還要留意一些問題:1.Cookie的兼容性問題Cookie的格式有2個有所不同的版本,第一個版本,我們稱作CookieVersion0,是最初由Netscape公司制訂的,也被完全所有的瀏覽器反對。
而較新的版本,CookieVersion1,則是根據RFC2109文檔制訂的。為了保證兼容性,JAVA規定,前面所提及的牽涉到Cookie的操作者都是針對舊版本的Cookie展開的。而新版本的Cookie目前還不被Javax.servlet.http.Cookie包所反對。7/72.Cookie的內容某種程度的Cookie的內容的字符容許針對有所不同的Cookie版本也有有所不同。
在CookieVersion0中,某些類似的字符,例如:空格,方括號,圓括號,等于號(=),逗號,雙引號,斜杠,問號,符號,冒號,分號都無法作為Cookie的內容。這也就是為什么我們在例子中原作Cookie的內容為Test_Content的原因。雖然在CookieVersion1規定中限制了容許,可以用于這些字符,但是考慮到新版本的Cookie規范目前依然沒為所有的瀏覽器所反對,因而為保險起見,我們應當在Cookie的內容中盡量避免用于這些字符。
本文來源:愛游戲app下載-www.p8fz.com