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

