会话
六、会话
一】定义:
用户输入URL地址,有效访问某个网站,在该网站上的进行一系列有效操作,
随后再关闭浏览器。这整个过程就叫做一次会话。
二】用途:
主要解决服务端如果保存每个客户端对应的私有信息
三】分类-----------保存会话的两种技术
1》Cookie技术
2》Session技术
特点:
1)是一个域对象
2)每个客户端独享一个域对象。
九、Cookie技术---客户端的技术
一】概念:每次发送请求时,客户端都会带上各自的不同Cookie到服务端,
服务端一解析Cookie,就知道是哪个客户端发过来的信息。
二】Cookie类
1)构造函数
Cookie(String name, String value);
2)重点函数
1》关于缓存时间
void setMaxAge(int s);//设置Cookie存放时间,不设置默认为0s。专业来将,Cookie的默认有效期为一次会话周期。
int getMaxAge();
2》获取Cookie对象的名称
String getName();
3》关于Cookie对象的值
String getValue();
void setVlaue();
4》获取客户端所有Cookie对象
Cookie[] request.getCookies();
5》将Cookie对象存入客户端
void response.addCookie(Cookie cookie);
5》关于缓存路径
void setPath(String uri);
String getPath();
三】使用Cookie的基本步骤
存:
1》创建Cookie对象
2》设置Cookie对象在客户端的存活时间
3》将Cookie对象发送到客户端暂存
取:
1》取得客户端所有的Cookie
2》对相应的Cookie对象进行相应的操作
code:
/* //服务端产生Cookie Cookie cookie = new Cookie("username","haha"); //设置Cookie存活时间 cookie.setMaxAge(1*24*60*60); //服务端将Cookie写到客户端暂存 response.addCookie(cookie); */ //取得客户端所有的Cookie Cookie[] cookies = request.getCookies(); Cookie usernameCookie = null; if(cookies!=null){ for(Cookie c : cookies){ if(c.getName().equals("username")){ usernameCookie = c; break; } } //如果找到了Cookie if(usernameCookie!=null){ System.out.println("Cookie的名字:" + usernameCookie.getName()); System.out.println("Cookie的值:" + usernameCookie.getValue()); System.out.println("Cookie的生命:" + usernameCookie.getMaxAge()); System.out.println("Cookie的路径:" + usernameCookie.getPath()); } } }
四】Cookie应用---显示上次访问时间
原理:更新某个Cookie,即是向浏览器写一个相同名的Cookie
注意事项:
Cookie一定要设置一个有效时间,如果不设置的话,默认该请求访问结束后,
该Cookie自动销毁。
即:Cookie的默认有效期为一个有效会话周期。
code:
long nowTime = System.currentTimeMillis();
方法一:利用setValue方法
nameCookie.setValue(nowTime+"");
nameCookie.setMaxAge(24*60*60);
response.addCookie(nameCookie);
方法二:利用构造函数
Cookie cook = new Cookie("name", nowTime+"");
cook.setMaxAge(24*60*60);
response.addCookie(cook);
五】Cookie应用——删除Cookie
利用方法
setMaxAge(0);