AsyncContext (Servlet 6.0 API Documentation - Apache Tomcat 10.1.5)

Package jakarta.servlet

## Interface AsyncContext

-     public interface AsyncContext

  Provides the context for asynchronous request handling
  Since:
    Servlet 3.0

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `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
    Modifier and Type | Method | Description
    --- | --- | ---
    `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​(ServletContext context, java.lang.String path)` |
    `void` | `dispatch​(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.