Class ThreadedHttpRequestHandler

java.lang.Object
com.yahoo.jdisc.AbstractResource
com.yahoo.jdisc.handler.AbstractRequestHandler
com.yahoo.container.jdisc.ThreadedRequestHandler
com.yahoo.container.jdisc.ThreadedHttpRequestHandler
All Implemented Interfaces:
HttpRequestHandler, com.yahoo.jdisc.handler.RequestHandler, com.yahoo.jdisc.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

      @Inject public ThreadedHttpRequestHandler(Executor executor, com.yahoo.jdisc.Metric metric)
    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(ThreadedHttpRequestHandler.Context context)
    • ThreadedHttpRequestHandler

      public ThreadedHttpRequestHandler(Executor executor, com.yahoo.jdisc.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, com.yahoo.jdisc.handler.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(com.yahoo.jdisc.Request request, com.yahoo.jdisc.handler.BufferedContentChannel requestContent, com.yahoo.jdisc.handler.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(com.yahoo.jdisc.Request request)
    • testContext

      public static ThreadedHttpRequestHandler.Context testContext()