Schnittstelle Valve

Alle bekannten Implementierungsklassen:
CleanUpValve, DefaultACLCreationValve, DefaultLoginValve, DefaultSessionTimeoutValve, DefaultSessionValidationValve, DefaultSetEncodingValve, DetermineActionValve, DetermineRedirectRequestedValve, DetermineTargetValve, ExecutePageValve, URLMapperValve
Funktionsschnittstelle:
Dies ist eine funktionale Schnittstelle, die somit als Zuweisungsziel für einen Lambdaausdruck oder eine Methodenreferenz verwendet werden kann.

@FunctionalInterface public interface Valve

A Valve is a request processing component. A series of Valves are generally associated with each other into a Pipeline. The detailed contract for a Valve is included in the description of the invoke() method below.

HISTORICAL NOTE: The "Valve" name was assigned to this concept because a valve is what you use in a real world pipeline to control and/or modify flows through it.
Autor:
Craig R. McClanahan, Gunnar Rjnning, Peter Donald, Daniel Rall
Siehe auch:
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    default void
    Initialize the valve before using in a pipeline.
    void
    invoke(PipelineData pipelineData, ValveContext context)
    Perform request processing as required by this Valve.
  • Methodendetails

    • invoke

      void invoke(PipelineData pipelineData, ValveContext context) throws IOException, TurbineException

      Perform request processing as required by this Valve.

      An individual Valve MAY perform the following actions, in the specified order:

      • Examine and/or modify the properties of the specified Request and Response.
      • Examine the properties of the specified Request, completely generate the corresponding Response, and return control to the caller.
      • Examine the properties of the specified Request and Response, wrap either or both of these objects to supplement their functionality, and pass them on.
      • If the corresponding Response was not generated (and control was not returned, call the next Valve in the pipeline (if there is one) by executing context.invokeNext().
      • Examine, but not modify, the properties of the resulting Response (which was created by a subsequently invoked Valve via a call to context.invokeNext()).

      A Valve MUST NOT do any of the following things:

      • Change request properties that have already been used to direct the flow of processing control for this request.
      • Create a completed Response AND pass this Request and Response on to the next Valve in the pipeline.
      • Consume bytes from the input stream associated with the Request, unless it is completely generating the response, or wrapping the request before passing it on.
      • Modify the HTTP headers included with the Response after the invokeNext() method has returned.
      • Perform any actions on the output stream associated with the specified Response after the invokeNext() method has returned.
      Parameter:
      pipelineData - The run-time information, including the servlet request and response we are processing.
      context - The valve context used to invoke the next valve in the current processing pipeline
      Löst aus:
      IOException - Thrown by a subsequent Valve.
      TurbineException - Thrown by a subsequent Valve.
    • initialize

      default void initialize() throws Exception
      Initialize the valve before using in a pipeline.
      Löst aus:
      Exception - if initialization fails