|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.net.CookieHandler java.net.CookieManager
public class CookieManager
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
- CookieHandler 是 cookie 管理的核心所在。使用者可以調用 CookieHandler.setDefault 設置要使用的具體 CookieHanlder 實作。
- CookieManager.put 調用 CookiePolicy.shouldAccept 以查看 cookie 是否應該被接受並放入 cookie 存儲區。使用者可以使用三種預定義 CookiePolicy(即 ACCEPT_ALL、ACCEPT_NONE 和 ACCEPT_ORIGINAL_SERVER)中的任何一種,或者定義自己的 CookiePolicy 實作並告知 CookieManager 使用該策略。
- CookieStore 是存儲任何已接受 HTTP cookie 的地方。如果創建時未指定,那麼 CookieManager 實例將使用內部記憶體實作。使用者也可以實作一個 CookieStore 並告知 CookieManager 使用該存儲區。
- 當前,CookieManager 只能使用 CookieStore.add(URI, HttpCookie) 和 CookieStore.get(URI)。其他方法是出於完整性考慮,也可能是更複雜 CookieStore 實作(例如 NetscapeCookieSotre)的需要。
使用者可以用各種方式“鉤住”自己的 HTTP cookie 管理行為,例如:
- 使用 CookieHandler.setDefault 設置全新的
CookieHandler
實作- 讓 CookieManager 成為預設
CookieHandler
實作,但實作使用者自己的CookieStore
和CookiePolicy
, 並告知預設 CookieManager 使用它們:// this should be done at the beginning of an HTTP session CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));- 讓 CookieManager 成為預設
CookieHandler
實作,但使用自定義CookiePolicy
:// this should be done at the beginning of an HTTP session CookieHandler.setDefault(new CookieManager()); // this can be done at any point of an HTTP session ((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());
該實作遵守 RFC 2965 的第 3.3 節。
建構子摘要 | |
---|---|
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 |
建構子詳細資訊 |
---|
public CookieManager()
此建構子將使用預設 cookie 存儲區和接受策略創建新的 cookie 管理器。效果與 CookieManager(null, null) 相同。
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
store
- cookie 管理器要使用的 CookieStore。如果為 null,則 cookie 管理器將使用預設存儲區,即一個記憶體 CookieStore 實作。cookiePolicy
- cookie 管理器用作策略回調的 CookiePolicy 實例。如果為 null,則使用 ACCEPT_ORIGINAL_SERVER。方法詳細資訊 |
---|
public void setCookiePolicy(CookiePolicy cookiePolicy)
預設情況下,CookieManager 實例具有 cookie 策略 ACCEPT_ORIGINAL_SERVER。使用者總是可以調用此方法來設置另一種 cookie 策略。
cookiePolicy
- cookie 策略。可以為 null,表示對當前 cookie 策略沒有影響。public CookieStore getCookieStore()
public Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders) throws IOException
CookieHandler
複製的描述
CookieHandler
中的 get
uri
- 作為請求中 cookie 發送目標的 <code>URI</code>requestHeaders
- 從請求頭欄位名到表示當前請求頭的欄位值列表的 Map
IOException
- 如果發生 I/O * 錯誤CookieHandler.put(URI, Map)
public void put(URI uri, Map<String,List<String>> responseHeaders) throws IOException
CookieHandler
複製的描述
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。