Cookie配合UUId生成

 getUUid = (len: any, radix: any) => {
        var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
        var uuid = [], i;
        radix = radix || chars.length;
        if (len) {
            // Compact form
            for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
        } else {
            // rfc4122, version 4 form
            var r;

            // rfc4122 requires these characters
            uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
            uuid[14] = '4';

            // Fill in random data.  At i==19 set the high bits of clock sequence as
            // per rfc4122, sec. 4.1.5
            for (i = 0; i < 36; i++) {
                if (!uuid[i]) {
                    r = 0 | Math.random() * 16;
                    uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
                }
            }
        }

        return uuid.join('');
    }


    /**
     * 设置cookie  time等于0 为不设置过期时间一次性会话  time>0设置过期时间天数
     */
    setCookie = (name: string, value: string, time: number) => {
        if (time == 0) {
            // 对 cookie 值进行编码以转义其中的分号、逗号和空格
            var cookie = name + "=" + encodeURIComponent(value);
            document.cookie = cookie;
        }
        if (time > 0) {
            var now = new Date();
            console.log("1  " + now)
            //设置时间
            now.setMinutes(now.getMinutes() + time)
            console.log("2  " + now)
            var cookie = name + "=" + encodeURIComponent(value) + ';expires=' + now.toUTCString();
            alert(cookie)
            document.cookie = cookie;
        }

    }

    getCookie = (cookieName: string) => {
        var cookie = "";
        // 拆分 cookie 字符串
        var cookieArr = document.cookie.split(";");
        // 循环遍历数组元素
        for (var i = 0; i < cookieArr.length; i++) {
            var cookiePair = cookieArr[i].split("=");
            /* 删除 cookie 名称开头的空白并将其与给定字符串进行比较 */
            if (cookieName == cookiePair[0].trim()) {
                // 解码cookie值并返回
                cookie = decodeURIComponent(cookiePair[1]);
            }
        }
        return cookie;
    }

使用:

   		var disposableSeoCookie = this.getCookie("disposableSeoCookie");//一次性cookie
        var sevenDaysSeoCookies = this.getCookie("sevenDaysSeoCookies");//7天cookie
        // @ts-ignore
        if (disposableSeoCookie == "" || disposableSeoCookie == undefined) {
            this.setCookie("disposableSeoCookie", this.getUUid(16, 16), 0);//设置一次性cookie
        }
        // @ts-ignore
        if (sevenDaysSeoCookies == "" || sevenDaysSeoCookies == undefined) {
            this.setCookie("sevenDaysSeoCookies", this.getUUid(16, 16), 10080);//设置7天性cookie
        }

后台读取cookie:

   private String getCookie(String cookieName) {
        Cookie[] cookies = getRequest().getCookies();
        String strCookies= "";
        for (Cookie cookie : cookies) {
            if (cookieName.equals(cookie.getName())) {
                try {
                    strCookies= URLDecoder.decode(cookie.getValue(), "utf-8");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        }
        return strCookies;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值