Java管理Cookie增删改查操作
生活随笔
收集整理的這篇文章主要介紹了
Java管理Cookie增删改查操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Cookie屬性
了解這幾個屬性之后,就知道如何進行Cookie的操作了。
name
Cookie的名稱。
value
Cookie的值。
maxAge
Cookie的失效時間,有以下幾種值,默認為-1
| 負數 | 瀏覽器關閉后cookie就失效 |
| 0 | 馬上清除cookie |
| 正數 | 設置過期時間,單位:秒 |
path
Cookie的有效路徑, /表示這個路徑即該工程下都可以訪問該cookie 如果不設置路徑,那么只有設置該cookie路徑及其子路徑可以訪問。
獲取所有Cookie
public static Cookie[] getCookies(HttpServletRequest request) {return request.getCookies(); }獲取cookie很簡單,直接從request中獲取即可。
根據名稱獲取指定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中循環判斷進行獲取指定cookie。
添加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;}刪除cookie,把 value設置為null,把 max-age設置為0就行了。
注意
編輯操作和刪除操作一樣,但是需要注意的是修改、刪除Cookie時,除value、maxAge之外的所有屬性,例如name、path、domain等,都要與原Cookie完全一樣。否則,瀏覽器將視為兩個不同的Cookie不予覆蓋,導致修改、刪除失敗。
總結
以上是生活随笔為你收集整理的Java管理Cookie增删改查操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 漫画:通俗易懂的进程与线程解释
- 下一篇: Java Web 开发必须掌握的三个技术