文章目录
一、会话跟踪
会话跟踪是一种维护浏览器状态得方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话得多次请求间共享数据
具体得实现方式:
(1)客户端会话跟踪技术:Cookie
(2)服务端会话跟踪技术:Session
二、Cookie
2.1 概念和基本流程
Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
工作流程:
(1)服务端提供了两个Servlet,分别是ServletA和ServletB
(2)浏览器发送HTTP请求1给服务端,服务端ServletA接收请求并进行业务处理
(3)服务端ServletA在处理得过程中可以创建一个Cookie对象并将name=zs
得数据存入Cookie
(4)服务端ServletA在响应数据得时候,会把Cookie对象相应给浏览器
(5)浏览器接收到响应数据,会把Cookie对象得数据存储到浏览器内存中,次数浏览器和服务端就建立了一次会话
(6)在同一次会话中,浏览器再次发送HTTP请求2给ServletB,浏览器会携带Cookie对象中得所有数据
(7)ServletB接收到请求和数据后,就可以获取到存储在Cookie对象中得数据,这样一个会话中得多次请i去之间就实现了数据共享
2.2 Cookie的使用
Cookie的操作分为发送Cookie
和获取Cookie
(1)发送Cookie
创建Cookie对象,并设置数据
Cookie cookie = new Cookie("key", "value")
发送Cookie到客户端:使用response对象
response.addCookie(cookie/)
(2)获取Cookie
获取客户端携带的所有Cookie,使用request对象
Cookie[] cookies = request.getCookies
;便利数组获取每一个Cookie对象
使用Cookie对象方法获取数据
cookie.getName()
cookie.getValue()
2.3 Cookie的原理分析
Cookie的实现原理是基于HTTP协议的,其中涉及到HTTP协议的两个请求头信息
- 响应头:
set-cookie
- 请求头:
cookie
2.4 Cookie存活时间
- 默认情况下,Cookie存储在浏览器的内存中,当浏览器关闭,内存释放,则Cookie被销毁
- 设置Cookie存活时间:
setMaxAge(int seconds)
(1)正数:将Cookie写入浏览器所在的硬盘,持久化存储。到时自动删除
(2)负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
(3)零:删除对应Cookie
二、Session
服务端会话跟踪技术:将数据保存到服务端
JavaEE提供HttpSession接口,来实现一次会话的多次请求间的数据共享功能
使用
获取Session对象
HtttpSession session = request.getSession()
Session对象功能
(1)void serAttibute(String name, Object o)
:存储数据到session域中
(2)Object getAttribute(String name)
:根据Key,获取值
(3)void removeAttribute(String name)
:根据key,删除该键值对