hudson
Class ResponseHeaderFilter
java.lang.Object
hudson.ResponseHeaderFilter
- All Implemented Interfaces:
- javax.servlet.Filter
public class ResponseHeaderFilter
- extends Object
- implements javax.servlet.Filter
This filter allows you to modify headers set by the container or other servlets
that are out of your control. The particular headers you wish to change are configured
in web.xml.
One particular header you you may wish to deal with is "Cache-Control: no-cache"
This is a problem with Tomcat when security is used. Continue reading for further details.
If a web app has a <security-constraint> in its web.xml, Tomcat will
add a Cache-Control header to every file it serves from that location. This
header will prevent browsers from caching the file locally and this drastically slows
down Hudson page load times.
To enable this filter, edit the web.xml file to include:
<filter>
<filter-name>change-headers-filter</filter-name>
<filter-class>hudson.ResponseHeaderFilter</filter-class>
<init-param>
<param-name>Pragma</param-name>
<param-value>public</param-value>
</init-param>
<init-param>
<param-name>Cache-Control</param-name>
<param-value>max-age=86400, public</param-value>
</init-param>
</filter>
And down below that:
<filter-mapping>
<filter-name>Headers</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
In the case of the tomcat cache problem, it is important that the url-pattern for
the filter matches the url-pattern set for the security-constraint.
- Author:
- Mike Wille
Method Summary |
void |
destroy()
|
void |
doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse resp,
javax.servlet.FilterChain chain)
|
void |
init(javax.servlet.FilterConfig filterConfig)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ResponseHeaderFilter
public ResponseHeaderFilter()
init
public void init(javax.servlet.FilterConfig filterConfig)
throws javax.servlet.ServletException
- Specified by:
init
in interface javax.servlet.Filter
- Throws:
javax.servlet.ServletException
doFilter
public void doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse resp,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
- Specified by:
doFilter
in interface javax.servlet.Filter
- Throws:
IOException
javax.servlet.ServletException
destroy
public void destroy()
- Specified by:
destroy
in interface javax.servlet.Filter
Copyright © 2004-2013. All Rights Reserved.