public interface PushBuilderPushBuilder は、HttpServletRequest.newPushBuilder() を呼び出すことによって取得されます。このメソッドを呼び出すたびに、現在の HttpServletRequest または null に基づいて PushBuilder の新しいインスタンスが生成されます。返された PushBuilder への変更は、将来のリターンには反映されません。
インスタンスは次のように初期化されます。
HttpServletRequest の既存のリクエストヘッダーがビルダーに追加されます。PushBuilder を作成する呼び出しの前に HttpServletRequest.getSession(boolean) が以前に呼び出されて新しい HttpSession を作成していない限り、セッション ID は HttpServletRequest.getRequestedSessionId() から返される値になります。この場合、新しいセッション ID は PushBuilder のリクエストされたセッション ID として使用されます。リクエストから返されるセッション ID は、Cookie または URL(それぞれ HttpServletRequest.isRequestedSessionIdFromCookie() および HttpServletRequest.isRequestedSessionIdFromURL() で指定されている)の 2 つの「ソース」のいずれかから効果的に取得できることに注意してください。PushBuilder のセッション ID も、リクエストと同じソースから取得されます。HttpServletRequest.getRequestURL() と任意の HttpServletRequest.getQueryString() に設定されます HttpServletResponse.addCookie(Cookie) が呼び出された場合、Cookie.getMaxAge() が <= 0 でない限り、対応する Cookie ヘッダーが PushBuilder に追加されます。この場合、Cookie はビルダーから削除されます。push() を呼び出す前に、PushBuilder インスタンスで path(java.lang.String) メソッドを呼び出す必要があります。そうしないと、そのメソッドで指定されているように、push() から例外がスローされる必要があります。
PushBuilder は、push() メソッドが呼び出されてビルダーの現在の状態で非同期プッシュリクエストを開始する前に、ミューテーターメソッドのチェーン呼び出しによってカスタマイズできます。push() の呼び出し後、ビルダーは別のプッシュに再利用できますが、実装は path(String) および条件付きヘッダー(RFC 7232 で定義)の値が push() から戻る前にクリアされるようにする必要があります。他のすべての値は、push() の呼び出しを介して保持されます。
| 修飾子と型 | メソッドと説明 |
|---|---|
PushBuilder | addHeader(StringSE name, StringSE value) プッシュに使用するリクエストヘッダーを追加します。 |
StringSE | getHeader(StringSE name) プッシュに使用される指定された名前のヘッダーを返します。 |
SetSE<StringSE> | getHeaderNames() プッシュに使用されるヘッダーのセットを返します。 |
StringSE | getMethod() プッシュに使用するメソッドを返します。 |
StringSE | getPath() プッシュに使用する URI パスを返します。 |
StringSE | getQueryString() プッシュに使用するクエリ文字列を返します。 |
StringSE | getSessionId() プッシュに使用する SessionID を返します。 |
PushBuilder | method(StringSE method) プッシュに使用するメソッドを設定します。 |
PushBuilder | path(StringSE path) プッシュに使用する URI パスを設定します。 |
void | push() ビルダーの現在の状態を指定してリソースをプッシュします。メソッドはノンブロッキングでなければなりません。 |
PushBuilder | queryString(StringSE queryString) プッシュに使用するクエリ文字列を設定します。 |
PushBuilder | removeHeader(StringSE name) 名前付きリクエストヘッダーを削除します。 |
PushBuilder | sessionId(StringSE sessionId) プッシュに使用する SessionID を設定します。 |
PushBuilder | setHeader(StringSE name, StringSE value) プッシュに使用するリクエストヘッダーを設定します。 |
PushBuilder method(StringSE method)
プッシュに使用するメソッドを設定します。
method - プッシュに使用されるメソッド。NullPointerExceptionSE - 引数が null の場合 IllegalArgumentExceptionSE - 引数が空の文字列、または RFC 7231 で定義されているキャッシュ不可または安全でないメソッド(POST、PUT、DELETE、CONNECT、OPTIONS、TRACE)の場合。PushBuilder queryString(StringSE queryString)
path(String) の呼び出しに含まれるクエリ文字列に追加されます。重複するパラメーターは保持する必要があります。同じクエリ文字列を使用して複数の push() 呼び出しを行う場合、path(String) でクエリの代わりにこのメソッドを使用する必要があります。queryString - プッシュに使用されるクエリ文字列。PushBuilder sessionId(StringSE sessionId)
sessionId - プッシュに使用される SessionID。PushBuilder setHeader(StringSE name, StringSE value)
プッシュに使用するリクエストヘッダーを設定します。ビルダーに同じ名前の既存のヘッダーがある場合、その値は上書きされます。
name - 設定するヘッダー名 value - 設定するヘッダー値 PushBuilder addHeader(StringSE name, StringSE value)
プッシュに使用するリクエストヘッダーを追加します。
name - 追加するヘッダー名 value - 追加するヘッダー値 PushBuilder removeHeader(StringSE name)
名前付きリクエストヘッダーを削除します。ヘッダーが存在しない場合は、何もしないでください。
name - 削除するヘッダーの名前 PushBuilder path(StringSE path)
push() を呼び出す前に path(String) を呼び出す必要があります。引数 path にクエリ文字列が存在する場合、その内容は、以前に queryString(java.lang.String) に渡された内容とマージして、重複を保持する必要があります。path - プッシュに使用する URI パス。クエリ文字列を含めることができます。void push()
PushBuilder の現在の状態に基づいてリソースをプッシュします。クライアントが基になる HTTP/2 プロトコルを使用して、プッシュされたリソースの受け入れを拒否する可能性があるため、このメソッドを呼び出しても、リソースが実際にプッシュされることは保証されません。
ビルダーにセッション ID がある場合、プッシュされたリクエストには、必要に応じて Cookie または URI パラメーターとしてセッション ID が含まれます。Builder のクエリ文字列は、渡されたクエリ文字列とマージされます。
このメソッドから戻る前に、ビルダーのパス、条件付きヘッダー(RFC 7232 で定義)は null になっています。他のすべてのフィールドは、別のプッシュで再利用できるようにそのまま残されます。
IllegalStateExceptionSE - このインスタンスで、インスタンス化から、IllegalStateException をスローしなかった push() への最後の呼び出しの間に、path(java.lang.String) への呼び出しがなかった場合。StringSE getMethod()
StringSE getQueryString()
StringSE getSessionId()
SetSE<StringSE> getHeaderNames()
返されたセットは PushBuilder オブジェクトによって支援されないため、返されたセットの変更は PushBuilder オブジェクトに反映されず、その逆も同様です。
StringSE getHeader(StringSE name)
name - ヘッダーの名前 StringSE getPath()
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.