java获取cookie的方法,java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出

 2023-09-23 阅读 27 评论 0

摘要:在项目中,前端的Cookies往往存一些用户的登录信息和AutoSuggest(基础信息)的东西。java获取cookie的方法,如国家简写,Currency的Code等。但是Cookies的空间是比较小的,多个用户登录一个系统,或者浏览器的cookies被其他应用占用,这时候Coo

在项目中,前端的Cookies往往存一些用户的登录信息和AutoSuggest(基础信息)的东西。

java获取cookie的方法,如国家简写,Currency的Code等。

但是Cookies的空间是比较小的,多个用户登录一个系统,或者浏览器的cookies被其他应用占用,这时候Cookies的使用就变得很紧张。

html cookie。Solution(解决方法)

1. 可以把项目中的一些信息有HTML5中的LocalStorage来承担部分的Cache工作,减轻Cookies的负担。

Java中cookie保存、因为LocalStorage号称有10MB的空间。相比Cookies的空间大很多。

不同浏览器间 cookie 总大小也不同:

Firefox 和 Safari 允许 cookie 多达 4097 个字节, 包括名(name)、值(value)和等号。

Opera 允许 cookie 多达 4096 个字节, 包括:名(name)、值(value)和等号。

Internet Explorer 允许 cookie 多达 4095 个字节, 包括:名(name)、值(value)和等号。

注:多字节字符计算为两个字节。在所有浏览器中,任何 cookie 大小超过限制都被忽略,且永远不会被设置。

DCS.Common.suggestCookieStore =function(userId,time){

//------------for cookie initialization

var_rsProvider =  DCS.Common.getCookieStore(userId,time);

this.userId = userId;

this.KeySeperator ='-.';

this.ItemSeperator ='/.';

varobj = _rsProvider.get(NSConst.Cookie.DCS) || {};

vartmp = obj[this.userId];

obj = {};

obj[this.userId] = tmp;//delete other users cookie

this.dcsObj = obj;

this.store =function(key,obj){

this.clear(key);

varallStr =this.dcsObj[this.userId] ||'';

varstr ='';

if(allStr && allStr !='')

str += this.ItemSeperator;

str += key+this.KeySeperator+_rsProvider.encodeValue(obj);

varlength = str.length;

if((length+DCS.Common.getCookieLength([NSConst.Cookie.DCS])) > 3300)

this.clearLRU();

if((length+DCS.Common.getCookieLength([NSConst.Cookie.DCS])) > 3300)

this.clearLRU();

varallStr =this.dcsObj[this.userId] ||'';

allStr += str;

this.dcsObj[this.userId] = allStr;

_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);

};

this.clearLRU =function(){

varallStr =this.dcsObj[this.userId];

if(allStr && allStr.length > 2){

varstart = allStr.indexOf(this.ItemSeperator) ;

if(start > 0 && (start+2) 

allStr = allStr.substring(start+2);

this.dcsObj[this.userId] = allStr;

_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);

}

}

};

this.get =function(key){

varallStr =this.dcsObj[this.userId];

if(allStr){

if(allStr.length > (key.length+2) && allStr.indexOf(key+this.KeySeperator) > -1){

varkeyStr = key+this.KeySeperator;

varstart = allStr.indexOf(keyStr);

varkeyLength = keyStr.length;

varend = allStr.indexOf(this.ItemSeperator,start);

if(end 

end = allStr.length;

}

varresult = allStr.substring(start+keyLength,end);

return_rsProvider.decodeValue(result);

}

}

returnnull;

};

this.clear =function(key){

varallStr =this.dcsObj[this.userId];

if(allStr){

if(allStr.length > (key.length+2) && allStr.indexOf(key+this.KeySeperator) > -1){

varkeyStr = key+this.KeySeperator;

varstart = allStr.indexOf(keyStr);

varend = allStr.indexOf(this.ItemSeperator,start);

if(end 

if(start > 2)

start -= 2; //if not the first item, need clear the sepeartor

allStr = allStr.substring(0,start);

}

else{

allStr = allStr.substring(0,start)+allStr.substring(end+2,allStr.length);

}

this.dcsObj[this.userId] = allStr;

_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);

}

}

};

this.clearAll=function(){

_rsProvider.clear(NSConst.Cookie.DCS);

}

};

2.  也可以用JS实时监控Cookie的使用情况,万一cookie使用超过预警值,那就要强制清空然后update。

至于怎么实现,项目中有具体的代码。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/89641.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息