JavaTM Platform
Standard Ed. 6

java.net
类 CookieManager

java.lang.Object
  继承者 java.net.CookieHandler
      继承者 java.net.CookieManager

public class CookieManager
extends CookieHandler

CookieManager 提供 CookieHandler 的具体实现,它将 cookie 的存储区与围绕接受和拒绝 cookie 的策略分离开来。使用管理存储的 CookieStore 以及做出 cookie 接受/拒绝决策的 CookiePolicy 对象来初始化 CookieManager。

java.net 包中的 HTTP cookie 管理如下所示:

use
CookieHandler <------- HttpURLConnection
       ^
| impl
|         use
CookieManager -------> CookiePolicy
|   use
|--------> HttpCookie
             |              ^
|              | use
|   use        |
|--------> CookieStore
                            ^
| impl
                            |
Internal in-memory implementation
 

用户可以用各种方式“钩住”自己的 HTTP cookie 管理行为,例如:

该实现遵守 RFC 2965 的第 3.3 节。

从以下版本开始:
1.6

构造方法摘要
CookieManager()
          创建一个新 cookie 管理器。
CookieManager(CookieStore store, CookiePolicy cookiePolicy)
          使用指定 cookie 存储区和 cookie 策略创建一个新 cookie 管理器。
 
方法摘要
 Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders)
          从请求头中指定 uri 的 cookie 缓存中获取所有可用的 cookie。
 CookieStore getCookieStore()
          获取当前 cookie 存储区。
 void put(URI uri, Map<String,List<String>> responseHeaders)
          将响应头中出现的所有可用 cookie(例如名为 Set-Cookie2 的响应头字段)设置到 cookie 缓存中。
 void setCookiePolicy(CookiePolicy cookiePolicy)
          设置此 cookie 管理器的 cookie 策略。
 
从类 java.net.CookieHandler 继承的方法
getDefault, setDefault
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

CookieManager

public CookieManager()
创建一个新 cookie 管理器。

此构造方法将使用默认 cookie 存储区和接受策略创建新的 cookie 管理器。效果与 CookieManager(null, null) 相同。


CookieManager

public CookieManager(CookieStore store,
                     CookiePolicy cookiePolicy)
使用指定 cookie 存储区和 cookie 策略创建一个新 cookie 管理器。

参数:
store - cookie 管理器要使用的 CookieStore。如果为 null,则 cookie 管理器将使用默认存储区,即一个内存 CookieStore 实现。
cookiePolicy - cookie 管理器用作策略回调的 CookiePolicy 实例。如果为 null,则使用 ACCEPT_ORIGINAL_SERVER。
方法详细信息

setCookiePolicy

public void setCookiePolicy(CookiePolicy cookiePolicy)
设置此 cookie 管理器的 cookie 策略。

默认情况下,CookieManager 实例具有 cookie 策略 ACCEPT_ORIGINAL_SERVER。用户总是可以调用此方法来设置另一种 cookie 策略。

参数:
cookiePolicy - cookie 策略。可以为 null,表示对当前 cookie 策略没有影响。

getCookieStore

public CookieStore getCookieStore()
获取当前 cookie 存储区。

返回:
cookie 管理器当前使用的 cookie 存储区。

get

public Map<String,List<String>> get(URI uri,
                                    Map<String,List<String>> requestHeaders)
                             throws IOException
从类 CookieHandler 复制的描述
从请求头中指定 uri 的 cookie 缓存中获取所有可用的 cookie。 HTTP 协议实现程序应该确保在添加所有与选择 cookie 相关的请求头之后且在发送请求之前调用此方法。

指定者:
CookieHandler 中的 get
参数:
uri - 作为请求中 cookie 发送目标的 <code>URI</code>
requestHeaders - 从请求头字段名到表示当前请求头的字段值列表的 Map
返回:
从字段名为 "Cookie" 或 "Cookie2" 的状态管理头到包含状态信息的 cookie 列表的映射
抛出:
IOException - 如果发生 I/O * 错误
另请参见:
CookieHandler.put(URI, Map)

put

public void put(URI uri,
                Map<String,List<String>> responseHeaders)
         throws IOException
从类 CookieHandler 复制的描述
将响应头中出现的所有可用 cookie(例如名为 Set-Cookie2 的响应头字段)设置到 cookie 缓存中。

指定者:
CookieHandler 中的 put
参数:
uri - <code>URI</code>,cookie 来自其中
responseHeaders - 从字段名到表示返回的响应头字段的字段值列表的不可变映射
抛出:
IOException - 如果发生 I/O 错误
另请参见:
CookieHandler.get(URI, Map)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策