AsyncWebRequestInterceptor (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.web.context.request

## Interface AsyncWebRequestInterceptor

- All Superinterfaces:
    WebRequestInterceptor
  All Known Implementing Classes:
    Log4jNestedDiagnosticContextInterceptor, OpenEntityManagerInViewInterceptor, OpenSessionInViewInterceptor, OpenSessionInViewInterceptor

      public interface AsyncWebRequestInterceptor
      extends WebRequestInterceptor

  Extends `WebRequestInterceptor` with a callback method invoked during asynchronous request handling.

  When a handler starts asynchronous request handling, the DispatcherServlet exits without invoking `postHandle` and `afterCompletion`, as it normally does, since the results of request handling (e.g. ModelAndView) are not available in the current thread and handling is not yet complete. In such scenarios, the `afterConcurrentHandlingStarted(WebRequest)` method is invoked instead allowing implementations to perform tasks such as cleaning up thread bound attributes.

  When asynchronous handling completes, the request is dispatched to the container for further processing. At this stage the DispatcherServlet invokes `preHandle`, `postHandle` and `afterCompletion` as usual.

  Since:
    3.2
  Author:
    Rossen Stoyanchev
  See Also:
    `WebAsyncManager`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterConcurrentHandlingStarted(WebRequest request)` Called instead of `postHandle` and `afterCompletion`, when the the handler started handling the request concurrently.

    - ### Methods inherited from interface org.springframework.web.context.request.WebRequestInterceptor

      `afterCompletion, postHandle, preHandle`

- - ### Method Detail

    - #### afterConcurrentHandlingStarted

          void afterConcurrentHandlingStarted(WebRequest request)

      Called instead of `postHandle` and `afterCompletion`, when the the handler started handling the request concurrently.
      Parameters:
        `request` - the current request