JavaTM 2 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 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only