Package javax.servlet

## Interface AsyncContext

    public interface AsyncContext

Provides the context for asynchronous request handling

Since:
  Servlet 3.0

### Field Summary

Fields
`static java.lang.String` `ASYNC_CONTEXT_PATH` The attribute name for the Context Path of the async request
`static java.lang.String` `ASYNC_MAPPING` The attribute name for the Mapping of the async request
`static java.lang.String` `ASYNC_PATH_INFO` The attribute name for the Path Info of the async request
`static java.lang.String` `ASYNC_QUERY_STRING` The attribute name for the Query String of the async request
`static java.lang.String` `ASYNC_REQUEST_URI` The attribute name for the URI of the async request
`static java.lang.String` `ASYNC_SERVLET_PATH` The attribute name for the Servlet Path of the async request

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addListener​(AsyncListener listener)` Adds an event listener that will be called for different AsyncEvents fire
`void` `addListener​(AsyncListener listener, ServletRequest request, ServletResponse response)` Adds an event listener that will be called when different AsyncEvents fire
`void` `complete()` Completes the async request processing and closes the response stream
`<T extends AsyncListener> T` `createListener​(java.lang.Class<T> clazz)` Creates and returns an AsyncListener object
`void` `dispatch()`
`void` `dispatch​(java.lang.String path)`
`void` `dispatch​(ServletContext context, java.lang.String path)`
`ServletRequest` `getRequest()`
`ServletResponse` `getResponse()`
`long` `getTimeout()` Get the current timeout.
`boolean` `hasOriginalRequestAndResponse()`
`void` `setTimeout​(long timeout)` Set the timeout.
`void` `start​(java.lang.Runnable run)` Starts a new thread to process the asynchronous request

### Field Detail

#### ASYNC_REQUEST_URI

    static final java.lang.String ASYNC_REQUEST_URI

The attribute name for the URI of the async request

See Also:
  Constant Field Values

#### ASYNC_CONTEXT_PATH

    static final java.lang.String ASYNC_CONTEXT_PATH

The attribute name for the Context Path of the async request

See Also:
  Constant Field Values

#### ASYNC_MAPPING

    static final java.lang.String ASYNC_MAPPING

The attribute name for the Mapping of the async request

See Also:
  Constant Field Values

#### ASYNC_PATH_INFO

    static final java.lang.String ASYNC_PATH_INFO

The attribute name for the Path Info of the async request

See Also:
  Constant Field Values

#### ASYNC_SERVLET_PATH

    static final java.lang.String ASYNC_SERVLET_PATH

The attribute name for the Servlet Path of the async request

See Also:
  Constant Field Values

#### ASYNC_QUERY_STRING

    static final java.lang.String ASYNC_QUERY_STRING

The attribute name for the Query String of the async request

See Also:
  Constant Field Values

### Method Detail

#### getRequest

    ServletRequest getRequest()

Returns:
  a reference to the ServletRequest object

#### getResponse

    ServletResponse getResponse()

Returns:
  a reference to the ServletResponse object

#### hasOriginalRequestAndResponse

    boolean hasOriginalRequestAndResponse()

Returns:
  true if the Request and Response are the original ones

#### dispatch

    void dispatch()

Throws:
  `java.lang.IllegalStateException` - if this method is called when the request is not in asynchronous mode. The request is in asynchronous mode after `ServletRequest.startAsync()` or `ServletRequest.startAsync(ServletRequest, ServletResponse)` has been called and before `complete()` or any other dispatch() method has been called.

#### dispatch

    void dispatch​(java.lang.String path)

Parameters:
  `path` - The path to which the request/response should be dispatched relative to the `ServletContext` from which this async request was started.
Throws:
  `java.lang.IllegalStateException` - if this method is called when the request is not in asynchronous mode. The request is in asynchronous mode after `ServletRequest.startAsync()` or `ServletRequest.startAsync(ServletRequest, ServletResponse)` has been called and before `complete()` or any other dispatch() method has been called.

#### dispatch

    void dispatch​(ServletContext context,
                  java.lang.String path)

Parameters:
  `path` - The path to which the request/response should be dispatched relative to the specified `ServletContext`.
  `context` - The `ServletContext` to which the request/response should be dispatched.
Throws:
  `java.lang.IllegalStateException` - if this method is called when the request is not in asynchronous mode. The request is in asynchronous mode after `ServletRequest.startAsync()` or `ServletRequest.startAsync(ServletRequest, ServletResponse)` has been called and before `complete()` or any other dispatch() method has been called.

#### complete

    void complete()

Completes the async request processing and closes the response stream

#### start

    void start​(java.lang.Runnable run)

Starts a new thread to process the asynchronous request

Parameters:
  `run` - a Runnable that the new thread will run

#### addListener

    void addListener​(AsyncListener listener)

Adds an event listener that will be called for different AsyncEvents fire

Parameters:
  `listener` - an AsyncListener that will be called with AsyncEvent objects

#### addListener

    void addListener​(AsyncListener listener,
                     ServletRequest request,
                     ServletResponse response)

Adds an event listener that will be called when different AsyncEvents fire

Parameters:
  `listener` - an AsyncListener that will be called with AsyncEvent objects
  `request` - the ServletRequest that will be passed with the AsyncEvent
  `response` - the ServletResponse that will be passed with the AsyncEvent

#### createListener

    <T extends AsyncListener> T createListener​(java.lang.Class<T> clazz)
                                        throws ServletException

Creates and returns an AsyncListener object

Type Parameters:
  `T` - The type to create that extends AsyncListener
Parameters:
  `clazz` - The class to instantiate to create the listener
Returns:
  the newly created AsyncListener object
Throws:
  `ServletException` - if the listener cannot be created

#### setTimeout

    void setTimeout​(long timeout)

Set the timeout.

Parameters:
  `timeout` - The timeout in milliseconds. 0 or less indicates no timeout.

#### getTimeout

    long getTimeout()

Get the current timeout.

Returns:
  The timeout in milliseconds. 0 or less indicates no timeout.