首頁  >  文章  >  Java  >  JSP中如何使用Cookie? (程式碼範例)

JSP中如何使用Cookie? (程式碼範例)

青灯夜游
青灯夜游原創
2019-02-11 12:53:032932瀏覽

Cookie是儲存在使用者電腦中的一小段資訊;下次造訪時,網路伺服器會使用cookie來識別使用者。以下這篇文章就來帶大家簡單了解Cookie,介紹如何使用JSP來處理Cookie,希望對大家有幫助。 【影片教學推薦:JSP教學

JSP中如何使用Cookie? (程式碼範例)

#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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn