客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
Cookie 基本使用 发送Cookie- 创建Cookie对象,设置数据
Cookie cookie = new Cookie("Key","Value");
- 发送Cookie到客户端,使用response 对象
response.addCookie(cookie);
获取Cookie
- 获取客户端携带的所有Cookie,使用request对象
Cookie[] cookies = request.getCookies();
- 遍历数组,获取每一个Cookie对象:for
- 使用Cookie对象方法获取数据
cookie.getName();
cookie.getValue();
Cookie原理
Cookie的实现是基于HTTP协议的
- 响应头:set-cookie
- 请求头:cookie
- 默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁
- setMaxAge(int seconds):设置Cookie存活时间
- 正数:将cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除
- 负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
- 零:删除对应Cookie
Cookie不能直接存储中文
如需要,要进行转码:URL编码
String value = "小明";
value = URLEncoder.encode(value,"utf-8");
Cookie cookie = new Cookie("name",value);
解码
String value = cookie.getValue();
value = URLDecoder.decode(value,"utf-8");
Session
服务端会话跟踪技术:将数据保存到服务端
JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能
HttpSession session = request.getSession();
Session 对象功能
- void setAttribute(String name, Object o):存储数据到 session域中
- Object getAttribute(String name):根据key,获取值
- void removeAttribute(String name):根据key,删除该键值对
Session是基于Cookie实现的
服务器重启后,Session中的数据是否还在?
- 钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中
- 活化:再次启动服务器后,从文件中加载数据到Session中
- 默认情况下,无 *** 作,30分钟自动销毁
web.xml中
<session-config>
<session-timeout>30</session-timeout>//30分钟
</session-config>
- 调用Session 对象的invalidate()方法;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)