目录
会话
版本1:当前浏览器与服务器间多次的请求、响应关系,被称作一个会话
版本2:打开浏览器,进行网页的浏览,到关闭浏览器的过程,这个过程称为一次会话
1.session内置对象
2.1 session内置对象简介
(1)session表示客户端与服务器的一次会话
(2)Web中的session指:用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览网站所花费的时间。
(3)从上述定义中可以看到,session实际是一个【特定的时间概念】
(4)服务器的内存中,保存着同用户的session。
2.2 内置对象session的常用方法
(1)void setAttribute(String key,Object value):以key/value的形式保存对象值
(2)Object getAttribute(String key):通过key获取对象值
(3)void invalidate():设置session对象失效
(4)String getId():获取sessionid
(5)void setMaxInactiveInterval(int interval):设定session的非活动时间
(6)int getMaxInactiveInterval():获取session的有效非活动时间(以秒为单位)
(7)void removeAttribute(String key):从session中删除指定名称(key)所对应的对象
2.3 session与窗口的关系
(1)每个session对象都与浏览器一一对应,重新开启一个浏览器,相当于重新创建一个session对象。
(2)通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
2.cookie
3.1 概述:cookie是Web服务器保存在客户端的一系列文本信息
3.2 cookie的作用:
对特定对象的追踪
统计网页浏览次数
简化登录
3.3 安全性能:容易信息泄露
3.4 语法:
①创建cookie对象
Cookie newCookie = new Cookie(String key,String value);
②写入cookie
response.addCookie(newCookie);
③读取cookie
Cookie[] cookies = request.getCookies();
3.5 常用方法:
void setMaxAge(int expiry):设置cookie的有效期,以秒为单位
void setValue(String value):在cookie创建后,对cookie进行赋值
String getName():获取cookie的名称
String getValue():获取cookie的值
3.6 编码问题
//创建Cookie时
Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
//读取Cookie时
String value = URLDecoder.decode(cookie.getValue(), "UTF-8");
3.7 session与cookie的比较
session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
session中保存的是对象,Cookie保存的是字符串
session随会话结束而关闭,Cookie可以长期保存在客户端
不重要的信息使用cookie保存,重要的信息使用session保存