org.apache.catalina.valves
Class ErrorDispatcherValve

java.lang.Object
  extended byorg.apache.catalina.valves.ValveBase
      extended byorg.apache.catalina.valves.ErrorDispatcherValve
All Implemented Interfaces:
Contained, Valve

public class ErrorDispatcherValve
extends ValveBase

Implementation of a Valve that handles the error dispatch (that is, will forward to the appropriate error page if necessary).

This Valve should be attached at the Host level, although it will work if attached to a Context.

WARNING: This valve is necessary for Servlet API compliance.

Version:
$Revision: 1.13 $ $Date: 2004/08/26 21:43:51 $
Author:
Remy Maucherat, Craig R. McClanahan

Field Summary
protected  int debug
          The debugging detail level for this component.
protected static java.lang.String info
          The descriptive information related to this implementation.
protected static StringManager sm
          The StringManager for this package.
 
Fields inherited from class org.apache.catalina.valves.ValveBase
container
 
Constructor Summary
ErrorDispatcherValve()
           
 
Method Summary
protected  boolean custom(Request request, Response response, ErrorPage errorPage)
          Handle an HTTP status code or Java exception by forwarding control to the location included in the specified errorPage object.
protected static ErrorPage findErrorPage(Context context, java.lang.Throwable exception)
          Find and return the ErrorPage instance for the specified exception's class, or an ErrorPage instance for the closest superclass for which there is such a definition.
 java.lang.String getInfo()
          Return descriptive information about this Valve implementation.
 void invoke(Request request, Response response, ValveContext context)
          Invoke the next Valve in the sequence.
protected  void log(java.lang.String message)
          Log a message on the Logger associated with our Container (if any).
protected  void log(java.lang.String message, java.lang.Throwable throwable)
          Log a message on the Logger associated with our Container (if any).
protected  void status(Request request, Response response)
          Handle the HTTP status code (and corresponding message) generated while processing the specified Request to produce the specified Response.
protected  void throwable(Request request, Response response, java.lang.Throwable throwable)
          Handle the specified Throwable encountered while processing the specified Request to produce the specified Response.
 java.lang.String toString()
          Return a String rendering of this object.
 
Methods inherited from class org.apache.catalina.valves.ValveBase
getContainer, getDebug, setContainer, setDebug
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

debug

protected int debug
The debugging detail level for this component.


info

protected static final java.lang.String info
The descriptive information related to this implementation.

See Also:
Constant Field Values

sm

protected static StringManager sm
The StringManager for this package.

Constructor Detail

ErrorDispatcherValve

public ErrorDispatcherValve()
Method Detail

getInfo

public java.lang.String getInfo()
Return descriptive information about this Valve implementation.

Specified by:
getInfo in interface Valve
Overrides:
getInfo in class ValveBase

invoke

public void invoke(Request request,
                   Response response,
                   ValveContext context)
            throws java.io.IOException,
                   javax.servlet.ServletException
Invoke the next Valve in the sequence. When the invoke returns, check the response state, and output an error report is necessary.

Specified by:
invoke in interface Valve
Specified by:
invoke in class ValveBase
Parameters:
request - The servlet request to be processed
response - The servlet response to be created
context - The valve context used to invoke the next valve in the current processing pipeline
Throws:
java.io.IOException - if an input/output error occurs
javax.servlet.ServletException - if a servlet error occurs

toString

public java.lang.String toString()
Return a String rendering of this object.


throwable

protected void throwable(Request request,
                         Response response,
                         java.lang.Throwable throwable)
Handle the specified Throwable encountered while processing the specified Request to produce the specified Response. Any exceptions that occur during generation of the exception report are logged and swallowed.

Parameters:
request - The request being processed
response - The response being generated

status

protected void status(Request request,
                      Response response)
Handle the HTTP status code (and corresponding message) generated while processing the specified Request to produce the specified Response. Any exceptions that occur during generation of the error report are logged and swallowed.

Parameters:
request - The request being processed
response - The response being generated

findErrorPage

protected static ErrorPage findErrorPage(Context context,
                                         java.lang.Throwable exception)
Find and return the ErrorPage instance for the specified exception's class, or an ErrorPage instance for the closest superclass for which there is such a definition. If no associated ErrorPage instance is found, return null.

Parameters:
context - The Context in which to search
exception - The exception for which to find an ErrorPage

custom

protected boolean custom(Request request,
                         Response response,
                         ErrorPage errorPage)
Handle an HTTP status code or Java exception by forwarding control to the location included in the specified errorPage object. It is assumed that the caller has already recorded any request attributes that are to be forwarded to this page. Return true if we successfully utilized the specified error page location, or false if the default error report should be rendered.

Parameters:
request - The request being processed
response - The response being generated
errorPage - The errorPage directive we are obeying

log

protected void log(java.lang.String message)
Log a message on the Logger associated with our Container (if any).

Parameters:
message - Message to be logged

log

protected void log(java.lang.String message,
                   java.lang.Throwable throwable)
Log a message on the Logger associated with our Container (if any).

Parameters:
message - Message to be logged
throwable - Associated exception


Copyright 2000-2002 Apache Software Foundation. All Rights Reserved.