基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!
什么是Cookie?
Cookie是由W3C組織提出,最早由NetScape社區發展的一種機制。
Cookie是存儲于訪問者的計算機中的變量。每當同一臺計算機通過瀏覽器請求某個頁面時,就會發送這個cookie。
Cookie的作用就是用于解決"如何記錄客戶端的用戶信息":當用戶訪問web頁面時,他的名字可以記錄在Cookie中。
在用戶下一次訪問該頁面時,可以在Cookie中讀取用戶訪問記錄。
Cookie實際上是一小段文本信息(上限為4kb)。客戶端請求服務器,如果服務器需要記錄該用戶狀態,就使用response向客戶端瀏覽器頒發一個Cookie。客戶端瀏覽器可以把Cookie保存起來。當瀏覽器再請求該網站時,瀏覽器把請求的網址連同該Cookie一同提交給服務器。服務器檢查該Cookie,以此來辨認用戶狀態。服務還可以根據需要修改Cookie的內容。
Cookie的屬性屬性名描述nameCookie的名稱,Cookie一旦創建,名稱便不可更改
valueCookie的值,如果值為Unicode字符,需要為字符編碼。如果為二進制數據,則需要使用BASE64編碼
maxAgeCookie失效的時間,單位秒。如果為整數,則該Cookie在maxAge秒后失效。如果為負數,該Cookie為臨時Cookie,關閉瀏覽器即失效,瀏覽器也不會以任何形式保存該Cookie。如果為0,表示刪除該Cookie。默認為-1。
secure該Cookie是否僅被使用安全協議傳輸。安全協議。安全協議有HTTPS,SSL等,在網絡上傳輸數據之前先將數據加密。默認為false。
pathCookie的使用路徑。如果設置為“/sessionWeb/”,則只有contextPath為“/sessionWeb”的程序可以訪問該Cookie。如果設置為“/”,則本域名下contextPath都可以訪問該Cookie。注意最后一個字符必須為“/”。
domain可以訪問該Cookie的域名。如果設置為“.google.com”,則所有以“google.com”結尾的域名都可以訪問該Cookie。注意第一個字符必須為“.”。
Comment該Cookie的用處說明,瀏覽器顯示Cookie信息的時候顯示該說明。
versionCookie使用的版本號。0表示遵循Netscape的Cookie規范,1表示遵循W3C的RFC 2109規范
獲取所有Cookiepublic static Cookie[] getCookies(HttpServletRequest request) {
return request.getCookies();
}
獲取cookie很簡單,直接從request中獲取即可。
根據名稱獲取指定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中循環判斷進行獲取指定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設置為null,把 max-age設置為0就行了。
到這里:Java基礎系列(基礎):Java使用Cookie增刪改查操作!分享完畢了,快去試試吧!
最后編輯操作和刪除操作一樣,但是需要注意的是修改、刪除Cookie時,除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie不予覆蓋,導致修改、刪除失敗。
總結
以上是生活随笔為你收集整理的基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 升序 排序字符串,PHP aso
- 下一篇: centos java 集成环境搭建,C