本地存储数据 只能存储字符串, 对于复杂数据类型的存储 会调用对应数据的toString 方法 变成字符串之后 在进行存储存储复杂数据类型 使用 : JSON.stringify 方法把复杂数据转换成json字符串,对于复杂数据类型 我们先使用 : JSON.stringify 方法把复杂数据转换成json字符串,获取的时候 使用 : JSON.parse将其转换回来 进行还原
1、 localStorage
特点:永久储存(关闭浏览器 电脑重启 等等 都不会删除)
localStorage的方法:
保存数据 localStorage.setItem(属性名字符串,属性值)
获取数据 localStorage.getItem(属性名字符串)
删除数据 localStorage.removeItem(属性名字符串)
清除数据 localStorage.clear()
2、sessionStorage
特点:临时储存(关闭浏览器 电脑重启 等等 都会删除)
sessionStorage的方法:
保存数据 sessionStorage.setItem(属性名字符串,属性值)
获取数据 sessionStorage.getItem(属性名字符串)
删除数据 sessionStorage.removeItem(属性名字符串)
清除数据 sessionStorage.clear()
3、cookie
特点:cookie是由服务器发送给客户端(浏览器)的小量信息。
客户端请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。而客户端浏览器会把Cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器通过检查该Cookie来获取用户状态
cookie的方法:
添加
Cookie c = new Cookie("username","peter"); 新建一个Cookie对象
c.setMaxAge(24*60*60);设置过期时间1天,以秒为单位
response.addCookie(c);保存cookie到客户端
删除
Cookie cookie = new Cookie("username","peter"); 新建Cookie
cookie.setMaxAge(0);设置生命周期为0,表示将要删除
response.addCookie(cookie);执行添加后就从response里删除了
修改
Cookie cookie = new Cookie("username","joker"); 新建Cookie
cookie.setMaxAge(24*60*60);设置生命周期
response.addCookie(cookie);执行添加后就从response里覆盖修改了
三者的区别:
储存量:localStorage 和sessionStorage 大小5MB cookie只有4KB
localStorage 和sessionStorage不会带到HTTP请求中而cookie会。
localStorage 和sessionStorage的区别:应用场景不同(一些需要及时失效的重要信息放在sessionStorage中;一些不重要但是不经常设置的信息放在localStorage )。