Cookie - JavaWeb

創建Cookie


在這裏插入圖片描述

// 1. 創建Cookie對象
Cookie cookie = new Cookie("key1", "value1");
// 2. 通知客戶端保存Cookie
resp.addCookie(cookie);

// 3. 創建多個Cookie並保存到客戶端
Cookie cookie1 = new Cookie("key2", "value2");
resp.addCookie(cookie1);

resp.getWriter().write("Cookie創建成功")

獲取Cookie


Cookie[] cookies = req.getCookies();

for (Cookie cookie : cookie) {
    // getName(): 返回Cookie的key
    // getValue(): 返回Cookie的value值
    resp.getWrite().write("Cookie[" + cookie.getName() + "=" + cookie.getValue + "]<br/>")
}

獲取想要的cookie

Cookie getKey2_Cookie = null;

for (Cookie cookie : cookie) {
    if ("key2".equals(cookie.getName())) {
        getKey2_Cookie = cookie;
        break;
    }
}

// 如果不等於null, 說明已經賦值, 找到了需要的Cookie
if (getKey2_Cookie != null) {
    resp.getWriter().write("已找到需要的Cookie");
}

修改Cookie


// 方案1
// 定義一個相同名的key, 賦不同的value重新添加即可
Cookie cookie = new Cookie("key1", "newValue1");
resp.addCookie(cookie);

resp.getWriter().write("key1的Cookie已經修改好");

// 方案2
// 找到需要修改的Cookie, 然後調用setValue()方法賦予新的Cookie值
//...獲取cookie
Cookie cookie = 獲取指定Cookie
if (cookie != null) {
    cookie.setValue("newValue2");
    resp.addCookie(cookie)
}

Cookie存活時間


public void setMaxAge(int expiry) (默認爲-1, 即關閉瀏覽器則刪除)

設置 cookie 的最大生存時間,以秒爲單位。 正值表示 cookie 將在經過該值表示的秒數後過期。注意,該值是 cookie 過期的最大 生存時間,不是 cookie 的當前生存時間。 負值意味着 cookie 不會被持久存儲,將在 Web 瀏覽器退出時刪除。0 值會導致刪除 cookie。

expiry : 指定 cookie 的最大生存時間(以秒爲單位)的整數;如果爲負數,則表示不存儲該 cookie;如果爲 0,則刪除該 cookie

Cookie cookie = 獲取指定Cookie;
// 設置Cookie一小時之後刪除
cookie.setMaxAge(60*60);
resp.addCookie(cookie);
resp.getWriter().write("已經將獲取的Cookie設置爲存活一小時")

Cookie有效路徑Path的設置


在這裏插入圖片描述

Cookie cookie = new Cookie("path1", "path1");
// getContextPath() -> 得到工程路徑
cookie.setPath(req.getContextPath() + '/abc');
resp.addCookie(cookie);
resp.getWriter().write("創建了一個帶有Path路徑的Cookie");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章