Cookie是儲存在使用者電腦中的一小段資訊;下次造訪時,網路伺服器會使用cookie來識別使用者。以下這篇文章就來帶大家簡單了解Cookie,介紹如何使用JSP來處理Cookie,希望對大家有幫助。 【影片教學推薦:JSP教學】
#cookie的工作原理
Cookie會以[key|value]對的字串形式是儲存在使用者的電腦上。此外,cookie還具有域,路徑和超時等屬性。
每次使用者造訪啟用了cookie的網站時,網路伺服器都會將額外資料加入HTTP標頭並回應網路瀏覽器。下次使用者再次造訪相同網站時,網頁瀏覽器也會將HTTP請求標頭中的cookie傳送到網頁伺服器。
使用者也可以在支援停用cookie功能的網頁瀏覽器中停用cookie,例如火狐Firefox,IE ......
JSP中如何使用Cookie ?
JSP提供了API,允許透過類別javax.servlet.http.Cookie的物件來有效地使用cookie 。下面我們就來簡單介紹在JSP中使用Cookie的方法。
1、使用JSP設定Cookie
使用JSP設定Cookie可以分成三個步驟:
1)、建立一個Cookie物件:
需要呼叫Cookie的建構函數,例如:
Cookie cookie = new Cookie("key","value");
說明:Cookie都是以鍵值對的形式存在,因此使用cookie名稱和值做參數(它們都是字串)。
註:cookie名稱和值不能包含空格或如下的字元:
[ ] ( ) = , " / ? @ : ;
2)、 設定有效期限
Cookie有自己的生命週期,稱為到期時間。如果未設定cookie的逾時,則在使用者關閉網頁瀏覽器時將刪除該逾時。
我們可以呼叫setMaxAge()方法來設定cookie的有效期,即在多長時間(以秒為單位)內有效。
範例:將有效期限設為24小時可以這樣設定
cookie.setMaxAge(60*60*24);
3)、將cookie傳送至HTTP回應頭中
需要呼叫response.addCookie()方法來在HTTP響應頭中新增cookie。範例:
response.addCookie(cookie);
簡單範例:從Web伺服器傳送cookie
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="javax.servlet.http.Cookie"%> <!DOCTYPE html> <html> <head> <title>设置Cookie</title> </head> <body> <% // 编码,解决中文乱码 String str = URLEncoder.encode(request.getParameter("name"),"utf-8"); // 设置 name 和 url cookie Cookie cookie = new Cookie("php中文网","http://www.php.cn/); // 设置cookie过期时间为24小时。 cookie.setMaxAge(60*60*24); // 在响应头部添加cookie response.addCookie(cookie); %> </body> </html>
#使用JSP 讀取Cookie
要從HTTP請求中讀取cookie,首先要呼叫請求物件的getCookies()方法,此方法傳回請求標頭中的可用cookie清單;或使用getName()方法和getValue()方法來取得每一個cookie的名稱和值。然後可以瀏覽所有這些cookie。以下是使用getCookies()方法讀取cookie訊息的範例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="javax.servlet.http.Cookie"%> <html> <head> <title>读取Cookie</title> </head> <body> <% Cookie[] list = request.getCookies(); if(list != null){ for(int i = 0; i < list.length;i++){ out.println(list[i].getName() + ":" + list[i].getPath()); } } %> </body> </html>
使用JSP刪除現有的cookie
如果要刪除已傳送到網路瀏覽器的現有cookie,可以使用該cookie物件的setMaxAge()方法 將其有效期限設為零。
步驟如下:
● 取得一個已經存在的cookie然後儲存在Cookie物件中。
● 使用setMaxAge()方法將cookie的有效期限設為0。
範例:以下是刪除所有Cookie的範例。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="javax.servlet.http.Cookie"%> <!DOCTYPE html> <html> <head> <title>删除cookie</title> </head> <body> <% Cookie[] list = request.getCookies(); if (list != null) { for (int i = 0; i < list.length; i++) { list[i].setMaxAge(0); out.println("cookie:" + list[i].getName() + "已删除"); } } %> </body> </html>
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !
以上是JSP中如何使用Cookie? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!