会话跟踪技术
- 会话:用户打开浏览器,访问web浏览器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可能包含多次请求和相应
- 会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求间共享数据
- HTTP协议是无状态的,每次浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求间共享数据
- 实现方法:
1.客户端会话跟踪技术:Cookie
2.服务端会话跟踪技术:Seesion
Cookie基本使用
- Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
- Cookie基本使用
1.创建Cookie对象,设置数据
Cookie cookie = new Cookie(“key”,”value”);
2.发生Cookie到客户端,使用response对象
response.addCookie(cookie);
3.获取客户端携带所有的Cookie,使用request对象
Cookie[] cookies = request.getCookie();
4.遍历数组,获取每个Cookie对象,fer循环
5.使用Cookie对象方法获取数据
cookie.getName();
cookie.getvalue();
Cookie原理
- Cookie的实现是基于HTTP协议的
- 响应头:Set-cookie
- 请求头:Cookie
Cookie使用细节
- Cookie存放时间
默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被摧毁
setMaxAge(int seconds):设置Cookie存活时间
1.正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储,到时间自动删除
2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
3.零:删除对应的Cookie
- Cookie存储中文
Cookie不能直接存储中文
如需要存储,则需要进行转码:URL编码
Session基本使用
Session
- 服务端会话跟踪技术:将数据保存到服务端
- JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能
- 使用:
1.获取Session对象
HttpSession session = request.getSession();
2.Session对象功能:
void setAttribute(String name,Object o);存储数据到Session域中
Object getAttribute(String name);根据key,获取值
void removeAttribute(String name);根据key;删除该键值对