小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Java基礎(chǔ)系列(基礎(chǔ)):Java使用Cookie增刪改查操作!

 印度阿三17 2019-07-06

什么是Cookie?

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

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

Cookie的作用就是用于解決"如何記錄客戶端的用戶信息":

  • 當(dāng)用戶訪問web頁面時,他的名字可以記錄在Cookie中。

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

Cookie實(shí)際上是一小段文本信息(上限為4kb)。客戶端請求服務(wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie??蛻舳藶g覽器可以把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ī)范

獲取所有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中循環(huán)判斷進(jìn)行獲取指定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設(shè)置為null,把 max-age設(shè)置為0就行了。


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


最后

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多