1.cookie介绍:
1)来自于Servlet规范中提供一个工具类
2) 如果两个Servlet为同一个用户/用一个浏览器提供服务,
此时借助于用户的cookie实现数据共享
3) cookie在现实生活中相当于用户的会员卡(当没有手动清除浏览器的cookie之前和设置时间没到期之前一直有效)
4)cookie类在javax.servlet.http包下,当jsp翻译成.java文件是,会自动导入javax.servlet.http包下所有的类。
5)在sjp中,通过调用构造方法Cookie(String (name,String value)创建新的cookie对象。
其中:
-
name :用于表示cookie的名称
-
value:用于表示该名称所对应的值;
-
也就是说他们属于是键值对的形式保存的,通过name可以找到value值。
2.cookie常用的方法
名称 | 说明 |
---|---|
void setMaxAge(int age) | 设置cookie的有效时间,单位为秒 |
Int getMaxAge() | 获取cookie的有效时间 |
void setValue(String value) | //修改cookie的值 |
String getName() | 获取cookie的名称 |
String getValue() | 获取cookie的值 |
3.cookie的使用
jsp通过response对象的addCookie()方法写入cookie后,读取时需要调用request对象的getCookies方法,该方法将返回HTTP请求中的cookie对象数组,因此必须通过遍历的方式进行访问。
因为cookie是以键值对(name/value)的形式保存所以在使用数组遍历的时候只需要使用名称来获取值进行使用即可。
实现原理
1. 首先创建对象
2.遍历查看存入的数组是否成功
如图所示结果为:
生命周期:
1.cookie的生命周期是可以设置的。
1)在正常情况下,cookie存放在浏览器内存中。
在浏览器关闭时,cookie将被销毁
2)在命令控制下,可以要求浏览器将接收cookie存放在客户端计算机
的硬盘上并指定存活时间。在存活时间范围内,关闭浏览器,关闭
服务器,关闭计算机都不会导致cookie销毁
3) cookie对象.setMaxAge(60); 在硬盘上存活1分钟(单位是以秒数为单位的)
cookie与session的区别:
1.相同点
cookie和session都是会话作用域对象,都是为了服务浏览器用户的。
2.区别
- session作用域对象在服务器端保存用户信息,cookie作用域在浏览器中保存用户信息。
- session作用域中保存的对象是Object类型的,而cookie作用域保存的则是String类型的。
- session会话作用域会随着服务器的关闭而关闭,而cookie可以长期保存在客户端(需要设置);
- cookie安全性不高,用于保存用户不重要的信息,而session则存储用户重要的信息安全性高。