Cookie 会话机制

来源:互联网 发布:情侣感人瞬间知乎 编辑:程序博客网 时间:2024/05/22 09:29
Cookie     会话机制
【1】什么是Cookie?
 因为Http 是无状态的访问,不能标识是哪一个用户的请求,为了解决这样问题,Cookie 实际就是一段文本信息,在浏览器第一次请求该网址后,服务器生成该Cookie ,并且存放到浏览器的缓冲中去(既客户端),当浏览器再次请求该网址时就会携带上存放在客户端的Cookie 去一起请求,服务器以此来辨别用户的状态。


举例:比如两个人在网上买东西, A 买了一个nokia 的手机,B也买了一个  nokia 的手机,当A 继续买东西,那么服务器需要判断,这个请求是不是A 用户的行为,而不是B用户的行为。 ---> 检测A用户的方式就可以通过Cookie 来判断是不是当前用户的 请求操作。


【2】Cookie 的基本方法(创建 和 使用)


/** javax.servlet.http.Cookie该类包含了生成Cookie信息和提取Cookie信息各个属性的方法。
*
*/


//{1}创建一个Cookie 对象


// 参数解释  name : Cookie 的名称
    value: Cookie 的
Cookie cookie = new Cookie("String name","String value");


//{2} 设置Cookie 的有效时常 以秒为单位


cookie.setMaxAge(1*24*60*60); // 一天


设置的时间分 3种情况,
(1) 设置的时间为一个正整数, Cookie 在缓冲种存在的时间
(2)设置的时间为一个负数,浏览器会将Cookie 信息保存在缓冲种,当浏览器关闭时,Cookie 信息会被删除。
(3)设置时间为0,表示浏览器立即删除这个cookie 值。


默认情况下,Max-Age 的属性值为 -1;




//{3} 将Cookie 值存放到客户端


response.addCookie(cookie);


//{4} 设置 Cookie 的域名


cookie.setDomain(".hello.com");


//{5} 设置Cookie 的路径


ccokie.sertPath("/"); 


//设置 “/” 的允许所有的路径访问到该 Cookie 




// 返回浏览器中,请求这个网址的 Cookie 数组 
Cookie[] cookies   = request.getCookies();
for(Cookie cookie : cookies){
cookie.getName();  //返回Cookie 的名称 
cookie,getValue();  //返回Cookie 的值



案例 实现永久登陆。




Cookie 在文件存放的形式


nihao
11
localhost/Day1011/
17408
2136749568
30550292
1431078670
30550091
*





























0 0