一.概述:
HTTP协议是一个无状态协议,即Web应用程序无法区分收到的两个HTTP请求是否是同一个浏览
器发出的。例如:当一个用户登录成功后,如果他继续请求访问其他页面、当一个用户在操作自己
的购物车时,请求添加购物车然后结账。如果Web程序如何不能区分请求是否为同一用户的,就会
导致混乱,因此在Web应用程序中,我们经常要跟踪用户身份。
为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID——Session ID,并以Cookie的形式发送
到浏览器,浏览器在后续访问时总是附带此Cookie,这样,服务器就可以通过Cookie中的
SessionID识别用户身份。
session:
Session是指使用HttpSession对象实现会话跟踪的技术,是一种在服务器端保持会话跟踪的解决方案。HttpSession对象是javax.servlet.http.HttpSession接口的实例,也称为会话对象。JavaEE的Servlet机制内建了对Session的支持。当我们需要获取Session时,可以通过request请求对象的getSession()方法。
常见操作有:
1.void setAttribute(String name, Object value):将指定Key-Value键值对,存入当前Session会话中。
2.Object getAttribute(String name):按照指定的Key从当前Session会话中获取Value,返回值为Object类型的对象,如果不存在,则返回n
3.void removeAttribute(String name):按照指定的Key从当前Session会话中删除Key-Value键值对。
4.String getId():获取当前Session会话的SESSION ID。
5.long getCreationTime():获取当前Session会话的创建时间。
6.long getLastAccessedTime():获取当前Session会话最后一次请求的访问时间。
cookie:
Cookie英⽂意思是甜点的意思,我们可以在Web应⽤程序中可以使⽤cookie在客户端保持HTTP状态信息。cookie相当于是web服务器送给客户端浏览器的甜点。⾄于什么时候送,送什么样的甜点,有效期是多常时间,完全由服务器来决定。
Cookie在HTTP中通常是用来辨别用户身份,进行会话跟踪而储存在用户本地终端上的数据,一般会加密处理,由用户客户端计算机暂时或永久保存的信息。其结构就是一个键和一个值构成的。随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来,当下一次再访问服务器时把Cookie再发送给服务器。
创建新的Cookie:
百度中的cookie如下:
小结:
Servlet
容器提供了Session
机制以跟踪用户;- 默认的
Session
机制是以Cookie
形式实现的,Cookie
名称为JSESSIONID
; - 通过读写
Cookie
可以在客户端存储数据