cookie

**

cookie

**

cookie

cookie

cookie是客户端浏览器帮助服务端tomcat保存信息的一种机制。这些被保存的信息可以在以后的请求与响应中实现在客户端浏览器与服务端tomcat之间来回传递。

例子:

用户登录后,显示用户上次登录的时间。
//1.服务端向客户端写cookie
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
Cookie cookie=new Cookie("date",date);
response.addCookie(cookie);
//客户从浏览器中读取
Cookie[] cookies=request.getCookies();
if(cookies!=null && cookies.length>0){
	for(int i=0;i<cookies.length;i++){
		if("date".equals(cookies[i].getName())){
			String cookievalue = cookies[i].getValue();
		}
	}
}
cookie的保存问题
  • 临时保存

    cookie是保存到浏览器中的String类型的数据,默认保存到浏览器内存中。

    当浏览器关闭后,cookie就失效了,这种cookie称作临时Cookie。

  • 永久保存

    cookie对象调用了setMaxAge可以设置cookie在浏览器中的存活的时间。单位是秒。

永久的cookie是存储在客户端硬盘上的。

Cookie存储数据的类型

cookie只能存储String类型的数据

哪些网址能够取到Cookie
  • 哪个网址写入了cookie,就只能由哪个网址读回cookie。
  • 也可以设置cookie的域。
cookie.setDomain("http://www.baidu.com")
cookie的路径

当一个项目中有两个数据都要用cookie存储时,这两个cookie的名称就要写不同,除非他们是在不同的项目中的。

如果有相同名称的cookie需要将cookie设置在不同的目录中。通过调用setPath()方法可以设置cookie的路径。

Cookie cookie1=new Cookie("data",老师);
cookie1.setPath("/mvc/teacher");
Cookie cookie2=new Cookie("date",学生);
cookie2.setPath("/mvc/student");
cookie存储汉字

如果cookie中如果存储了汉字,默认就会发生java.lang.IllegalArgumentException异常。

  • 解决的办法 在储存之前将汉字编码,在读取之后再讲汉字进行解码。

    编码:URLEncoder.encode()

    解码:URLDecoder.decode()

cookie的失效

将cookie的最大存活时间设置成0,

cookie.setMaxAge(0)
cookie的安全性

cookie是不安全的,因为他保存在客户端。可以被看见之后修改。所以敏感的数据都不能保存到cookie中。

cookie的使用场景
  • 记住上次的登录时间。
  • 记住用户上次登录的用户名。
  • 猜你喜欢
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值