`

Cookie整理

阅读更多
Cookie整理 

最近在项目中需要用到Cookie来实现从一个域名到另外一个域名的免登。于是需要了解整理一下Cookie的相关知识。 
由于HTTP协议是无状态的协议(虽然Socket连接是有状态的,但每次用HTTP协议进行数据传输后就关闭的Socket连接,因此,HTTP协议并不会保存上一次的状态),因此,如果要保存某些HTTP请求过程中所产生的数据,就必须要有一种类似全局变量的机制保证数据在不同的HTTP请求之间共享,所以要用到Cookie来标识用户状态。 

一,设置Cookie 
Cookies分为[内存Cookie](临时Cookie,在浏览器关闭的时候消失),和[硬盘Cookie](写到客户端的硬盘中)。 
每个Cookie有一个超时时间,内存Cookie只写到客户端的内存中,其超时时间为任何负数。如下可以定义一个内存Cookie: 
Cookie cookie = new Cookie("key","value"); 
cookie.setMaxAge(-1);  
response.addCookie(cookie); 
对于硬盘Cookie,可以对其进行超时时间的设置,以秒为单位,如下定义一个硬盘Cookie: 
Cookie cookie = new Cookie("key","value"); 
cookie.setMaxAge(3600); //在此定义了Cookie的有效时间为一个小时。  
response.addCookie(cookie); 

永久Cookie在任意新开启的IE窗口都可以生成Cookie。而临时Cookie由于只保存在当前IE窗口,因此,在新开启的IE窗口,是不能生成Cookie字段的,也就是说,新窗口和旧窗口是不能共享临时Cookie的。使用重定向机制弹出的新窗口也无法和旧窗口共享临时Cookie。但在同一个窗口可以。如在一个IE窗口输入http://localhost:8080/test/first.jsp,向内存写入一个临时Cookie后,在同一个IE窗口输入http://localhost:8080/test/second.jsp,浏览器在向服务端发送HTTP请求时,自动将当前浏览器的临时Cookie(也就是first.jsp所创建的Cookie)和永久Cookie作为HTTP请求头的Cookie字段值发送给服务端。但是如果新启一个IE窗口,由于新IE窗口没有这个临时Cookie,因此,second.jsp只发送了保存在硬盘上的永久Cookie。 

设置Cookie的时候还有其他参数可以设置 
●path,设置哪些目录下的应用可以访问改Cookie。如下设置: 
Cookie cookie = new Cookie("key","value"); 
cookie.setPath("/test/test2"); //在此定义了/test/test下的应用可以访问该Cookie。 
response.addCookie(cookie); 
path的默认值是"./"为当前路径。 
●Domain,设置Cookie生成的域。如下: 
Cookie cookie = new Cookie("key","value"); 
cookie.setDomain(".channel.alisoft.com"); //在此定义了Cookie生成在哪个域下面 
response.addCookie(cookie); 
这个参数必须以"."开始。 

下面说下怎么通过setDomain的方法实现Cookie的跨域访问: 
A机所在的域:home.aaa.com,A有应用appInA。 
B机所在的域:bbb.com,B有应用appInB. 
1)在appInA下面设置cookie的时候,增加cookie.setDomain(".bbb.com");这样在appInB下面就可以取到cookie。 
2)输入url访问appInB的时候,必须输入域名才能解析。比如说在A机器输入:http://bbb.com:8080/appInB,可以获取appInB在客户端设置的cookie,而B机器访问本机的应用,输入:http://localhost:8080/appInB则不可以获得cookie。 
3)设置了cookie.setDomain(".bbb.com");,还可以在默认的home.aaa.com下面共享。 
4)问题:怎么设置多个域?在多个域下共享。网上找了很久都没有找到真正能用的方法,估计要用其他技术实现了。 

二,读取Cookie 
读取Cookie可以按照下面的语句进行: 
Cookie[] cookies = request.getCookies(); 
然后用for语句查找你想要的Cookie。 
该方法可以读取当前路径以及"直接父路径"的所有Cookie对象,如果没有任何Cookie的话,则返回null 

三,删除Cookie 
Cookie cookie = new Cookie("key", null); 
cookie.setMaxAge(0); 
设置为0为立即删除该Cookie 
cookie.setPath("/test/test2"); 
删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie 
response.addCookie(cookie); 
分享到:
评论
1 楼 miao19880124 2011-03-03  
好 。但是没看明白 。我只是一个初学者

相关推荐

    JS cookie Java cookie regex 整理结果

    自己整理的关于java和jscookie的实际应用,以及regex的应用,绝对好用。

    Cookie学习整理

    Cookie学习整理 Cookie学习整理 Cookie学习整理 Cookie学习整理 Cookie学习整理 Cookie学习整理 Cookie学习整理

    c#封装的cookie操作类

    对cookie的操作进行了整理和封装,功能包括读取、写入cookie,支持cookie域和cookie有效期

    HTTP协议、cookie、session超详细笔记整理,一篇就够了

    HTTP协议、cookie、session超详细笔记整理,一篇就够了

    关于cookie,application和seesion的一些用法整理

    这些事自己整理的一些文档,适合于初学者.这里面涵盖了cookie的写法,如何新建cookie,cookie的用法

    程序化广告 关键点 什么是CookieMapping.docx

    在程序化广告投放过程中,不可避免的会谈到cookie,以及cookie...程序化广告在PC端要用好各种外部数据,这些数据之间的CookieMapping率特别重要,所以专题整理了一个小文,简单介绍一“Cookie”及“CookieMapping”。

    C#代码整理(字符串操作、加密解密、密码生成、cookie和缓存操作)

    字符串操作、加密解密、密码生成、字符过滤、文件上传下载、邮件发送、验证码、cookie和缓存操作等方法

    Cookie用法

    自己整理总结Cookie用法,及代码示例

    Jquery拖动窗格保存布局Cookie源码20130322

    Jquery拖动窗格保存布局Cookie源码 更新记录 2013/3/21 V3.0 增加两个index页面 index.html对应的是1.9.1版本 index1.7.html对应的是1.7.1版本 修正点击 编辑和收缩按钮无反应的bug 2013/3/21 V2.0 更新jquery库...

    php cookie工作原理与实例详解

    在php 中cookie是我们常用到的,但是可能很多朋友都不知道cookie是怎么工作的,下面小编来给大家整理一下关于php cookie 工作原理与一些对于cookie读写操作实例。 Cookie和会话状态 做BS开发,这两个概念必不可少,...

    CSDNcookie资料全集

    我把csdn上的cookie的资料都下来看了一遍,整理好了,大家分享。

    JS操作Cookies包括(读取添加与删除)

    一直都是简单去js实现cookie的一些操作,今天把js对cookie操作系统的整理了一遍,包括:js读取cookie,js添加cookie,js删除cookie

    session与cookie区别ppt

    session与cookie区别课件,可以下载根据自己的需求改动,节省整理的时间

    Jquery拖动窗格保存布局Cookie源码

    本示例主要源自自己最近要做的一个项目需要用到,但是百度了下觉得这个和我的相近,但是下载下来后发现各兼容性都不好,于是花了几个小时整理并升级了这个功能示例。主要是使用jquery-1.7.1 和最新的jQuery UI - v...

    servlet之cookie简介_动力节点Java学院整理

    Cookie技术诞生以来,它就成了广大网络用户和Web开发人员争论的一个焦点。下面这篇文章主要给大家介绍了关于servlet之cookie简介的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

    查看和整理IE的cookies信息的工具

    查看和整理IE的cookies信息的工具

    php更新cookie内容的详细方法

    在本篇文章里小编给大家整理的是关于php如何更新cookie内容的相关知识点,有需要的朋友们学习下。

    javascript封装 Cookie 应用接口

    本文章记录本人在学习 Cookie 中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。 封装函数 在默认的情况下存取Cookie是一件比较麻烦的事情。由于Cookie是通过字符串来存储信息的,所以容易导致...

    Python爬虫番外篇之Cookie和Session详解

    关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么是Cookie 其实简单...

    HttpClient 学习整理

    HttpClient 是我最近想研究的东西,以前想过的一些应用没能有很好的实现,发现这个开源项目之后就有点眉目了,令人头痛的cookie问题还是有办法解决滴。在网上整理了一些东西,写得很好,寄放在这里。

Global site tag (gtag.js) - Google Analytics