前端技术之缓存localstorage,sessionstorage,cookies

来源:互联网 发布:php所有的数据类型 编辑:程序博客网 时间:2024/06/02 02:50

一、.HTML的存储-cookies

在HTML5出生之前,通常在浏览器(客户端)使用cookies来存储客户端的内容;cookies的特点:

每次的http请求头中,都会带有cookies——缺点; 每个域名只能存储4K大小的cookies; 主域名污染:如果我们使用cookies存储主域名的东西,那么子域名下得Http请求都会带上主域名的东西;如果关联上网络,那么将带来安全问题。所以,通常我们会使用cookies用在如购物车、身份验证等问题上。

1.写cookie

Cookie theCookie = new Cookie(“username” , “Tom”);response.addCookie(theCookie)

2.读取cooklie

Cookie[] cookies = request.getCookies();HttpServletRequest类的getCookies()方法返回一个Cookie数组,它包含了HTTP请求中的所有Cookie。如果在HTTP请求中没有任何Cookie,那么getCookies()方法返回null。对于每个Cookie对象,可调用getName()方法来获得Cookie的名字,调用getValue()方法来获得Cookie的值。
例如:
Cookie[] cookies = req.getCookies();if(cookies != null){for(int i = 0 ; i < cookies.length ; i++){out.println("Cookie name:" + cookies[i].getName());out.println("Cookie value:" + cookies[i].getValue());out.println("Cookie maxAge:" + cookies[i].getMaxAge());}}else{out.println("No cookie.");}

3.修改cookie

if(cookie==null){//,如果不存在cookie=new Cookie("username" , "Tom");//写入一个新的Cookie:“username=Tom"cookie.setMaxAge(60*60);//设置有效期为1小时res.addCookie(cookie);}else if(cookie.getValue().equals("Tom")){//如果存在且值为Tomcookie.setValue("Jack");//将值改为Jackres.addCookie(cookie);}else if(cookie.getValue().equals("Jack")){//如果存在且值为Jackcookie.setMaxAge(0);//删除改cookieres.addCookie(cookie);}

二、html5的缓存:localstorage,sessionstorage 

1.localstorage:永久存储,永不失效,除非手动删除 
sessionstorage:重新打开页面,或是关闭浏览器,sessionstorage才会消失;

2.存储形式:key–>value

3.getItem:获取localstorage\sessionstorage setItem:设置localstorage\sessionstorage removeItem:移除localstorage\sessionstorage key:获取某一个位置上的key值,按值从0开始索引; clear:全部清除localstorage\sessionstorage

4.例如:一个选了下次登录之后,缓存用户名和密码

var storage = window.localStorage;  var getname = storage["name"];   var getPwd = storage["pwd"];  

//存储到loaclStage  
 storage["name"] = userAccout;       storage["pwd"] =  userPassWord; 
//lacoste  已经保存 登陆信息 直接登陆       $("#loginAccout").val(getname);       $("#loginPwd").val(getPwd);