Friday, November 07, 2008

How to Add Header Using Tomcat Filters

We first write a filter to web.xml (before < /web-app> tag)

<filter>
<filter-name>newFilter</filter-name>
<filter-class>MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>newFilter</filter-name>
<url-pattern>/*< /url-pattern>
</filter-mapping>


Then MyFilter.java will be like this.



import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public final class MyFilter implements Filter {


private FilterConfig filterConfig = null;

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
String browserDet = ((HttpServletRequest) request).getHeader("User-Agent").toLowerCase();
HttpServletResponse hrs = null;
hrs = (HttpServletResponse)response;
hrs.setHeader("Cache-Control", "max-age=10000");

}

chain.doFilter(request, hrs);
}
public void destroy() {
}

public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

}



This code will add

Cache-Control max-age=10000
header to the package. You can add different headers for different file types for performance or anything else.

0 comments:

Share