Java 對 Cookie增刪改查的實現(xiàn)示例
Cookie屬性
name:cookie的名稱
value:cookie的值
maxAge:cookie的失效時間,默認(rèn)為-1
| 值 | 說明 |
|---|---|
| 負(fù)數(shù) | 瀏覽器關(guān)閉后立即失效 |
| 0 | 馬上清除cookie |
| 正數(shù) | 設(shè)置過期時間,單位秒 s |
path
Cookie的有效路徑,/ 表示這個路徑即該工程下都可以訪問該cookie 如果不設(shè)置路徑,那么只有設(shè)置該cookie路徑和其子路徑可以訪問。
獲取所有Cookie
public static Cookie[] GetCookies(HttpServletRequest request){
return request.getCookies();
}
獲取cookie很簡單,直接從request中獲取即可。
根據(jù)名稱獲取指定Cookie
public static Cookie getCookieByName(HttpServletRequest request, String name) {
if (StringUtils.isBlank(name)) {
return null;
}
Cookie[] cookies = getCookies(request);
if (null != cookies) {
for (Cookie cookie : cookies) {
if (name.equals(cookie.getName())) {
return cookie;
}
}
}
return null;
}
添加Cookie
public static boolean addCookie(HttpServletResponse response, String name, String value,
int maxAge) {
if (StringUtils.isBlank(name) || StringUtils.isBlank(value)) {
return false;
}
Cookie cookie = new Cookie(name.trim(), value.trim());
if (maxAge <= 0) {
maxAge = Integer.MAX_VALUE;
}
cookie.setMaxAge(maxAge);
cookie.setPath("/");
response.addCookie(cookie);
return true;
}
刪除Cookie
public static boolean removeCookie(HttpServletRequest request, HttpServletResponse response,
String name) {
if (StringUtils.isBlank(name)) {
return false;
}
Cookie[] cookies = getCookies(request);
if (null != cookies) {
for (Cookie cookie : cookies) {
if (name.equals(cookie.getName())) {
cookie.setValue(null);
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
return true;
}
}
}
return false;
}
Tips
編輯操作和刪除操作一樣,但是需要注意的是修改、刪除Cookie時,除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie不予覆蓋,導(dǎo)致修改、刪除失敗。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 如何使用會話Cookie和Java實現(xiàn)JWT身份驗證
- Java后端Cookie實現(xiàn)(時間戳)代碼實例
- Java接口測試Cookie與token原理解析
- Java 模擬cookie登陸簡單操作示例
- 在java中http請求帶cookie的例子
- Java Web學(xué)習(xí)之Cookie和Session的深入理解
- java使用Cookie判斷用戶登錄情況的方法
- servlet之cookie簡介_動力節(jié)點Java學(xué)院整理
- JavaWeb 中Cookie實現(xiàn)記住密碼的功能示例
- java中Servlet Cookie取不到值原因解決辦法
- JavaWeb使用Session和Cookie實現(xiàn)登錄認(rèn)證
- Cookie在Java中的使用
相關(guān)文章
SpringCloud實現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway詳細(xì)分析
這篇文章主要介紹了SpringCloud實現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04
詳解Spring Security 中的四種權(quán)限控制方式
這篇文章主要介紹了詳解Spring Security 中的四種權(quán)限控制方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Spring?Boot使用MyBatis進(jìn)行兩個表的關(guān)聯(lián)
本文主要介紹了Spring?Boot使用MyBatis進(jìn)行兩個表的關(guān)聯(lián),通過實例演示了如何使用MyBatis的XML映射文件和注解實現(xiàn)關(guān)聯(lián)操作,具有一定的參考價值,感興趣的可以了解一下2023-09-09
SpringBoot前后端分離解決跨域問題的3種解決方案總結(jié)
前后端分離大勢所趨,跨域問題更是老生常談,下面這篇文章主要給大家介紹了SpringBoot前后端分離解決跨域問題的3種解決方案,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法
這篇文章主要介紹了springboot動態(tài)注入配置與docker設(shè)置環(huán)境變量的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
關(guān)于IntelliJ IDEA 打包代碼報錯的問題
這篇文章主要介紹了關(guān)于IntelliJ IDEA 打包代碼報錯的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

