Interface Filter
- All Superinterfaces:
Handler
- All Known Implementing Classes:
CookieFilter, CopyContentFilter, ExecFilter, HistoryFilter, MD5Filter, PlainFilter, ReFilter, ReplaceFilter, SessionFilter, TemplateFilter, UrlMapFilter, UrlSessionFilter
Filter interface is used by the
FilterHandler
to examine and dynamically rewrite the contents of web pages obtained from
some source before returning that page to the client.
A chain of filters can be established in the manner of a pipeline. The
FilterHandler sends the output of a Filter
to the input of the next Filter.
The init and respond methods inherited from
the Handler interface are called as for ordinary handlers:
-
Handler.init(Server, String) - is called when the server starts, to obtain run-time configuration information.
-
Handler.respond(Request) - is called when the request comes in, before the request is sent to
the wrapped handler. This method returns true to indicate that the
request has been completely handled by this
Filter, and no further processing filtering takes place.
- Version:
- 2.2
- Author:
- Stephen Uhler (stephen.uhler@sun.com), Colin Stevens (colin.stevens@sun.com)
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]filter(Request request, MimeHeaders headers, byte[] content) Filters the content generated by the wrappedHandler.booleanshouldFilter(Request request, MimeHeaders headers) Gives thisFilterthe chance to examine the HTTP response headers from the wrappedHandler, before the content has been retrieved.
-
Method Details
-
shouldFilter
Gives thisFilterthe chance to examine the HTTP response headers from the wrappedHandler, before the content has been retrieved.If this
Filterdoes want to examine and possibly rewrite the content, it should returntrue; once the content is available, thefiltermethod will be invoked. For instance, if thisFilteris only interested in rewriting "text/html" pages, it should returnfalseif the "Content-Type" is "image/jpeg". If all filters returnfalsefor theshouldFiltermethod, theFilterHandlercan switch to a more effient mechanism of delivering content to the client.The MIME headers may also be modified by this
Filter, for instance, to change the "Content-Type" of a web page. The "Content-Length" will automatically be computed.- 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
Filters the content generated by the wrappedHandler. The content may be arbitrarily rewritten by this method.The MIME headers may also be modified by this
Filter, for instance, to change the "Content-Type" of a web page. The "Content-Length" will automatically be computed by theFilterHandler.- 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.
-