|
![]() |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--sunlabs.brazil.server.FileHandler
Standard handler for fetching static files. This handler does URL to file conversion, file suffix to mime type lookup, delivery of index files where providing directory references, and redirection for missing slashes (/) at the end of directory requests.
The following coniguration parameters are used:
/foo
then the the file
[root]/foo/bar.html
will be delivered
in response to the url /bar.html
.
The FileHandler sets the following entries in the request properties as a side-effect:
Field Summary | |
static String |
MIME
|
static String |
ROOT
|
String |
urlPrefix
|
Constructor Summary | |
FileHandler()
|
Method Summary | |
boolean |
init(Server server,
String prefix)
Initialize the file handler. |
boolean |
respond(Request request)
Find, read, and deliver via http the requested file. |
static void |
sendFile(Request request,
File file,
int code,
String type)
Send a file as a response. |
static String |
urlToPath(String url)
Helper function to convert an url into a pathname. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final String MIME
public static final String ROOT
public String urlPrefix
Constructor Detail |
public FileHandler()
Method Detail |
public boolean init(Server server, String prefix)
init
in interface Handler
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.
public boolean respond(Request request) throws IOException
root
is used as the document root.
The document root is recalculated for each request, so an upstream
handler may change it for that request.
For URL's ending with "/", the server property default
(normally index.html) is automatically appended.
If the file suffix is not found as a server property
mime.suffix
, the file is not delivered.
respond
in interface Handler
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.
public static String urlToPath(String url)
URL(String)
collapses all "/.." (and "/.") sequences,
except for a trailing "/.." (or "/."), which would lead to the
possibility of escaping from the document root.
File.getPath
in jdk-1.1 leaves all the "//" constructs
in, but it collapses them in jdk-1.2, so we have to always take it
out ourselves, just to be sure.
url
- The file path from the URL (that is, minus the "http://host"
part). May be null
.
public static void sendFile(Request request, File file, int code, String type) throws IOException
request
- The request objecttype
- The mime type of the file
IOException
|
Version 2.1, Generated 12/30/04 Copyright (c) 2001-2004, Sun Microsystems. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |