Sun and Oracle Community Voices How to Buy Log In United States [Change] English

»  Spotlight Articles
»  Projects
»  Publications
»  People
»  Awards
»  Events
»  Downloads
»  Internships
»  Contrarian Minds
»  About Sun Labs
Brazil project: Class TemplateFilter

sunlabs.brazil.filter Class TemplateFilter

java.lang.Object
  |
  +--sunlabs.brazil.filter.TemplateFilter
All Implemented Interfaces:
Filter, Handler

public class TemplateFilter
extends Object
implements Filter

The TemplateFilter sends HTML content through an Html/XML parser to a set of Templates. Each Html/XML tag may dynamically invoke a Java method present in the Templates. The dynamically-generated content from evaluating the Html/XML tags is returned to the caller.

The following configuration parameters are used to initialize this Filter.

templates
A list of Template class names whose methods will be invoked by the XML tags present in the content.
session
The request property that contains the session ID. If no "session" property is found with the supplied prefix, then the global "session" property is used instead. The default value is "SessionID".
The TemplateHandler class is similar, but not identical to running a FilterHandler with the FileHandler and the TemplateFilter. The differences between the two should be resolved.

Note: The templates currently accepts only a list of class names, and not tokens that could be used to represent class named. This may be changed in the future. Until then, all template classes share the TemplateHandler's properties prefix.


Constructor Summary
TemplateFilter()            
 
Method Summary
 byte[] filter(Request request, MimeHeaders headers, byte[] content)           Evaluates the content as html/XML tags, if the file is (or has now been converted to) "text/html".
 boolean init(Server server, String prefix)           Initializes the handler.
 boolean respond(Request request)           No action before request is made
 boolean shouldFilter(Request request, MimeHeaders headers)           Filters all HTML files, or files that are likely to be html files, specifically, those whose "Content-Type" starts with "text/".
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TemplateFilter

public TemplateFilter()
Method Detail

init

public boolean init(Server server,
                    String prefix)
Description copied from interface: Handler
Initializes the handler.
Specified by:
init in interface Handler
Tags copied from interface: Handler
Parameters:
server - The HTTP server that created this Handler. Typical Handlers will use Server.props to obtain run-time configuration information.
prefix - A prefix that 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.

For example, if a Handler uses the property "account", and the specified prefix is "bank.", then the Handler should actually examine the property "bank.account" in Server.props.

Returns:
true if this Handler initialized successfully, false otherwise. If false is returned, this Handler should not be used.

respond

public boolean respond(Request request)
No action before request is made
Specified by:
respond in interface Handler
Tags copied from interface: Handler
Parameters:
request - The Request object that represents the HTTP request.
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.


shouldFilter

public boolean shouldFilter(Request request,
                            MimeHeaders headers)
Filters all HTML files, or files that are likely to be html files, specifically, those whose "Content-Type" starts with "text/".
Specified by:
shouldFilter in interface Filter
Tags copied from interface: Filter
Parameters:
request - The in-progress HTTP request.
headers - The MIME headers generated by the wrapped Handler.
Returns:
true if this filter would like to examine and possibly rewrite the content, false otherwise.

filter

public byte[] filter(Request request,
                     MimeHeaders headers,
                     byte[] content)
Evaluates the content as html/XML tags, if the file is (or has now been converted to) "text/html".
Specified by:
filter in interface Filter
Tags copied from interface: Filter
Parameters:
request - The finished HTTP request.
headers - The MIME headers generated by the Handler.
content - The output from the Handler that this Filter may rewrite.
Returns:
The rewritten content. The Filter may return the original content unchanged. The Filter may return null to indicate that the FilterHandler should stop processing the request and should not return any content to the client.

Version 2.2, Generated 07/25/00
Copyright (c) 2000, Sun Microsystems.