(9) Cookie

什么是会话?
指用户开一个浏览器,访问一个网站,只要不关闭浏览器,不管该用户点击多少个超链接,访问多少个资源,直到用户关闭浏览器,整个这个过程我们称之为以此会话。

简述:
① Cookie 是保存在客户端浏览器中
② Cookie 是在服务器端创建的
③ Cookie 的生命周期可以设置,如果不设置,则浏览器关闭,就会消亡
④ Cookie 可以被多个浏览器共享,前提是保证浏览器能够找到这个 Cookie 文件
⑤ Cookie 类似于一张表,保存 KEY VALUE.如果出现相同 KEY,会把值覆盖,类似于 Map
⑥ 一个 Web 应用,可以保存多个 Cookie。
⑦ 一个 Web 应用,只有一个 Cookie 文件,文件可以存放多个 Cookie
⑧ 如果一个 Cookie 到期了,则会删除单个 Cookie,而不是删除这个 Cookie 文件,除非最后一个 Cookie 到期
⑨ 在 cookie 失效的时间内,若访问这个 cookie,不会重置失效的时间(session 可以重置)


Cookie 技术:
设置 Cookie:

// ① 创建 Cookie 对象
Cookie cookie = new Cookie (String name,String val);
// ② 设置存活时间,如果不设置,代表关闭浏览器 cookie 就失效
cookie.setMaxAge(s);
// ③ 发送给客户端
response.addCookie(cookie);

HTTP 请求截图 ↓
这里写图片描述

HTTP 响应截图 ↓
这里写图片描述

接收 Cookie:
之前已经设置了 cookie,当访问此 WEB 应用下的其他资源,不管使不使用 cookie,只要本地浏览器有此 cookie 文件,就会通过请求发送给服务器。
接收 Cookie:

Cookie cookies[] = request.getCookies();
// 逐个遍历数组
for(int i=0;i<cookies.length;i++){
  String name = cookies[i].getName();
  String age = cookies[i].getValue();
} 

Cookie 对中文的处理:

// 发送
String name = java.net.URLEncoder.encode("李", "utf-8");
Cookie cookie = new Cookie("name",name);
cookie.setMaxAge(3600);
response.addCookie(cookie);
// 接收
Cookie cookies[] = request.getCookies();
String name = cookies[0].getValue();
name = java.net.URLDecoder.decode(name, "utf-8");

简单流程图:
这里写图片描述
不同浏览器存储的 cookie 文件位置不同,所以不能跨浏览器访问 cookie

Cookie 的限制:
一个浏览器最多存放 300 个 Cookie
一个 Web 站点最多放 20 个 Cookie,每个 Cookie 大小限制在 4K

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值