Class AsyncDelayHandler

  • All Implemented Interfaces:
    Handler, HandlerContainer, Container, Destroyable, Dumpable, LifeCycle

    public class AsyncDelayHandler
    extends HandlerWrapper
    A handler wrapper that provides the framework to asynchronously delay the handling of a request. While it uses standard servlet API for asynchronous servlets, it adjusts the dispatch type of the request so that it does not appear to be asynchronous during the delayed dispatch.
    • Constructor Detail

      • AsyncDelayHandler

        public AsyncDelayHandler()
    • Method Detail

      • handle

        public void handle​(java.lang.String target,
                           Request baseRequest,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
                    throws java.io.IOException,
                           javax.servlet.ServletException
        Description copied from interface: Handler
        Handle a request.
        Specified by:
        handle in interface Handler
        Overrides:
        handle in class HandlerWrapper
        Parameters:
        target - The target of the request - either a URI or a name.
        baseRequest - The original unwrapped request object.
        request - The request either as the Request object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getRequest() method can be used access the Request object if required.
        response - The response as the Response object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getResponse() method can be used access the Response object if required.
        Throws:
        java.io.IOException - if unable to handle the request or response processing
        javax.servlet.ServletException - if unable to handle the request or response due to underlying servlet issue
      • startHandling

        protected boolean startHandling​(Request request,
                                        boolean restart)
        Called to indicate that a request has been presented for handling
        Parameters:
        request - The request to handle
        restart - True if this request is being restarted after a delay
        Returns:
        True if the request should be handled now
      • delayHandling

        protected void delayHandling​(Request request,
                                     javax.servlet.AsyncContext context)
        Called to indicate that a requests handling is being delayed/ The implementation should arrange for context.dispatch() to be called when the request should be handled. It may also set timeouts on the context.
        Parameters:
        request - The request to be delayed
        context - The AsyncContext of the delayed request
      • endHandling

        protected void endHandling​(Request request)
        Called to indicated the handling of the request is ending. This is only the end of the current dispatch of the request and if the request is asynchronous, it may be handled again.
        Parameters:
        request - The request