- java.lang.Object
-
- java.net.CookieHandler
-
- java.net.CookieManager
-
public class CookieManager extends CookieHandler
CookieManagerはCookieHandler
の具象実装を提供し、CookieのストレージとCookieの受け入れ/拒否に関するポリシーとを分離します。 CookieManagerは、ストレージを管理するCookieStore
と、Cookieの受け入れ/拒否に関するポリシー決定を行うCookiePolicy
オブジェクトとを使って初期化されます。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の具象実装を設定できる。
- CookiePolicy.shouldAcceptがCookieManager.putによって呼び出され、あるCookieを受け入れてCookieストア内に格納すべきかどうかが確認される。 ユーザーは、3つの定義済みCookiePolicy、つまりACCEPT_ALL、ACCEPT_NONE、ACCEPT_ORIGINAL_SERVER、のいずれかを使用することもできるし、ユーザー独自のCookiePolicy実装を定義し、CookieManagerにそれを使用するよう指示することもできる。
- CookieStoreは、受け入れられたすべてのHTTP Cookieの格納場所となる。 作成時に指定されなかった場合、CookieManagerインスタンスは内部のインメモリー実装を使用する。 また、ユーザーが別のものを実装し、CookieManagerにそれを使用するよう指示することもできる。
- 現時点では、CookieManagerによって使用されているのは、CookieStore.add(URI, HttpCookie)とCookieStore.get(URI)だけである。 他のものは完全性のためであり、より洗練されたCookieStore実装、例えばNetscapeCookieStoreによって必要とされるかもしれません。
ユーザーが独自の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に準拠しています。
- 導入されたバージョン:
- 1.6
- 関連項目:
CookiePolicy
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 CookieManager()
新しいCookieマネージャを作成します。CookieManager(CookieStore store, CookiePolicy cookiePolicy)
指定されたCookieストアとCookieポリシーを使って新しいCookieマネージャを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 CookieStore
getCookieStore()
現在のCookieストアを取得するためのもの。void
setCookiePolicy(CookiePolicy cookiePolicy)
このCookieマネージャのCookieポリシーを設定するためのもの。-
クラス java.net.CookieHandlerで宣言されたメソッド
get, getDefault, put, setDefault
-
-
-
-
コンストラクタの詳細
-
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ストア。
-
-