Cookie和Session专题(转载)
一、cookie机制和session机制的区别
*************************************************************************************
详细来说cookie机制回收的是在客户端保持状态的方案,而session机制回收的是在处事器端保持状态的方案。
同时我们也看到,由于才处事器端保持状态的方案在客户端也需要生存一个标识,所以session
机制大概需要借助于cookie机制来到达生存标识的目标,但实际上尚有其他选择
*************************************************************************************
二、会话cookie和耐久cookie的区别
*************************************************************************************
假如不配置逾期时间,则暗示这个cookie生命周期为欣赏器会话期间,只要封锁欣赏器窗口,cookie就消失了。这种生命期为欣赏会话期的cookie被称为会话cookie。会话cookie一般不生存在硬盘上而是生存在内存里。
假如配置了逾期时间,欣赏器就会把cookie生存到硬盘上,封锁后再次打开欣赏器,这些cookie依然有效直到高出设定的逾期时间。
存储在硬盘上的cookie可以在差异的欣赏器历程间共享,好比两个IE窗口。而对付生存在内存的cookie,差异的欣赏器有差异的处理惩罚方法。
*************************************************************************************
三、如何操作实现自动登录
*************************************************************************************
当用户在某个网站注册后,就会收到一个惟一用户ID的cookie。客户厥后从头毗连时,这个
用户ID会自动返回,处事器对它举办查抄,确定它是否为注册用户且选择了自动登录,从而利用户务需给出明晰的用户名和暗码,就可以会见处事器上的资源。
*************************************************************************************
四、如何按照用户的喜好定制站点
*************************************************************************************
网站可以利用cookie记任命户的意愿。对付简朴的配置,网站可以直接将页面的配置存储在cookie中完成定制。然而对付更巨大的定制,网站只需仅将一个惟一的标识符发送给用户,由处事器端的数据库存储每个标识符对应的页面配置。
*************************************************************************************
五、cookie的发送
*************************************************************************************
1.建设Cookie工具
2.配置最大时效
3.将Cookie放入到HTTP响应报头
假如你建设了一个cookie,并将他发送到欣赏器,默认环境下它是一个会话级此外cookie:存储在欣赏器的内存中,用户退出欣赏器之后被删除。假如你但愿欣赏器将该cookie存储在磁盘上,则
需要利用maxAge,并给出一个以秒为单元的时间。将最大时效设为0则是呼吁欣赏器删除该cookie。
发送cookie需要利用HttpServletResponse的addCookie要领,将cookie插入到一个Set-Cookie HTTP请求报头中。由于这个要领并不修改任何之前指定的Set-Cookie报头,而是建设新的报头,因此我们将这个要领称为是addCookie,而非setCookie。同样要记着响应报头必需在任何文档内容发送到客户端之前配置。
六、cookie的读取
*************************************************************************************
1.挪用request.getCookie
要获取有欣赏器发送来的cookie,需要挪用HttpServletRequest的getCookies要领,这个挪用返回Cookie工具的数组,对应由HTTP请求中Cookie报头输入的值。
2.对数组举办轮回,挪用每个cookie的getName要领,直到找到感乐趣的cookie为止
cookie与你的主机(域)相关,而非你的servlet或JSP页面。因而,尽量你的servlet大概只发送了单个cookie,你也大概会获得很多不相关的cookie。
譬喻:
String cookieName = “userID”;
Cookie cookies[] = request.getCookies();
if (cookies!=null){
for(int i=0;i<cookies.length;i++){
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName())){
doSomethingWith(cookie.getValue());
}
}
}
*************************************************************************************
七、如何利用cookie检测初访者
*************************************************************************************
A.挪用HttpServletRequest.getCookies()获取Cookie数组
B.在轮回中检索指命名字的cookie是否存在以及对应的值是否正确
C.假如是则退出轮回并配置区别标识
D.按照区别标识判定用户是否为初访者从而举办差异的操纵
*************************************************************************************