|
![]() |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Handler
The interface for writing HTTP handlers. Provides basic functionality to accept HTTP requests and dispatch to methods that handle the request.
The init(Server, String)
method is called before this
Handler
processes the first HTTP request, to allow it to
prepare itself, such as by allocating any resources needed for the
lifetime of the server
.
The respond(Request)
method is called to handle an HTTP request.
This method, and all methods it calls must be thread-safe since they may
handle HTTP requests from multiple sockets concurrently. However, each
concurrent request gets its own individual Request
object.
Any instance variables should be initialized in the
init(Server, String)
, and only referenced, but not set in the
respond(Request)
method. If any state needs to be retained,
it should be done either by associating it with the Request
object, or using the
session manager
.
Class statics should be avoided, as it is possible, and even common to
run multiple unrelated Brazil servers in the same JVM. As above, the
session manager
should be used instead.
Method Summary | |
---|---|
boolean |
init(Server server,
String prefix)
Initializes the handler. |
boolean |
respond(Request request)
Responds to an HTTP request. |
Method Detail |
---|
boolean init(Server server, String prefix)
server
- The HTTP server that created this Handler
.
Typical Handler
s will use Server.props
to obtain run-time configuration information.prefix
- The handlers name.
The string this Handler
may prepend to all
of the keys that it uses to extract configuration information
from Server.props
. This is set (by the Server
and ChainHandler
) to help avoid configuration parameter
namespace collisions.
true
if this Handler
initialized
successfully, false
otherwise. If
false
is returned, this Handler
should not be used.boolean respond(Request request) throws IOException
request
- The Request
object that represents the HTTP
request.
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
.
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.
|
Version Kenai-svn-r24, Generated 08/18/09 Copyright (c) 2001-2009, Sun Microsystems. |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |