Web常用的对象之Cookie

Cookie的简单介绍:
首先我们知道的是Cookie是浏览器提供的一种技术,**通过服务器的程序将一些职能保留存在在客户端的,或者客户端进行处理的数据,存在放在本地的计算机上,不需要通过网络传输,因而提高网页处理的效率,并且能够减少服务器的负载,**但是由于Cookie是服务器端保留存在的客户端的信息,所以其其安全性也是很差的.

有一个专门操作Cookie的类: javax.servlet.http.Cookie

随着服务器端的响应 发送给客户端,保存在浏览器。当下次再访问服务器时把 Cookie 再带回服务器
Cookie的格式: :
键值对用“=”链接,多个键值对间通过“ ;”隔开
例如: A=a; B=b;

还有就是Coolie存的数据都是比较小的 大约在4KB左右,没有办法存了大量的数据

Cookie的创建和发送:

通过 new Cookie(“key”,”value”);来创建一个 Cookie 对象,要想将 Cookie 随 响应发送到客户端,需要先添加到 response 对象中,resp.addCookie(cookie);此 时该 cookie 对象则随着响应发送至了客户
在这里插入图片描述

在这里插入图片描述

Cookie的获取:
在服务器端只提供了一个 getCookies()的方法用来获取客户端回传的所有 cookie 组成的一个数组,如果需要获取单个 cookie 则需要通过遍历,getName() 获取 Cookie 的名称,getValue()获取 Cookie 的值
在这里插入图片描述
在这里插入图片描述
Cookie到期时间的设定以及Cookie的注意事项:

意思是说:我们怎么设置什么时候去关闭Cookie
给他一个我们预先设定好的时间,让Cookie到达我们制定的时间就失效; 所以我们这里就需要设定一个到期时间.
**本身Cookie到期的时间是:默认浏览器关闭就失效
**
除了本身默认的到期时间之外,我们该可以自己手动的去设定Cookie的到期时间:

通过 setMaxAge(int time);方法设定 cookie 的最大有效时间,以秒为单位

大于 0 的整数,表示存储的秒数;
若为负数,则表示不存储该 cookie;
若为 0,则删 除该 cookie。
负整数:cookie 的 maxAge 属性的默认值就是-1,表示只在浏览器内存中存活,一旦关闭浏览器窗口,那么 cookie 就会消失。
正整数:表示 cookie 对象可存活指定的秒数。当生命大于 0 时,浏览器会把 Cookie 保存到硬盘上,就算关闭浏览器,就算重启客户端电脑,cookie 也会存活相应的时间。
零:cookie 生命等于 0 是一个特殊的值,它表示 cookie 被作废!也就是说,如果原来浏览器已经保存了这个 Cookie,那么可以通过 Cookie 的 setMaxAge(0)来删除这个 Cookie。 无论是在浏览器内存中,还是在客户端硬盘上都会删除这个 Cookie。

注意事项:
Cookie不能跨浏览器/电脑/不能储存中文(报错)

存中文会报错:java.lang.IllegalArgumentException: Control character in cookie value or attribute.

如果有中文则通过 URLEncoder.encode()来进行编码,获取时通过 URLDecoder.decode()来进行解码。

Cookie的覆盖:
如果服务器端发送重复的 Cookie 那么会覆盖原有的 Cookie

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述Cookie的路径:
在 Servlet 中保存的 Cookie 如果没有设置 path,那么它的 path 默认为当 前 Servlet 的所在路径;

当访问的路径包含了 cookie 的路径时,则该请求将带上该 cookie;如果访 问路径不包含 cookie 路径,则该请求不会携带该 cookie

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值