Class ThreadedHttpRequestHandler

All Implemented Interfaces:
HttpRequestHandler, RequestHandler, SharedResource
Direct Known Subclasses:
AccessLogRequestHandler, FilterBackingRequestHandler, HttpHandlerBase, LoggingRequestHandler, LogHandler, RestApiRequestHandler, VipStatusHandler

public abstract class ThreadedHttpRequestHandler extends ThreadedRequestHandler implements HttpRequestHandler
A simple HTTP request handler, using the HttpRequest and HttpResponse classes. Users need to override the handle(HttpRequest) method in this class and the HttpResponse.render(java.io.OutputStream) method.
Author:
hmusum, Steinar Knutsen, bratseth
  • Field Details

  • Constructor Details

    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(Executor executor)
    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(Executor executor, Metric metric)
    • ThreadedHttpRequestHandler

      @Inject public ThreadedHttpRequestHandler(ContainerThreadPool pool, Metric metric)
    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(ThreadedHttpRequestHandler.Context context)
    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(Executor executor, Metric metric, boolean allowAsyncResponse)
  • Method Details

    • handle

      public abstract HttpResponse handle(HttpRequest request)
      Override this to implement a synchronous style handler.
      Parameters:
      request - incoming HTTP request
      Returns:
      a valid HTTP response for presentation to the user
    • handle

      public HttpResponse handle(HttpRequest request, ContentChannel channel)
      Override this rather than handle(request) to be able to write to the channel before returning from this method. This default implementation calls handle(request)
    • handleRequest

      public final void handleRequest(Request request, BufferedContentChannel requestContent, ResponseHandler responseHandler)
      Specified by:
      handleRequest in class ThreadedRequestHandler
    • addDateHeader

      protected void addDateHeader(HttpResponse httpResponse, long startTime)
    • createLoggingCompletionHandler

      protected LoggingCompletionHandler createLoggingCompletionHandler(long startTime, long renderStartTime, HttpResponse response, HttpRequest httpRequest, ContentChannelOutputStream rendererWiring)
      Override this to implement custom access logging.
      Parameters:
      startTime - execution start
      renderStartTime - start of output rendering
      response - the response which the log entry regards
      httpRequest - the incoming HTTP request
      rendererWiring - the stream the rendered response is written to, used for fetching length of rendered response
    • asHttpRequest

      protected HttpRequest asHttpRequest(Request request)
    • testContext

      public static ThreadedHttpRequestHandler.Context testContext()