javaEE011.01 Cookie简介和Cookie创建、获取、修改、键值问题、、有效性、Cookie应用:记住密码

系列文章目录

一、Cookie简介

1、我们为什么要学习Cookie
这就涉及到会话控制了
可以直接看这个文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、简而言之
最精简的简介即
Cookie实际上就是服务器保存在浏览器的一段信息(用于区分不同的用户)
2、 Cookie运行原理
服务器创建一个Cookie对象,该Cookie对象携带用户信息,服务器发送(响应)给客户端,
以后客户端再发送请求时,会携带该Cookie对象,服务器会根据该Cookie对象(及信息),区分不同用户

二、Cookie创建、获取和修改

在这里插入图片描述
1、Cookie创建
Cookie cookie = new Cookie(String name,String value);
response.addCookie(cookie);

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

在这里插入图片描述
这样就创建好了
在这里插入图片描述
在这里插入图片描述

2、Cookie获取
Cookie[] cookies = request.getCookies();
cookie.getName()|getValue()
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后就是测试
在这里插入图片描述
在这里插入图片描述
3、Cookie修改
Cookie修改的思路有两种第一种我们new一个同名的Cookie就行了,第二种就是直接修改了

	* 覆盖式修改
		* Cookie cookie = new Cookie("同名","新值");
		* response.addCookie(cookie);

	* 直接修改
		* Cookie[] cookies = request.getCookies();	
		* 找到指定的Cookie
		* cookie.setValue("新值");

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接式:
在这里插入图片描述
小结:覆盖式和直接式修改Cookie我们一般用覆盖式,因为覆盖式代码少一些,更简单一些

4、 Cookie的键值问题
* name不可以为中文,value可以为中文,需要指定字符集问题,所以 建议使用英文。
5、Cookie有效性
* 默认为会话级别,与浏览器有关(关闭浏览器或换一个浏览器失效

如果你想要这个Cookie一直有效怎么处理?这就需要用到持久化
* 持久化
* setMaxAge(ss:秒);
* ss>0:在ss秒后失效
* ss=0:立即失效
* ss<0:默认会话级别(比如-1;-3,-10等等等等,即跟浏览器相关了,又跟设置cookie的有效时间毫无关系了)
* 注意:持久化Cookie,该Cookie不是会话级别。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以cookie默认是会话级别的,即跟浏览器有关系,但是一旦你设置了持久化,就跟浏览器没有任何关系了

6、Cookie有效路径
		* 默认有效路径:当前项目路径
		* setPath():一般设置有效路径,都是基于当前项目下的路径进行设置。
			* 如:cookie.setPath(request.getContextPath()+"/a");

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
否则是访问不到的

三、Cookie的应用

记住密码
在这里插入图片描述
在这里插入图片描述

你要是勾选了这个复选框,我们要求下次你再进入到这个页面,账号密码直接就给你填好了
在这里插入图片描述
解决思路,我们肯定要存放到后台,在cookie中存放,并且进程持久化,持久化多久根据项目需求来,当访问这个页面的时候再取出来
在这里插入图片描述
在这里插入图片描述
取值我们现在不用jsp格式,直接用el,那么el怎么才能取到cookie的数据呢?,有没有一个跟cookie有关系的呢?

在这里插入图片描述

先做一个尝试看看能不能输出来
在这里插入图片描述
在这里插入图片描述
下面就是完全实现
先判断复选框勾选了还是没有勾选

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
7、Cookie缺陷
* Cookie的value为String型,不灵活。
* Cookie存放在浏览器中,不安全。
* Cookie过多,会浪费流量(不同的浏览器对cookie的满足也是不一样的,即能够所存cookie的大小)

在这里插入图片描述
由于cookie有缺陷,所以我们下面讲讲session,能够或多或少补足cookie的不足,比cookie更为强大
session是存储在服务器端
cookie是存放在客户端

总结

1、什么时候重启服务:修改了servlet代码,并且没有输出打印日志
2、不需要重启服务:修改jsp代码(html)代码是完全不需要重启服务的
3、覆盖式和直接式修改Cookie我们一般用覆盖式,因为简单一些
4、Cookie只要一换浏览器就会失效
5、cookie默认是会话级别的,即跟浏览器有关系,但是一旦你设置了持久化,就跟浏览器没有任何关系了
6、session是存放在服务器端,cookie是存放在客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值