wood burning stoves 2.0*
The moose likes Servlets and the fly likes Fudging Filter Functionality  as a method call Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "Fudging Filter Functionality  as a method call" Watch "Fudging Filter Functionality  as a method call" New topic

Fudging Filter Functionality as a method call

Sam Gehouse
Ranch Hand

Joined: Jul 21, 2003
Posts: 281
Is there a way that I can fudge filter functionality as a method call.
I am having problem using Jason Falkner's Compression Filter using Struts. Apparently, our application (developed by previous developers) is doing ServletChaining and I am getting exception.
I want to use Jason Falkner's CompressionFilter.
But can I use it as a method call, instead of using it as a Filter? I have no other filter in the application.

Jason Falkner's Compression Filter:

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
if (req instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String ae = request.getHeader("accept-encoding");
// String doCompression = req.getParameter("doCompession");
if (ae != null && ae.indexOf("gzip") != -1) {
System.out.println("GZIP supported, compressing.");
GZIPResponseWrapper wrappedResponse =
new GZIPResponseWrapper(response);
chain.doFilter(req, wrappedResponse);
chain.doFilter(req, res);


I tried using it as a method call by commenting out line chain.doFilter(req, wrappedResponse). As I saidd, there is no filter in the application. Chain.doFilter(..) in reality passes control to the resource that has to be compressed. After that, control comes back to wrappedResponse.finishResponse() line.

However, if I try to use doFilter as a method call by commenting out chain.doFilter(req, wrappedResponse), and call it at some place of a Servlet, it does not do any good. Key is, control has to come back to filter for it to be compressed.

Any thoughts?
It is sorta covered in the JavaRanch Style Guide.
subject: Fudging Filter Functionality as a method call