Class TemplateFilter

  • All Implemented Interfaces:
    Filter, Handler

    public class TemplateFilter
    extends java.lang.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 names. For each name in the list, the property name.class is examined to determine which class to use for each template. Then name is used as the prefix for other template specific properties if any. If name.class does not exist, then name is 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 tagPrefix option is not specified for an individual template.
    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 property 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".
      boolean init​(Server server, java.lang.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,
                            java.lang.String prefix)
        Description copied from interface: Handler
        Initializes the handler.
        Specified by:
        init in interface Handler
        Parameters:
        server - 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.
        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
        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.
      • 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
        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
        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.