public class StandardServletAsyncWebRequest extends ServletWebRequest implements AsyncWebRequest, AsyncListener
AsyncWebRequest.
The servlet and all filters involved in an async request must have async
support enabled using the Servlet API or by adding an
<async-support>true</async-support> element to servlet and filter
declarations in web.xml
DESTRUCTION_CALLBACK_NAME_PREFIX, immutableValueTypesrequestDestructionCallbacksREFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION| Constructor and Description |
|---|
StandardServletAsyncWebRequest(HttpServletRequest request,
HttpServletResponse response)
Create a new instance for the given request/response pair.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addCompletionHandler(Runnable runnable)
Add a handle to invoke when request processing completes.
|
void |
addTimeoutHandler(Runnable timeoutHandler)
Add a handler to invoke when concurrent handling has timed out.
|
void |
dispatch()
Dispatch the request to the container in order to resume processing after
concurrent execution in an application thread.
|
boolean |
isAsyncComplete()
Whether async request processing has completed.
|
boolean |
isAsyncStarted()
Whether the request is in async mode following a call to
AsyncWebRequest.startAsync(). |
void |
onComplete(AsyncEvent event) |
void |
onError(AsyncEvent event) |
void |
onStartAsync(AsyncEvent event) |
void |
onTimeout(AsyncEvent event) |
void |
setTimeout(Long timeout)
Set the time required for concurrent handling to complete.
|
void |
startAsync()
Mark the start of asynchronous request processing so that when the main
processing thread exits, the response remains open for further processing
in another thread.
|
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, requestCompletedclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNativeRequest, getNativeRequest, getNativeResponse, getNativeResponsecheckNotModified, checkNotModified, getContextPath, getDescription, getHeader, getHeaderNames, getHeaderValues, getLocale, getParameter, getParameterMap, getParameterNames, getParameterValues, getRemoteUser, getUserPrincipal, isSecure, isUserInRolegetAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttributepublic StandardServletAsyncWebRequest(HttpServletRequest request, HttpServletResponse response)
request - current HTTP requestresponse - current HTTP responsepublic void setTimeout(Long timeout)
AsyncWebRequest.isAsyncStarted() is true.
In Servlet 3 async processing, the timeout period begins after the container processing thread has exited.
setTimeout in interface AsyncWebRequesttimeout - amount of time in milliseconds; null means no
timeout, i.e. rely on the default timeout of the container.public void addTimeoutHandler(Runnable timeoutHandler)
AsyncWebRequestaddTimeoutHandler in interface AsyncWebRequestpublic void addCompletionHandler(Runnable runnable)
AsyncWebRequestaddCompletionHandler in interface AsyncWebRequestpublic boolean isAsyncStarted()
AsyncWebRequestAsyncWebRequest.startAsync().
Returns "false" if asynchronous processing never started, has completed,
or the request was dispatched for further processing.isAsyncStarted in interface AsyncWebRequestpublic boolean isAsyncComplete()
It is important to avoid use of request and response objects after async processing has completed. Servlet containers often re-use them.
isAsyncComplete in interface AsyncWebRequestpublic void startAsync()
AsyncWebRequeststartAsync in interface AsyncWebRequestpublic void dispatch()
AsyncWebRequestdispatch in interface AsyncWebRequestpublic void onStartAsync(AsyncEvent event) throws IOException
onStartAsync in interface AsyncListenerIOExceptionpublic void onError(AsyncEvent event) throws IOException
onError in interface AsyncListenerIOExceptionpublic void onTimeout(AsyncEvent event) throws IOException
onTimeout in interface AsyncListenerIOExceptionpublic void onComplete(AsyncEvent event) throws IOException
onComplete in interface AsyncListenerIOException