| 
 |   | ||||||||
| 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 Handlerserver - The HTTP server that created this Handler.
		Typical Handlers 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 Handlerrequest - 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 | ||||||||