Session與Cookie
Cookie應該是一種應用較久的技術了。早在HTML剛剛出現的時候,在每個獨立的頁面之間沒有辦法記錄和標識不同的使用者。後來人們就發明了Cookie技術,當使用者訪問網頁時,它能夠在訪問者的機器上創立一個檔案,我們把它叫作Cookie,寫一段內容進去,來標識不同的使用者。如果下次使用者再訪問這個網頁的時候,它又能夠讀出這個檔案裡面的內容,這樣網頁就知道上次這個使用者已經訪問過該網頁了。
使用者每次訪問伺服器,Browser都會發出一個Request,伺服器收到Request後,會返回一個Response。通過Request伺服器可以擷取使用者機器上的Cookie資訊,同時也可以通過Response向使用者的機器上寫入Cookie資訊。具體操作如下:
寫入Cookie
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
其中,cookie.setMaxAge(10),調用了Cookie中的setMaxAge方法,設定Cookie在使用者機器硬碟上的存活期為10秒,若設定為-1,表示Browser關閉時刪除Cookie。
讀出Cookie
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;
for(int i=0;cookies.length;I++){
sCookie=cookies[i];
svalue=sCookie.getValue();
sname=sCookie.getName();
}
Session跟蹤Browser與伺服器的一次會話。當Browser關閉後,該次Session在Session Timeout後被伺服器自動刪除。在頁面過度時,Session可用於儲存變數或使用者狀態資訊。具體操作如下:
Session.setAttribute(key,value);
Session.getAttribute(key,value);
綜上所述,Cookie儲存在使用者機器上,並可以長期儲存,而session儲存在伺服器上,且只能在一次會話中存在。