Cookie
客户端会话技术,客户端保存,用于存储少量不太敏感的数据,在不登陆的情况下完成服务器对客户端的身份识别
简单使用步骤
- 创建Cookie对象,绑定数据
new Cookie(String name, String value)
- 发送Cookie对象
response.addCookie(Cookie cookie)
- 获取Cookie对象,拿到数据
Cookie[] request.getCookies()
细节
- 默认情况下,当浏览器关闭后,Cookie数据被销毁
- 持久化存储:
setMaxAge(int seconds)
- 正数:将Cookie数据写到硬盘的文件中,时间到后,cookie文件自动失效
- 负数:默认值
- 零:删除cookie信息
- 默认项目间不能共享,设置
setPath(String path)
为"/" - 不同服务器间共享
setDomain(String path)
Session
服务器会话技术,服务器端保存,没有数据大小限制
简单使用步骤
- 获取HttpSession对象
HttpSession session = request.getSession()
- 使用HttpSession对象
Object getAttribute(String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)
细节
- 客户端关闭,服务器不关闭,保持session为同一个方法
- 创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
- 客户端不关闭,服务器关闭,保持session为同一个方法
- session钝化与活化
- 使用session时要开启cookie,否则会导致SessionID不一致