用JSP設(shè)置Cookie(1)
發(fā)表時間:2024-02-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一、 前言 說起來,Cookie應(yīng)該是一種應(yīng)用較久的技術(shù)了。早在HTML剛剛出現(xiàn)的時候,在每個獨立的頁面之間沒有辦法記錄和標(biāo)識不同的用戶。后來人們就發(fā)明了Cookie技術(shù),當(dāng)用戶訪問網(wǎng)頁時,它能夠在訪問者的機器上創(chuàng)立一個文件,我們把它叫作Cookie,寫一段內(nèi)容進去,來標(biāo)識不同的用戶。如果...
一、 前言 說起來,Cookie應(yīng)該是一種應(yīng)用較久的技術(shù)了。早在HTML剛剛出現(xiàn)的時候,在每個獨立的頁面之間沒有辦法記錄和標(biāo)識不同的用戶。后來人們就發(fā)明了Cookie技術(shù),當(dāng)用戶訪問網(wǎng)頁時,它能夠在訪問者的機器上創(chuàng)立一個文件,我們把它叫作Cookie,寫一段內(nèi)容進去,來標(biāo)識不同的用戶。如果下次用戶再訪問這個網(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程序:
........(中間略)
<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
........(其他內(nèi)容)
這樣我們就設(shè)置了一個Cookie,很簡單吧?
我們來仔細研究一下這段代碼:
Cookie cookie=new Cookie(cookieName, "Test_Content");
這一行建立了一個Cookie對象,初始化有兩個參數(shù),第一個參數(shù)cookieName定義了Cookie的名字,后一個參數(shù),也是一個字符串,定義了Cookie的內(nèi)容。也就是我們希望網(wǎng)頁在用戶的機器上標(biāo)識的文件內(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。
........(中間略)
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%>
........(其他內(nèi)容)
這一小段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放在一張表格中進行顯示。