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
.boolean
shouldFilter
(Request request, MimeHeaders headers) Gives thisFilter
the chance to examine the HTTP response headers from the wrappedHandler
, before the content has been retrieved.
-
Method Details
-
shouldFilter
Gives thisFilter
the chance to examine the HTTP response headers from the wrappedHandler
, before the content has been retrieved.If this
Filter
does want to examine and possibly rewrite the content, it should returntrue
; once the content is available, thefilter
method will be invoked. For instance, if thisFilter
is only interested in rewriting "text/html" pages, it should returnfalse
if the "Content-Type" is "image/jpeg". If all filters returnfalse
for theshouldFilter
method, theFilterHandler
can 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:
true
if this filter would like to examine and possibly rewrite the content,false
otherwise.
-
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 theHandler
that thisFilter
may rewrite.- Returns:
- The rewritten content. The
Filter
may return the originalcontent
unchanged. TheFilter
may returnnull
to indicate that theFilterHandler
should stop processing the request and should not return any content to the client.
-