👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
👀专栏介绍
【JavaWeb】 目前主要更新JavaWeb,一起学习一起进步。
👀本期介绍
本期主要介绍案例一:记录用户的上次访问时间
文章目录
1.1、 流程及技术分析
1.2、 讲解:cookie
1.2.1、cookie 简述
1.2.2、cookie 入门案例
1.2.3、cookie 获取及 cookie 原理
1.2.4、cookie 使用注意
1.2.5、cookie 种类
1.2.6、cookie 的有效路径
1.2.7、cookie 的唯一标识
1.3、 代码实现
1.1、 流程及技术分析
域对象:
request
:仅针对某次请求,因为该案例会有两次请求,所以无法使用
request
ServletContext
:针对整个项目所有请求,会导致用户
1
记录的时间被其他用户使用。
会话技术:
相当于浏览器和服务器之间打电话的技术。
浏览器和服务器本身都是健忘症患者。
会话数据需要记录:要么小红记录,要么小明记录
浏览器
服务器
会话技术:
保存在浏览器的会话技术
----Cookie
保存在服务器的会话技术
----Session
1.2、 讲解:cookie
1.2.1、cookie 简述
保存在浏览器端的会话技术。
Cookie-----
小甜点,小饼干
Cookie
就相当于浏览器和服务器之间传递的一张小纸条。
服务器负责写小纸条,负责查看小纸条
浏览器负责保存小纸条,负责把小纸条展示给服务器看
作用:就是为了保存会话数据
1.2.2、cookie 入门案例
入门案例
1
:
服务器如何书写
cookie
,如何把
cookie
传递给浏览器保存的
Cookie 的基本使用:
Cookie 有 key value
1.2.3、cookie 获取及 cookie 原理
入门案例
2
:服务器如何接收并查看浏览器传递来的
cookie
服务器的关闭与否,不会影响浏览器的
cookie
保存
服务器把 cookie 通过响应头传递:
浏览器把保存的 cookie 通过请求头展示给服务器:
上述方法若获取不到 cookie,就会返回 null
1.2.4、cookie 使用注意
1
、
cookie
是由
http
协议制定,只要使用
http
协议,就可以使用
cookie
。浏览器、手机端
2
、
cookie
保存是有上限。
Cookie 的
value
值不能太多,
4K.
一个浏览器保存的
cookie
也是有上限。
300
一个网站只能在一个浏览器上最多保存
30
个。
例如:商品浏览记录、上次访问记录、
7
天内自动登录。。
3
、
cookie 不能直接保存中文
不允许
获取到值使用时,需要进行
url
解码。
URLDecoder.decode
建议:
cookie
中不要保存中文
。
1.2.5、cookie 种类
Cookie
分为两种:
保存在浏览器内存中的
cookie
(默认)。
特点是:浏览器关闭,
cookie
就会销毁
保存在浏览器对应的硬盘上(持久化
cookie
)。
特点:浏览器即使关闭,cookie 也会保存下来
问题:
cookie
保存
7
天?
60*60*24*7
问题:把这个保存 7 天的 cookie 删除。
1.2.6、cookie 的有效路径
Cookie
会保存在硬盘上,保存路径,是由浏览器来自动控制。
访问某路径,带哪些
cookie
,才要根据
cookie
的有效路径来判断
。
访问的路径等于或者包含 某个 cookie 的有效路径,这个 cookie 就会被发送过来
总结:一般都要进行 setPath(request.getContextPath()+”/”); // /day37_1/
1.2.7、cookie 的唯一标识
Cookie
是可以进行分别保存或者相互覆盖的。
Cookie
如何进行相互覆盖,新
cookie
会覆盖旧
cookie
,
前提:
cookie
的唯一标识必须完全相同(身份证)
唯一标识:
域名
+
有效路径
+cookie
名称
例如
1
:
C1:http://www.baidu.com/ /hehe/ nihao
C2:
http://www.itcast.cn/
/hehe/ nihao
会分别保存,因为域名不同
例如
2
:
C1:http://www.baidu.com/ /hehe/ nihao
C2: http://www.baidu.com/ /haha/ nihao
会分别保存,因为有效路径不同
例如
3
:
C1:http://www.baidu.com/ /hehe/ k1
C2: http://www.baidu.com/ /hehe/ k2
会分别保存,因为
cookie
名称不同
例如
4
:
C1:http://www.baidu.com/ /hehe/ k1
C2: http://www.baidu.com/ /hehe/ k1
唯一标识相同,判定是同一个
cookie
,新的
cookie
会覆盖旧的
cookie
域名不用手动设置,因为
tomcat
服务器会设置
.
我们只要关注:
有效路径
和
cookie
名称
即可
Visit
Show