session和cookie
2011年04月12日
一、cookie机制和session机制的区别
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状 态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择,比如说重写 URL和隐藏表单域。
二、会话cookie和持久cookie的区别
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间(setMaxAge(60*60*24)), 浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同 的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。(在IE下测试通过)
三、如何利用实现自动登录
当用户在某个网站注册后,就会收到一个惟一用户ID的cookie。客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户务需给出明确的用户名和密码,就可以访问服务器上的资源。
四、如何根据用户的爱好定制站点
网站可以使用cookie记录用户的意愿。对于简单的设置,网站可以直接将页面的设置存储在cookie中完成定制。然而对于更复杂的定制,网站只需仅将一个惟一的标识符发送给用户,由服务器端的数据库存储每个标识符对应的页面设置。
五、cookie的发送
1.创建Cookie对象
2.设置最大时效
3.将Cookie放入到HTTP响应报头
如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中(服务器自动创建一个cookie并将jsessionId作为key,sessionId的值作为value发送到客户端浏览器内存中),用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。 发送cookie需要使用HttpServletResponse的addCookie方法,将cookie插入到一个Set-Cookie HTTP请 求报头中。由于这个方法并不修改任何之前指定的Set-Cookie报头,而是创建新的报头,因此我们将这个方法称为是addCookie,而非 setCookie。同样要记住响应报头必须在任何文档内容发送到客户端之前设置。
六、cookie的读取
七、如何使用cookie检测初访者
A.调用HttpServletRequest.getCookies()获取Cookie数组
B.在循环中检索指定名字的cookie是否存在以及对应的值是否正确
C.如果是则退出循环并设置区别标识
D.根据区别标识判断用户是否为初访者从而进行不同的操作
八、使用cookie检测初访者的常见错误
不能仅仅因为cookie数组中不存在在特定的数据项就认为用户是个初访者。如果cookie数组为null,客户可能是一个初访者,也可能是由于用户将 cookie删除或禁用造成的结果。但是,如果数组非null,也不过是显示客户曾经到过你的网站或域,并不能说明他们曾经访问过你的servlet。其 它servlet、JSP页面以及非Java Web应用都可以设置cookie,依据路径的设置,其中的任何cookie都有可能返回给用户的浏览器。 正确的做法是判断cookie数组是否为空且是否存在指定的Cookie对象且值正确。
九、使用cookie属性的注意问题
属性是从服务器发送到浏览器的报头的一部分;但它们不属于由浏览器返回给服务器的报头。
因此除了名称和值之外,cookie属性只适用于从服务器输出到客户端的cookie;服务器端来自于浏览器的cookie并没有设置这些属性。因而不要期望通过request.getCookies得到的cookie中可以使用这个属性。这意味着,你不能仅仅通过设置cookie的最大时效,发出它,在随后的输入数组中查找适当的cookie,读取它的值,修改它并将它存Cookie,从而实现不断改变的cookie值。
十、如何使用cookie记录各个用户的访问计数
1.获取cookie数组中专门用于统计用户访问次数的cookie的值
2.将值转换成int型
3.将值加1并用原来的名称重新创建一个Cookie对象
4.重新设置最大时效
5.将新的cookie输出
十一、session在不同环境下的不同含义
session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话是从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session。然而当session一词与网络协议相关联时,它又往往隐含了"面向连接"和/或"保持状态"这样两个含义。
session在Web开发环境下的语义又有了新的扩展,它的含义是指一类用来在客户端与服务器端之间保持状态的解决方案。有时候Session也用来指这种解决方案的存储结构。
转自:http://www.exam8.com/computer/djks/dj2/Java/ziliao /201007/1456911.html
http://yahaitt.iteye.com/blog/145820
发表评论
-
在淘宝里,他们总结的一些前端Tips
2012-01-20 08:45 1535在淘宝里,他们总结的一些前端Tips 2010年12月15日 ... -
select,poll和epoll使用
2012-01-20 08:45 939select,poll和epoll使用 2011年04月11 ... -
Oracle 数据库体系结构
2012-01-20 08:45 759Oracle 数据库体系结构 2010年06月28日 [ ... -
DLL, 线程本地存储
2012-01-20 08:44 684DLL, 线程本地存储 2010 ... -
批处理+VBS脚本实现纯文本代码格式化输出
2012-01-19 13:50 1845批处理+VBS脚本实现纯文 ... -
ASP文本文档(txt)相关操作代码
2012-01-19 13:50 520ASP文本文档(txt)相关操作代码 2011年04月22日 ... -
为方便自己看网络小说,自己写个txt按章节分段的小程序
2012-01-19 13:50 591为方便自己看网络小说,自己写个txt按章节分段的小程序 20 ... -
2011-3-9
2012-01-19 13:50 3912011-3-9 2011年03月09日 REG2BAT ... -
创建文本文件的两种方法
2012-01-19 13:49 712创建文本文件的两种方 ... -
内存碎片--网上摘录
2012-01-17 03:39 552内存碎片--网上摘录 2010年11月05日 在嵌入式系 ... -
从九大方面优化Windows内存使用效率
2012-01-17 03:39 659从九大方面优化Windows内存使用效率 2011年09月0 ... -
java垃圾回收和内存泄露的讲解
2012-01-17 03:39 481java垃圾回收和内存泄露 ... -
专家为您讲解“虚拟内存太低”,长达6千字
2012-01-17 03:39 485专家为您讲解“虚拟内存太低”,长达6千字 2010年10月0 ... -
购买内存
2012-01-17 03:39 583购买内存 2010年12月01日 ... -
“学业质量评价”阶段性研究成果
2012-01-16 02:16 536“学业质量评价”阶段 ... -
作文起步教学初探
2012-01-16 02:15 467作文起步教学初探 2009 ... -
改进语文教学的几点建议
2012-01-16 02:15 486改进语文教学的几点建议 2010年06月23日 ... -
如何提高小学生的写作能力
2012-01-16 02:15 458如何提高小学生的写作 ...
相关推荐
j2ee实验二:学习使用Session和Cookie
完全不用session和cookie的验证码,样式自己设置,自己设置字符数
session 和cookie 区别!!
session和cookie的区别,session和cookie的区别
主要介绍了thinkphp中session和cookie无效的解决方法,涉及针对BOM头的分析与删除方法,具有一定的参考借鉴价值,需要的朋友可以参考下
Session和Cookie区别
session和cookie.md
支持 Session 和 Cookie 的 WebClient
JAVA通过Session和Cookie实现网站自动登录的技术
(ASP.net课件)第六章Application、Session和Cookie对象.ppt
session与cookie的区别和联系?
java通过session和cookie实现网站的自动登录
对session和cookie的深刻理解
本篇文章主要介绍了JavaWeb使用Session和Cookie实现登录认证,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
关于session和cookie的详细解释 <br>所有疑问通吃
Servlet_Session和Cookie的区别和使用方法介绍