sunlabs.brazil.handler
Class ReflectHandler

java.lang.Object
  extended by sunlabs.brazil.handler.ReflectHandler (view source)
All Implemented Interfaces:
Handler

public class ReflectHandler
extends Object
implements Handler

Handler for reflecting query data back to the client. This is the example handler to demonstrate how a typical handler is witten. If query data is present, it is formatted into an HTML table, and displayed to the user.


Constructor Summary
ReflectHandler()
           
 
Method Summary
static String formatTable(Dictionary data, String caption)
          Turn a hash table into html format.
 boolean init(Server server, String prefix)
          Initialize the handler.
 boolean respond(Request request)
          Dispatch and handle the request.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectHandler

public ReflectHandler()
Method Detail

init

public boolean init(Server server,
                    String prefix)
Initialize the handler. Handler objects are created by the server using newInstance(). The init method is called first, and exactly one for each instance, and may be used for one-time initializations. This handler doesn't require any.

Specified by:
init in interface Handler
Parameters:
server - A reference to the server.
prefix - A string identifying this instance of the handler. It is used by the ChainHandler to provide the prefix to be prepended onto each property intended for this handler.
Returns:
true Only if the handler is successfully initialized.

respond

public boolean respond(Request request)
                throws IOException
Dispatch and handle the request. This version justs reflects the HTTP header information. It is commonly placed downstream of the CgiHandler to allow HTML forms to be tested before the cgi script is written.

Specified by:
respond in interface Handler
Parameters:
request - The request object contains all of the information about the request, as well as methods to manipulate it. Although multiple threads may call this method connurrently, each will have its own request object.
Returns:
true if the request was handled. A request was handled if a response was supplied to the client, typically by calling Request.sendResponse() or Request.sendError.
Throws:
IOException - if there was an I/O error while sending the response to the client. Typically, in that case, the Server will (try to) send an error message to the client and then close the client's connection.

The IOException should not be used to silently ignore problems such as being unable to access some server-side resource (for example getting a FileNotFoundException due to not being able to open a file). In that case, the Handler's duty is to turn that IOException into a HTTP response indicating, in this case, that a file could not be found.


formatTable

public static String formatTable(Dictionary data,
                                 String caption)
Turn a hash table into html format. This is a static method so it may be used in other handlers (but shouldn't be - poor form).

Parameters:
data - The table to format
caption - The table caption
Returns:
The html fragment

Version Kenai-svn-r24, Generated 08/18/09
Copyright (c) 2001-2009, Sun Microsystems.