public class StandardServletAsyncWebRequest extends ServletWebRequest implements AsyncWebRequest, AsyncListenerEE
AsyncWebRequest の Servlet 3.0 実装。 非同期リクエストに含まれるサーブレットとすべてのフィルターは、サーブレット API を使用するか、<async-supported>true</async-supported> 要素をサーブレットに追加して web.xml のフィルター宣言を有効にして、非同期サポートを有効にする必要があります。
DESTRUCTION_CALLBACK_NAME_PREFIX, immutableValueTypesrequestDestructionCallbacksREFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_REQUEST, SCOPE_SESSION| コンストラクターと説明 |
|---|
StandardServletAsyncWebRequest(HttpServletRequestEE request, HttpServletResponseEE response) 指定されたリクエスト / レスポンスペアの新しいインスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addCompletionHandler(RunnableSE runnable) リクエスト処理が完了したときに呼び出すハンドラーを追加します。 |
void | addErrorHandler(ConsumerSE<ThrowableSE> exceptionHandler) リクエストの同時処理中にエラーが発生したときに呼び出すハンドラーを追加します。 |
void | addTimeoutHandler(RunnableSE timeoutHandler) 並行処理がタイムアウトしたときに呼び出すハンドラーを追加します。 |
void | dispatch() アプリケーションスレッドでの同時実行後に処理を再開するために、コンテナーにリクエストをディスパッチします。 |
boolean | isAsyncComplete() 非同期リクエスト処理が完了したかどうか。 |
boolean | isAsyncStarted()AsyncWebRequest.startAsync() の呼び出し後、リクエストが非同期モードかどうか。 |
void | onComplete(AsyncEventEE event) この AsyncListener に非同期操作が完了したことを通知します。 |
void | onError(AsyncEventEE event) この AsyncListener に、非同期操作の完了に失敗したことを通知します。 |
void | onStartAsync(AsyncEventEE event)ServletRequest.startAsync()EE メソッドの 1 つを呼び出して、新しい非同期サイクルが開始されていることを、この AsyncListener に通知します。 |
void | onTimeout(AsyncEventEE event) この AsyncListener に、非同期操作がタイムアウトしたことを通知します。 |
void | setTimeout(LongSE timeout)Servlet 3 非同期処理では、コンテナー処理スレッドが終了した後にタイムアウト期間が始まります。 |
void | startAsync() 非同期リクエスト処理の開始をマークして、メイン処理スレッドが終了したときに、別のスレッドでさらに処理するためにレスポンスが開いたままになるようにします。 |
checkNotModified, checkNotModified, checkNotModified, getContextPath, getDescription, getHeader, getHeaderNames, getHeaderValues, getHttpMethod, getLocale, getNativeRequest, getNativeRequest, getNativeResponse, getNativeResponse, getParameter, getParameterMap, getParameterNames, getParameterValues, getRemoteUser, getUserPrincipal, isNotModified, isSecure, isUserInRole, toStringgetAttribute, getAttributeNames, getRequest, getResponse, getSession, getSessionId, getSessionMutex, isImmutableSessionAttribute, registerDestructionCallback, registerSessionDestructionCallback, removeAttribute, resolveReference, setAttribute, updateAccessedSessionAttributesisRequestActive, registerRequestDestructionCallback, removeRequestDestructionCallback, requestCompletedcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEgetNativeRequest, getNativeRequest, getNativeResponse, getNativeResponsecheckNotModified, checkNotModified, checkNotModified, getContextPath, getDescription, getHeader, getHeaderNames, getHeaderValues, getLocale, getParameter, getParameterMap, getParameterNames, getParameterValues, getRemoteUser, getUserPrincipal, isSecure, isUserInRolegetAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttributepublic StandardServletAsyncWebRequest(HttpServletRequestEE request, HttpServletResponseEE response)
request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス public void setTimeout(LongSE timeout)
AsyncWebRequest の setTimeout timeout - ミリ秒単位の時間。null はタイムアウトがないことを意味します。つまり、コンテナーのデフォルトのタイムアウトに依存します。public void addTimeoutHandler(RunnableSE timeoutHandler)
AsyncWebRequestAsyncWebRequest の addTimeoutHandler public void addErrorHandler(ConsumerSE<ThrowableSE> exceptionHandler)
AsyncWebRequestAsyncWebRequest の addErrorHandler public void addCompletionHandler(RunnableSE runnable)
AsyncWebRequestAsyncWebRequest の addCompletionHandler public boolean isAsyncStarted()
AsyncWebRequestAsyncWebRequest.startAsync() の呼び出し後、リクエストが非同期モードかどうか。非同期処理が開始されなかった場合、完了した場合、リクエストがさらなる処理のためにディスパッチされた場合、"false" を返します。AsyncWebRequest の isAsyncStarted public boolean isAsyncComplete()
非同期処理が完了した後、リクエストオブジェクトとレスポンスオブジェクトの使用を避けることが重要です。サーブレットコンテナーは、しばしば再利用します。
AsyncWebRequest の isAsyncComplete public void startAsync()
AsyncWebRequestAsyncWebRequest の startAsync public void dispatch()
AsyncWebRequestAsyncWebRequest の dispatch public void onStartAsync(AsyncEventEE event) throws IOExceptionSE
javax.servlet.AsyncListenerEEServletRequest.startAsync()EE メソッドの 1 つを呼び出して、新しい非同期サイクルが開始されていることを、この AsyncListener に通知します。 再初期化される非同期操作に対応する AsyncContextEE は、特定の event で getAsyncContextEE を呼び出すことで取得できます。
さらに、この AsyncListener が AsyncContext.addListener(AsyncListener, ServletRequest, ServletResponse)EE の呼び出しを介して登録されていた場合、提供された ServletRequest および ServletResponse オブジェクトは、指定された event でそれぞれ getSuppliedRequestEE および getSuppliedResponseEE を呼び出すことで取得できます。
この AsyncListener は、指定された AsyncEvent の一部として配信される AsyncContext に自身を(AsyncContext.addListener(javax.servlet.AsyncListener)EE への呼び出しを介して)登録しない限り、新しい非同期サイクルに関連するイベントを受け取りません。
AsyncListenerEE の onStartAsyncEE event - 新しい非同期サイクルが開始されていることを示す AsyncEventIOExceptionSE - 指定された AsyncEvent の処理中に I/O 関連のエラーが発生した場合 public void onError(AsyncEventEE event) throws IOExceptionSE
javax.servlet.AsyncListenerEE 完了できなかった非同期操作に対応する AsyncContextEE は、指定されたイベントで getAsyncContextEE を呼び出すことによって取得できます。
さらに、この AsyncListener が AsyncContext.addListener(AsyncListener, ServletRequest, ServletResponse)EE の呼び出しを介して登録されていた場合、提供された ServletRequest および ServletResponse オブジェクトは、指定された event でそれぞれ getSuppliedRequestEE および getSuppliedResponseEE を呼び出すことで取得できます。
AsyncListenerEE の onErrorEE event - 非同期操作が完了できなかったことを示す AsyncEventIOExceptionSE - 指定された AsyncEvent の処理中に I/O 関連のエラーが発生した場合 public void onTimeout(AsyncEventEE event) throws IOExceptionSE
javax.servlet.AsyncListenerEE タイムアウトになった非同期操作に対応する AsyncContextEE は、指定されたイベントで getAsyncContextEE を呼び出すことによって取得できます。
さらに、この AsyncListener が AsyncContext.addListener(AsyncListener, ServletRequest, ServletResponse)EE の呼び出しを介して登録されていた場合、提供された ServletRequest および ServletResponse オブジェクトは、指定された event でそれぞれ getSuppliedRequestEE および getSuppliedResponseEE を呼び出すことで取得できます。
AsyncListenerEE の onTimeoutEE event - 非同期操作がタイムアウトしたことを示す AsyncEventIOExceptionSE - 指定された AsyncEvent の処理中に I/O 関連のエラーが発生した場合 public void onComplete(AsyncEventEE event) throws IOExceptionSE
javax.servlet.AsyncListenerEE 完了した非同期操作に対応する AsyncContextEE は、特定のイベントで getAsyncContextEE を呼び出すことによって取得できます。
さらに、この AsyncListener が AsyncContext.addListener(AsyncListener, ServletRequest, ServletResponse)EE の呼び出しを介して登録されていた場合、提供された ServletRequest および ServletResponse オブジェクトは、指定された event でそれぞれ getSuppliedRequestEE および getSuppliedResponseEE を呼び出すことで取得できます。
AsyncListenerEE の onCompleteEE event - 非同期操作が完了したことを示す AsyncEventIOExceptionSE - 指定された AsyncEvent の処理中に I/O 関連のエラーが発生した場合