会话跟踪技术session和cookie
随笔链接:
Cookie
- 1.什么是Cookie
- 2.Cookie的创建和服务器的获取
Session
- 1.什么是Session
- 2.Session的创建和获取
- 3.Session域数据的处理
- 4.Session的生命周期
- 5.关于Session的两个问题
会话跟踪技术Session和Cookie:
Cookie
1.什么是Cookie
2.Cookie的创建和服务器的获取
Cookie的创建过程:
- 创建Cookie
Cookie cookie = new Cookie("key",value); - 给客户端响应Cookie对象,通知客户端保存Cookie
response.addCookie(cookie);
服务器获取Cookie:
//服务器获取Cookie Cookie[] cookies = request.getCookies();
Session
1.什么是Session
- Session:Session 服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象HttpSession中
2.Session的创建和获取
Session的创建和获取的api是一样的
request.getSession()
-
-
之后调用都是获取前面创建好的 Session 会话对象
3.Session域数据的处理
使用HttpSession对象处理数据时常用的三个api
- 根据指定的属性名称获取指定的值,返回结果是Object需要强转
- 绑定数据到此会话上,数据格式键/值对,name属性名 value属性值
- 移除绑定的数据,根据键(属性名)移除
4.Session的生命周期
因为在 Tomcat 服务器的配置文件 web.xml中默认有以下的配置,它就表示配置了当前 Tomcat 服务器下所有的 Session 超时配置默认时长为:30 分钟
30
管理Session的生命周期时常用的三个api
- 设置 Session 的超时时间(以秒为单位),超过指定的时长,Session 就会被销毁,值为负数时永不超时
- 获取 Session 的超时时间
- 让当前 Session 会话马上超时无效
5.关于Session的两个问题
1.当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
-
-
如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
2.客户端不关闭,服务器关闭后,两次获取的session是同一个?
-
-
session的钝化:
-
在服务器正常关闭之前,将session对象序列化到硬盘上
-
-
session的活化:
-
在服务器启动后,将session文件转化为内存中的session对象
-