- cookie基本使用
- cookie原理
- cookie使用细节
- Session
- Session原理
- Session使用细节
- 小结
- cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带cookie数据进行访问
- 发送cookie到客户端,使用response对象response.addcookie(cookie)
- 获取客户端携带的所有cookie,使用request对象cookie[] cookies=request.getcookies();
- 遍历数组,获取每一个cookie对象:for
- 使用cookie对象方法获取数据cookie.getName();cookie.getValue();
- cookie实现是基于HTTP协议的
- 响应头:set-cookie
- 请求头:cookie
- cookie使用时间
- 默认情况下,cookie存储在浏览器内存中,当浏览器关闭,内存释放,则cookie被销毁
- setMaxAge(int seconds):设置cookie存活时间
- 正数:将cookie写入浏览器所在电脑的硬盘,持久化存储,到时间自动删除
- 复数:默认值,浏览器关闭,cookie被销毁
- 零:删除对应cookie
- cookie存储中文
- cookie默认情况不能直接存储中文
- 如需要存储,则需要进行转码:URL编码URLEncoder.encode(value,"UTF-8");URLDecoder.decode(value,"UTF-9");
- 服务端会话跟踪技术:将数据保存到服务端
- JavaEE提供HttpSeesion接口,来实现一次会话的多次请求间数据共享功能
- 使用
- 获取Seesion对象HttpSession session=request.getSeesion();
- Seesion对象功能:
- void setAttribute(String name,Object o):存储数据到seesion域中
- Object getAttribute(String name):根据key,获取值
- void removeAttribute(String name):根据key,删除该键值对
- session是基于cookie实现的
- Session钝化、活话:
- 服务器重启后,Session中的数据是否还在?在
- 钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中
- 活话:再次启动服务器后,从文件中加载数据到Session中
- 服务器重启后,Session中的数据是否还在?在
- Session销毁
-
默认情况下,30分钟自动销毁
-
调用Session对象的invalidate()方法
-
小结30
- cookie和Session都是来完成一次会话内多次请求间数据共享的
- 区别
- 存储位置:cookie是将数据存储在客户端,Session将数据存储在服务端
- 安全性:cookie不安全,Session安全
- 数据大小:cookie最大3KB,Session无大小限制
- 存储时间:cookie可以长期存储,Session默认30分钟
- 服务器性能:cookie不占服务器资源,Session占用服务器资源



