Valvepublic interface Valve A Valve is a request processing component associated with a
particular Container. 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. |
Methods Summary |
---|
public void | backgroundProcess()Execute a periodic task, such as reloading, etc. This method will be
invoked inside the classloading context of this container. Unexpected
throwables will be caught and logged.
| public void | event(org.apache.catalina.connector.Request request, org.apache.catalina.connector.Response response, CometEvent event)Process a Comet event.
| public java.lang.String | getInfo()Return descriptive information about this Valve implementation.
| public org.apache.catalina.Valve | getNext()Return the next Valve in the pipeline containing this Valve, if any.
| public void | invoke(org.apache.catalina.connector.Request request, org.apache.catalina.connector.Response response)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 or Container).
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 (for instance,
trying to change the virtual host to which a Request should be
sent from a pipeline attached to a Host or Context in the
standard implementation).
- 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.
| public void | setNext(org.apache.catalina.Valve valve)Set the next Valve in the pipeline containing this Valve.
|
|