日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

發(fā)布時間:2024/10/14 java 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是Cookie?

Cookie是由W3C組織提出,最早由NetScape社區(qū)發(fā)展的一種機(jī)制。

Cookie是存儲于訪問者的計算機(jī)中的變量。每當(dāng)同一臺計算機(jī)通過瀏覽器請求某個頁面時,就會發(fā)送這個cookie。

Cookie的作用就是用于解決"如何記錄客戶端的用戶信息":當(dāng)用戶訪問web頁面時,他的名字可以記錄在Cookie中。

在用戶下一次訪問該頁面時,可以在Cookie中讀取用戶訪問記錄。

Cookie實(shí)際上是一小段文本信息(上限為4kb)。客戶端請求服務(wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie。客戶端瀏覽器可以把Cookie保存起來。當(dāng)瀏覽器再請求該網(wǎng)站時,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務(wù)器。服務(wù)器檢查該Cookie,以此來辨認(rèn)用戶狀態(tài)。服務(wù)還可以根據(jù)需要修改Cookie的內(nèi)容。

Cookie的屬性屬性名描述nameCookie的名稱,Cookie一旦創(chuàng)建,名稱便不可更改

valueCookie的值,如果值為Unicode字符,需要為字符編碼。如果為二進(jìn)制數(shù)據(jù),則需要使用BASE64編碼

maxAgeCookie失效的時間,單位秒。如果為整數(shù),則該Cookie在maxAge秒后失效。如果為負(fù)數(shù),該Cookie為臨時Cookie,關(guān)閉瀏覽器即失效,瀏覽器也不會以任何形式保存該Cookie。如果為0,表示刪除該Cookie。默認(rèn)為-1。

secure該Cookie是否僅被使用安全協(xié)議傳輸。安全協(xié)議。安全協(xié)議有HTTPS,SSL等,在網(wǎng)絡(luò)上傳輸數(shù)據(jù)之前先將數(shù)據(jù)加密。默認(rèn)為false。

pathCookie的使用路徑。如果設(shè)置為“/sessionWeb/”,則只有contextPath為“/sessionWeb”的程序可以訪問該Cookie。如果設(shè)置為“/”,則本域名下contextPath都可以訪問該Cookie。注意最后一個字符必須為“/”。

domain可以訪問該Cookie的域名。如果設(shè)置為“.google.com”,則所有以“google.com”結(jié)尾的域名都可以訪問該Cookie。注意第一個字符必須為“.”。

Comment該Cookie的用處說明,瀏覽器顯示Cookie信息的時候顯示該說明。

versionCookie使用的版本號。0表示遵循Netscape的Cookie規(guī)范,1表示遵循W3C的RFC 2109規(guī)范

獲取所有Cookiepublic static Cookie[] getCookies(HttpServletRequest request) {

return request.getCookies();

}

獲取cookie很簡單,直接從request中獲取即可。

根據(jù)名稱獲取指定Cookiepublic 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中循環(huán)判斷進(jìn)行獲取指定cookie。

添加Cookiepublic 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;

}

這個添加很簡單。

刪除Cookiepublic 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;

}

刪除cookie,把 value設(shè)置為null,把 max-age設(shè)置為0就行了。

到這里:Java基礎(chǔ)系列(基礎(chǔ)):Java使用Cookie增刪改查操作!分享完畢了,快去試試吧!

最后編輯操作和刪除操作一樣,但是需要注意的是修改、刪除Cookie時,除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie不予覆蓋,導(dǎo)致修改、刪除失敗。

總結(jié)

以上是生活随笔為你收集整理的基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。