|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.net.CookieHandler java.net.CookieManager
public class CookieManager
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) だけである。それ以外は完全を期すためのものであるが、NetscapeCookieStore など、より高度な CookieStore 実装では必要になる可能性がある。
ユーザーが独自の 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)
応答ヘッダー内に存在する Set-Cookie2 という名前の応答ヘッダーフィールドなど、適用可能なすべての Cookie を 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 の送信先となる URI
requestHeaders
- 要求ヘッダーフィールド名からフィールド値のリストへの Map。これは現在の要求ヘッダーを表す
IOException
- 入出力エラーが発生した場合CookieHandler.put(URI, Map)
public void put(URI uri, Map<String,List<String>> responseHeaders) throws IOException
CookieHandler
の記述:
CookieHandler
内の put
uri
- Cookie の生成元の URI
responseHeaders
- フィールド名からフィールド値のリストへの不変のマップ。これは返された応答ヘッダーフィールドを表す
IOException
- 入出力エラーが発生した場合CookieHandler.get(URI, Map)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。