会话技术
一次会话:浏览器端第一次向服务器端发送请求,会话建立,直到有一方断开
功能:共享数据。(因为HTTP是无状态的,每个请求之间独立,不共享数据)
Cookie:客户端会话技术
1、常用方法
(1)服务器端接受浏览器端的cookie
Cookie[] cookies = request.getCookies();
(2)浏览器端收到服务器端的cookie
Cookie cookie = new Cookie(String name, String value);
response.addCookie(Cookie cookie);
2、注意事项
(1)一次可以发送多个cookie
(2)cookie存放中文需要URL编解码(http请求报文里边都是URL格式)
(3)cookie保存时间:默认,一次会话
setMaxAge(int seconds)
正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效
负数:默认值
零:删除cookie信息
(4)cookie共享问题:
同一服务器不同项目:默认不共享;共享:setPath("/")
不同服务器之间:setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
eg: setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享
3、作用:
(1)一般用于存储少量的不太敏感的数据
(2)不登录的情况下,完成服务器端对浏览器端的客户识别
注意:
编解码代码:
String str_date = sdf.format(date);
//URL编码
str_date = URLEncoder.encode(str_date,"utf-8");
cookie.setValue(str_date);
String value = cookie.getValue();
//URL解码:
value = URLDecoder.decode(value,"utf-8");
System.out.println("解码后:"+value);
Session:服务器端会话技术