| org.apache.catalina.Valve
All known Subclasses: org.apache.catalina.valves.ValveBase,
Valve | public interface Valve (Code) | | 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.
author: Craig R. McClanahan author: Gunnar Rjnning author: Peter Donald version: $Revision: 1.2 $ $Date: 2004/02/27 14:58:39 $ |
Method Summary | |
public String | getInfo() Return descriptive information about this Valve implementation. | public void | invoke(Request request, Response response, ValveContext context) 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.
|
getInfo | public String getInfo()(Code) | | Return descriptive information about this Valve implementation.
|
invoke | public void invoke(Request request, Response response, ValveContext context) throws IOException, ServletException(Code) | | 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.
Parameters: request - The servlet request to be processed Parameters: response - The servlet response to be created Parameters: context - The valve context used to invoke the next valvein the current processing pipeline exception: IOException - if an input/output error occurs, or is thrownby a subsequently invoked Valve, Filter, or Servlet exception: ServletException - if a servlet error occurs, or is thrownby a subsequently invoked Valve, Filter, or Servlet |
|
|