Mercurial > dive4elements > river
view flys-client/src/main/java/de/intevation/flys/client/server/filter/NoCacheFilter.java @ 4473:6db783627137
Map print does now submit additional parameters to MapPrintServiceImpl.
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Sat, 10 Nov 2012 23:47:38 +0100 |
parents | 687b7a6f09aa |
children | cc6323401643 |
line wrap: on
line source
package de.intevation.flys.client.server.filter; import java.io.IOException; import java.util.Enumeration; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; /** ServletFilter to avoid caching for GWTs *.nocache.* files. */ public class NoCacheFilter implements Filter { private static final long DAY = 86400000L; private static final String NO_CACHE = ".nocache."; private static Logger log = Logger.getLogger(NoCacheFilter.class); /** * Initialize. */ @Override public void init(FilterConfig config) throws ServletException { } /** * Called when filter in chain invoked. * @param req request to servlet * @param resp response of servlet * @param chain the filter chain */ @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpreq = (HttpServletRequest)req; String uri = httpreq.getRequestURI(); if (uri.contains(NO_CACHE)) { log.debug("Set no-cache for " + uri); Date now = new Date(); HttpServletResponse httpresp = (HttpServletResponse)resp; httpresp.setDateHeader("Date", now.getTime()); httpresp.setDateHeader("Expires", now.getTime() - DAY); httpresp.setHeader("Pragma", "no-cache"); httpresp.setHeader("Cache-control", "no-cache, no-store, must-revalidate"); } chain.doFilter(req, resp); } /** * Do nothing at destruction. */ @Override public void destroy() { } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :