JavaWeb中Cookie会话管理,理解Http无状态处理机制

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512995108961387015/

1、《Servlet简单实现开发部署过程

2、《Servlet部署描述符

3、《通过了解Servlet和Http之间的关系,了解web中http通信使用

4、《通过了解Servlet和Http之间的关系,了解web中http通信使用(二)

5、《Servlet生命周期

6、《Servlet全局信息共享域对象ServletContext

7、《Java中Web应用生命周期,对应理解Servlet生命周期

8、《JavaWeb中Session会话管理,理解Http无状态处理机制

上一部分我们提到了Session会话管理,这次我们再补充一个Cookie会话管理

首先我们看一下Cookie在Web中的定义:

HTTP允许一个Web服务器在客户机器上存储信息

需要注意的几个特点:

Cookie是有Web服务器的响应发出的

JavaWeb中Cookie会话管理,理解Http无状态处理机制

Cookie主要包括:名字、值、过期时间、路径和域。域和路径构成了Cookie的作用范围

JavaWeb中Cookie会话管理,理解Http无状态处理机制

Cookie存储在客户的机器上,Session存储在服务器端

JavaWeb中Cookie会话管理,理解Http无状态处理机制

JavaWeb中Cookie会话管理,理解Http无状态处理机制

我们做一个小练习:写两个Servlet,第一个访问响应到一个Cookie,第二次访问另外一个Sevlet,将其显示出来

JavaWeb中Cookie会话管理,理解Http无状态处理机制

JavaWeb中Cookie会话管理,理解Http无状态处理机制

然后我们部署访问,点击提交

JavaWeb中Cookie会话管理,理解Http无状态处理机制

此时进入第一个Servlet,响应一个cookie,我们按F12打开开发工具,就可以看到我们的cookie了

JavaWeb中Cookie会话管理,理解Http无状态处理机制

我们再访问我们的第二个Servlet

JavaWeb中Cookie会话管理,理解Http无状态处理机制

回车,可以看到服务器中显示了内容

JavaWeb中Cookie会话管理,理解Http无状态处理机制

JSESSIONID是我们前面的练习,带出来的数值,可以暂时不用考虑,此时可以看到Cookie实际上是存在客户端的

我们画个图

JavaWeb中Cookie会话管理,理解Http无状态处理机制

如果不设置过期时间,则表示这个Cookie的生命周期为浏览器会话期间,只要关闭浏览器窗口,Cookie就消失了。生命期为浏览器会话期的Cookie被称为会话Cookie,会话Cookie一般不存储在硬盘上,而是在内存中。如果设置过了过期时间,浏览器就会把Cookie保存在硬盘上,关闭再打开浏览器这些Cookie仍然有效

怎么理解呢?

我们访问

JavaWeb中Cookie会话管理,理解Http无状态处理机制

然后再访问第二个servlet

JavaWeb中Cookie会话管理,理解Http无状态处理机制

此时是可以看到我们的cookie的

JavaWeb中Cookie会话管理,理解Http无状态处理机制

但是如果我们关闭浏览器,再访问

JavaWeb中Cookie会话管理,理解Http无状态处理机制

此时服务器是没有的

JavaWeb中Cookie会话管理,理解Http无状态处理机制

就是说我们关闭了浏览器,Cookie就过期了

如果我们设置了过期时间,过期一天

JavaWeb中Cookie会话管理,理解Http无状态处理机制

此时访问浏览器

JavaWeb中Cookie会话管理,理解Http无状态处理机制

获取cookie之后,关闭浏览器,再访问

JavaWeb中Cookie会话管理,理解Http无状态处理机制

可以看到我们的cookie了

JavaWeb中Cookie会话管理,理解Http无状态处理机制

我们来查看下存在我们电脑上的cookie

我是用的是360极速浏览器,点击工具的选项

JavaWeb中Cookie会话管理,理解Http无状态处理机制

选择所有cookie

JavaWeb中Cookie会话管理,理解Http无状态处理机制

可以看到我们的过期时间

JavaWeb中Cookie会话管理,理解Http无状态处理机制

posted on 2018-01-26 12:50  那山的狐狸  阅读(248)  评论(0编辑  收藏  举报

导航