上一部分我们提到了Session会话管理,这次我们再补充一个Cookie会话管理
首先我们看一下Cookie在Web中的定义:
HTTP允许一个Web服务器在客户机器上存储信息
需要注意的几个特点:
Cookie是有Web服务器的响应发出的
Cookie主要包括:名字、值、过期时间、路径和域。域和路径构成了Cookie的作用范围
Cookie存储在客户的机器上,Session存储在服务器端
我们做一个小练习:写两个Servlet,第一个访问响应到一个Cookie,第二次访问另外一个Sevlet,将其显示出来
然后我们部署访问,点击提交
此时进入第一个Servlet,响应一个cookie,我们按F12打开开发工具,就可以看到我们的cookie了
我们再访问我们的第二个Servlet
回车,可以看到服务器中显示了内容
JSESSIONID是我们前面的练习,带出来的数值,可以暂时不用考虑,此时可以看到Cookie实际上是存在客户端的
我们画个图
如果不设置过期时间,则表示这个Cookie的生命周期为浏览器会话期间,只要关闭浏览器窗口,Cookie就消失了。生命期为浏览器会话期的Cookie被称为会话Cookie,会话Cookie一般不存储在硬盘上,而是在内存中。如果设置过了过期时间,浏览器就会把Cookie保存在硬盘上,关闭再打开浏览器这些Cookie仍然有效
怎么理解呢?
我们访问
然后再访问第二个servlet
此时是可以看到我们的cookie的
但是如果我们关闭浏览器,再访问
此时服务器是没有的
就是说我们关闭了浏览器,Cookie就过期了
如果我们设置了过期时间,过期一天
此时访问浏览器
获取cookie之后,关闭浏览器,再访问
可以看到我们的cookie了
我们来查看下存在我们电脑上的cookie
我是用的是360极速浏览器,点击工具的选项
选择所有cookie
可以看到我们的过期时间