文章目录
Cookie概念及其创建
Cookie是什么:
Cookie是浏览器发给服务器的.
Cookie是保存在客户端的小文本,保存的位置分两种:
- Cookie可能保存在客户端浏览器的所占内存中,关闭浏览器后,Cookie就不存在了
- Cookie也可能保存在客户PC机的硬盘上,设置有效时间,超过有效时间后失效.
Cookie作用:
简化登录:在Cookie保存的有效时间内,不用密码登录.
记录浏览记录:购物网站,每次登录后,会看到曾经浏览过的商品信息.就会推送你以前浏览过的相关商品种类.
浏览器查看Cookie
**火狐浏览器:**进入页面 —> 当前用户----> 查看页面信息 ---->
- 权限 ----> 设置Cookie
- 安全 ----> 隐私和历史记录
Cookie数量: 进入浏览器页面 ---- > 选项 —> Cookie和网站数据 —> 管理数据
- 进入网页面 —> 查看元素 ----> (网络 —> Cookie 或 存储 —> Cookie)
(因为浏览器也想知道用户是谁!所以自带一个JSESSIONID)
Coolie应用场景:
Cookie能够把小文本保存到客户端,在服务器与客户端进行传输。然而,Cookie容易造成信息泄露,另外,客户端可以通过设置阻止Cookie,也可能手工清除Cookie,因此,使用Cookie的原则:
- 不用cookie保存保密性要求高的信息,例如银行卡密码等
- 不用cookie实现必要功能,防止cookie被删除后出现错误
- 可以说:cookie用来实现“锦上添花”的功能,也就是说,一旦cookie被禁止或者被删除,应用依然能正常运行
Cookie类的创建、保存、获取
创建Cookie对象
在servlet API中,存在Cookie类,可以使用new关键字创建Cookie对象
- Cookie对象是保存一对键值对,都是字符串.
Cookie newCookie = new Cookie("name","value");
Cookie类的其他方法
序号 | 类型 | 方法 | 说明 |
---|---|---|---|
01 | void | setMaxAge(int expiry) | 设置Cookie的有效期,以秒为单位,Cookie保存在硬盘上(正数),否则保存在内存中(负数) |
02 | void | setValue(String value) | 在Cookie创建后,对Cookie进行赋值 |
03 | String | getName() | 获取Cookie的名称 |
04 | String | getValue() | 获取Cookie的值 |
05 | Stirng | getMaxAge() | 获取Cookie的有效时间,以秒为单位 |
保存和获取Cookie
- Cookie要保存到客户端,凡是写到客户端的方法,基本都在响应中.HttpServletResponse中提供了方法,把Cookie保存到客户端
response.addCookie(newCookie)
- 再次访问与保存Cookie相同域名的网站时,HTTP协议将把有效时间内的Cookie都发送到服务器,容器将把Cookie封装到请求中,HttpServletRequest类提供了获取Cookie对象的方法
Cookie[] cookies = request.getCookies();
值得注意的是,在过滤器中,request与response是ServletResponse类型,而获取Cookie需要HttpServletRequest类型需要强制类型转换。