测试之路,与你同行!

处理Cookie-Servlet学习笔记五

上一篇 / 下一篇  2012-02-26 18:34:21 / 个人分类:Servlet

HTTP连接是一个无状态的连接,这就意味着,当浏览器得到它所请求的资源以后,浏览器和服务器端就失去了联系。浏览器无法知道服务器的状态,而服务器也无法知道浏览器的状态。即使有任何一方被关闭了,另外一方都无从知晓。而当下一次浏览器再次访问服务器的时候,服务器只是将它当做一个新的连接,它也无法知晓这个浏览器是否曾经访问过。通过Cookie,可以让服务器和浏览器建立一种联系。
Cookie是一小段文本,通过CGI/ASP/JSP/Servlet等程序,可以将Cookie保存在浏览器所在的客户端的内存或磁盘上,而通过这些应用程序,也可以从客户端读出这些Cookie。也就是说,Cookie是一种可以让服务器端的连接在客户端保存和获取信息的机制。
    通过Cookie,在需要登录的网站,用户在第一次输入用户名和密码后,将用户名和密码利用cookie保存在客户端,当用户下一次访问这个网站时,可以直接从客户端独处用户名和密码来,这样就免得用户每次都需要重新登录。另外,用户可以选择自己喜欢的新闻、显示的风格、显示的顺序等,我们可以讲用户的设置保存到客户端的cookie中,这样用户每次访问这个网站的时候,都可以按照他预设的显示。因为需要将信息保存在客户端的机器上,所以安全问题一直是关注焦点。Cookie的安全机制:cookie不会以任何方式在客户端被执行,浏览器一般会限制来自同一网站的cookie数目,单个cookie长度也做了限制,这样客户端就不必担心硬盘被这些cookie所撑爆了。对于一些重要个人资料,在保存这些信息时提示用户不显示在公共计算机上。另外,因为浏览器可以设置成拒绝cookie,所以通常不要将程序设计成对cookie有很大的依赖性。
在Servlet中处理Cookie
Cookie是封装在Cookie类的,如果要向客户端发送一个cookie,首先需要创建一个Cookie的实例,可以通过cookie的构造器来创建,它接收两个String类型参数,用于指定cookie的属性名称和属性值。此外,也可以使用setValue()来改变它的属性值。
在创建好cookie对象后,可以用HttpServletResponse的addCookie()方法来将cookie发送给客户端。在cookie发送到客户端以后,可以使用HttpServletRequest的getCookie()方法从客户端获得这个网站的所有的cookie,它返回包含所有本站Cookie的数组,然后通过遍历这个数组就可以获得对应的Cookie。默认情况下,cookiea在客户端是保存在内存中的,如果浏览器关闭,那么cookie也就失效了。如果想要让cookie长久地保存在磁盘上,需要让cookie的生命周期变得更长,可以通过对象cookie的setMaxAge()来修改它的生命周期,这个方法接收一个以秒为单位的证书,表示这个cookie可以在客户端保存的时间。如果将它设置成0,则表示在客户端删除这个会话。
getMaxAge()/setMaxAge()读取/设置cookie的过期时间,如果设置了一个负值,表示这个cookie在用户退出浏览器后马上过期,如果设置成0表示删除此cookie。
getValue()/setValue()读取/设置cookie属性值
getComment()/setComment读取/设置注释

TAG:

引用 删除 ld_8934   /   2012-02-27 14:38:03
-3
 

评分:0

我来说两句

Open Toolbar