Cookie与Session的基本使用

一、Cookie

(一) cookie概念

Cookie 是存储于电脑上的文本文件中的一些数据,在web开发中是用来维系状态的一种技术。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。Cookie 的作用就是用于解决如何记录客户端的用户信息。

  • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。

(二) cookie的使用

  1. 创建并添加cookie
Cookie c = new Cookie(名,值);
response.addCookie(c);
  1. 设置cookie的寿命
  • 默认不设置(-1)表示浏览器关闭寿命就到期
  • 指定一个正整数(单位秒),指定cookie存活多久
  • 设置为 0,表示由服务器端删除该cookie
c.setMaxAge(3600);//设置cookie的寿命为一小时

  1. 设置是否允许js代码操作这个cookie
    cookie是有安全风险的,因为信息是存储在浏览器端的。
c.setHttpOnly(true);//不允许js代码操作这个cookie,否则在js代码页面可以使用document.cookie访问到该cookie
  1. 获取cookie
Cookie [] cookies = request.getCookies();//遍历cookies数组得到cookie

二、Session

(一) Session概念

WEB开发中,服务器可以为每个用户浏览器创建一个session对象,一个浏览器独占一个session对象(默认情况下),他们存储的信息互不干扰。在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。安全性要比cookie高很多。

(二) Session的使用

  1. 存储信息
// 拿到 session 对象
HttpSession session = request.getSession();
// 存储信息
session.setAttribute("名",);
  1. 获取信息
// 拿到 session 对象
HttpSession session = request.getSession();
// 获取信息 
session.getAttribute("名"); // 返回上一次存储的值
  1. 删除信息
session.removeAttribute("名"); // 返回被移除的值

session.invalidate(); // 让session失效(全部清空)
  1. 设置Session生命周期
  • 默认生命周期:
    第一次调用 request.getSession() 创建 session对象,如果隔了 30 分钟没有向服务器发送请求,session 会自动失效
  • 改变session失效时间,可以在web.xml中:
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

三、Cookie和Session的区别

  • 安全性上, session的安全性高,cookie的信息存在浏览器端所以不安全
  • 存储的类型, session 存储的类型是 Object, cookie 只能存字符串(并且需要进行编码处理)
  • 存储大小, session 理论上没有限制(但不建议存储太多内容), cookie 的限制:每个cookie不能超过4k,每个网站cookie个数也有限制的
  • 失效时间, session 两次请求间隔30分钟, cookie 默认关闭浏览器失效,还可以通过 maxAge 调整的更长
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值