cookie和session的比较

http协议的无状态性

无状态指当浏览器发送请求给服务器时,服务器响应客户端请求。但当同一个浏览器再次发送请求给服务器时,服务器并不知道它就是刚才那个浏览器(无法保存状态)

保存用户状态的两大机制:session和cookie

cookie是web服务器保存在客户端的一系列文本信息,比如判定注册用户是否已登录网站以及最近浏览记录等。典型应用:购物车的处理
cookie可对特定对象进行追踪,保存用户网页浏览记录与习惯,但也容易泄露用户信息

jsp中创建与使用cookie

创建Cookie对象(每一个键值对创建一个cookie对象):
Cookie newCookie = new Cookie(String key,Object value);

写入Cookie对象
response.addCookie(newCookie);

读取Cookie对象
Cookie[] cookies = request.getCookies();

常用方法
方法说明
void setMaxAge(int expiry)设置cookie的有效期,单位秒
void setValue(String value)在cookie创建后对其赋值
String getName()获取cookie名称
String getValue()获取cookie的值
int getMaxAge()获取cookie的有效时间,单位秒

注意保存用户名和密码时,如果未选中保存那项,则要清除之前这两项的cookie(遍历cookie if判断之前是否存在)

session和cookie的对比
  1. 都用于保存用户状态,都会过期
  2. session保存在服务器端的内存中,而cookie以文本文件的方式存于客户端
  3. session中保存的是Object类型,cookie保存的是String类型
  4. session随会话结束将其存储的数据销毁,而cookie可以长期保存在客户端
  5. session用于保存重要的信息,cookie用于保存不重要的用户信息
  6. cookie中对保存对象的大小是有限制的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值