Package sunlabs.brazil.filter
Class TemplateFilter
- java.lang.Object
-
- sunlabs.brazil.filter.TemplateFilter
-
public class TemplateFilter extends java.lang.Object implements Filter
TheTemplateFiltersends HTML content through an Html/XML parser to a set ofTemplates. Each Html/XML tag may dynamically invoke a Java method present in theTemplates. 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 names. For each name in the list, the property
name.classis examined to determine which class to use for each template. Thennameis used as the prefix for other template specific properties if any. Ifname.classdoes not exist, thennameis assumed to be the class name, and there are no template specific properties for the template. Methods in the template classes will be invoked to process the XML/HTML 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".
-
subtype - Restrict this template to only handle specified text sub-types. defaults to the empty string, which implies any text sub-type.
-
encoding - The charset encoding to use to represent the content as text. If none is specified, the default encoding is used.
-
outputEncoding - The character encoding to use to interpret the template results. If no "outputEncoding" is specified, then "encoding" is used. Once template processing is complete, the results are converted into a byte stream for transmission to the next filter, using "outputEncoding", if specified. If not specified then the default encoding is used.
-
tagPrefix - If specified, all tag names defined for each template class are prefixed with
tagPrefix.
This parameter only takes effect
if the
tagPrefixoption is not specified for an individual template.
TemplateHandlerclass is similar, but not identical to running aFilterHandlerwith theFileHandlerand theTemplateFilter. The differences between the two should be resolved.Note: The
templatesproperty accepts a list of class names or tokens that could be used to represent class names. If class names are used, all template classes share the TemplateHandler's properties prefix.- Version:
- 2.4
- Author:
- Stephen Uhler (stephen.uhler@sun.com), Colin Stevens (colin.stevens@sun.com)
-
-
-
Constructor Summary
Constructors Constructor Description TemplateFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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".booleaninit(Server server, java.lang.String prefix)Initializes the handler.booleanrespond(Request request)No action before request is madebooleanshouldFilter(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/".
-
-
-
Method Detail
-
init
public boolean init(Server server, java.lang.String prefix)
Description copied from interface:HandlerInitializes the handler.- Specified by:
initin interfaceHandler- Parameters:
server- The HTTP server that created thisHandler. TypicalHandlers will useServer.propsto obtain run-time configuration information.prefix- The handlers name. The string thisHandlermay prepend to all of the keys that it uses to extract configuration information fromServer.props. This is set (by theServerandChainHandler) to help avoid configuration parameter namespace collisions.- Returns:
trueif thisHandlerinitialized successfully,falseotherwise. Iffalseis returned, thisHandlershould not be used.
-
respond
public boolean respond(Request request)
No action before request is made
-
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:
shouldFilterin interfaceFilter- Parameters:
request- The in-progress HTTP request.headers- The MIME headers generated by the wrappedHandler.- Returns:
trueif this filter would like to examine and possibly rewrite the content,falseotherwise.
-
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:
filterin interfaceFilter- Parameters:
request- The finished HTTP request.headers- The MIME headers generated by theHandler.content- The output from theHandlerthat thisFiltermay rewrite.- Returns:
- The rewritten content. The
Filtermay return the originalcontentunchanged. TheFiltermay returnnullto indicate that theFilterHandlershould stop processing the request and should not return any content to the client.
-
-