借助Cookie可以在返回之前的页面时还原某些操作,比如之前选中了树的一个节点,在返回该页面时希望能自动选中那个节点,那么我们可以在Cookie中记录这个节点的标识
前端操作Cookie的方法:来自百度搜索
// 如果要设置过期时间以秒为单位
function setCookie(c_name, value, expireseconds) {
var exdate=new Date();
exdate.setTime(exdate.getTime()+expireseconds * 1000);
document.cookie=c_name+ "=" +escape(value)+
((expireseconds==null) ? "" : ";expires="+exdate.toGMTString())
}
// 函数中的参数为 要获取的cookie键的名称。
function getCookie(c_name) {
if (document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1){
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1){
c_end=document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
// 删除指定的Cookie
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
} 快速使用:
setCookie('empNum', 'emp:001', 7200); // 设置cookie有效时间2小时
var empNum = getCookie('empNum');
delCookie('empNum');
后台操作Cookie的方法:
request对象为HttpServletRequest
// 保存Cookie
Cookie ck = new Cookie("cookieName", "cookieValue");
// 设置cookie的有效域(IP),可以在www.test.com image.test.com下都能有效
// 这是设置了一个二级域名
ck.setDomain("test.com");
ck.setPath("/");//代表设置在根目录
// 不允许脚本访问cookie信息
ck.setHttpOnly(true);
// cookie有效期(单位秒),如果是-1 代表永久,如果不设置maxAge的话,cookie就不会写入硬盘,而是写在内存
ck.setMaxAge(60 * 60 * 24 * 365);
response.addCookie(ck);
// 读取Cookie
String cookieValue = null;
// Cookie以数组的形式保存在Request中
Cookie[] cks = request.getCookies();
if (cks != null) {
for(Cookie ck : cks){
if (StringUtils.equals(ck.getName(), "cookieName")) {
cookieValue = ck.getValue();
break;
}
}
}
// 删除Cookie
Cookie[] cks = request.getCookies();
if (cks != null) {
for (Cookie ck : cks) {
if (StringUtils.equals(ck.getName(), "cookieName")) {
ck.setDomain("www.test.com");
ck.setPath("/"); ck.setMaxAge(0); // maxAge设置成0,代表删除cookie
response.addCookie(ck);
return;
}
}
版权声明:本文为qq_36743920原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。