java web的cookies,localStorage,sessionStorage,session用法

//cookies,localstorage,localstorage,session用法;前三个都是存储在客户端上。
cookies 常用于账号,id,密码等等键值,数据小于5k的数据。
localStorage 与cookie不同的是,localstorage可以存储比较大的数据,而且是持久 化的,如果不删除,数据永远存在。
sessionStorge 常用于把数据存储在当前会话,关闭浏览器就清空。
session 和cookie的区别是,session存储在服务器的会话中
一、cookie用法,cookie可以在js设置也可以在Java的servlet设置;
1、用js原生代码设置,获取,删除cookie的操作。

//设置一个cookie
function setCookie(cname, cvalue, exdays) {
 var d = new Date();
 d.setTime(d.getTime() + (exdays*24*60*60*1000));//设置时间为一天;
 var expires = "expires="+d.toUTCString();
 document.cookie = cname + "=" + cvalue + "; " + expires;
}
//获取cookie
function getCookie(cname) {
 var name = cname + "=";
 var ca = document.cookie.split(';');
 for(var i=0; i<ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0)==' ') c = c.substring(1);
  if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
 }
 return "";
}
//清除cookie 
function clearCookie(name) { 
 setCookie(name, "", -1); 
} 

如果在js设置cookie,建议把上面的代码单独建一个js文件,需要时再引入。
自己在当前页面的js用setCookie(“username”,user,time);getCookie(“username”);clearCookie(“username”)对cookie进行添加,获取,删除的操作就好。
cookie还可以引用jquery.cookie.js库对cookie操作,设置cookie的方法很多,自己挑一种用就好。
2、在servlet设置cookie

HttpServletRequest request  
HttpServletResponse response
//设置cookie
Cookie cookie = new Cookie("name","hello"); //实例化cookie。
cookie.setMaxAge(3600); //设置时间,单位为s
cookie.setPath("/"); //设置路径
response.addCookie(cookie);//向客户端发送添加的cookie;
//获取cookie
Cookie[] cookies = request.getCookies();
//删除cookie,把cookie时间设置为0就OK了。
Cookie cookie = new Cookie("name", null);
cookie.setMaxAge(0);

如果是用PHP设置的,看一下操作手册就可以,PHP的设置很简单,直接有方法进行操作。
二、localStorage和sessionStorage用法,个人感觉比cookie还简单,快捷。

//新增,如果存在key键,则更新value值;
sessionStorage.setItem(key,value);
localStorage.setItem(key,value);
//指定key获取对应的值;
sessionStorage.getItem(key);
localStorage.getItem(key);
//指定key移除对应的值
sessionStorage.removeItem(key);
localStorage.removeItem(key);
//移除全部值
sessionStorage.clear();
localStorage.clear();
//根据索引获取对应key
sessionStorage.key(index);//获取与index相对应的键。
localStorage.key(index);

三、session的用法

HttpSession session = request.getSession();
//session默认过期时间是30分钟,可以用下面的方法设置。
session.setMaxInactiveInterval(60); //单位是秒。
//添加一个session。
session.setAttribute("name", "value"); //设置一个名为name,值为value的session;
//获取指定的session值。
Object username= session.getAttribute("name");
//移除指定session值
session.remove("name");
//获取sessionId。
String sessionId = session.getId();

这四种方法,一般对于整个网站来说都是混合使用的,自己可以根据数据的类型引用适当的缓存方式,达到网页的最佳效果。
这些方法都是我自己用过的,百度上还有很多别的方法,自己可以找一个觉得好的方法来用,很少写博客,如果有错误的地方,欢迎指正。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值