Mercurial > dive4elements > river
comparison gwt-client/src/main/java/org/dive4elements/river/client/server/filter/NoCacheFilter.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-client/src/main/java/org/dive4elements/river/client/server/filter/NoCacheFilter.java@821a02bbfb4e |
children | 172338b1407f |
comparison
equal
deleted
inserted
replaced
5837:d9901a08d0a6 | 5838:5aa05a7a34b7 |
---|---|
1 package org.dive4elements.river.client.server.filter; | |
2 | |
3 import java.io.IOException; | |
4 import java.util.Date; | |
5 | |
6 import javax.servlet.Filter; | |
7 import javax.servlet.FilterChain; | |
8 import javax.servlet.FilterConfig; | |
9 import javax.servlet.ServletException; | |
10 import javax.servlet.ServletRequest; | |
11 import javax.servlet.ServletResponse; | |
12 import javax.servlet.http.HttpServletRequest; | |
13 import javax.servlet.http.HttpServletResponse; | |
14 | |
15 import org.apache.log4j.Logger; | |
16 | |
17 /** ServletFilter to avoid caching for GWTs *.nocache.* files. */ | |
18 public class NoCacheFilter implements Filter { | |
19 | |
20 private static final long DAY = 86400000L; | |
21 | |
22 private static final String NO_CACHE = ".nocache."; | |
23 | |
24 private static Logger log = Logger.getLogger(NoCacheFilter.class); | |
25 | |
26 /** | |
27 * Initialize. | |
28 */ | |
29 @Override | |
30 public void init(FilterConfig config) | |
31 throws ServletException | |
32 { | |
33 } | |
34 | |
35 | |
36 /** | |
37 * Called when filter in chain invoked. | |
38 * @param req request to servlet | |
39 * @param resp response of servlet | |
40 * @param chain the filter chain | |
41 */ | |
42 @Override | |
43 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) | |
44 throws IOException, ServletException | |
45 { | |
46 HttpServletRequest httpreq = (HttpServletRequest)req; | |
47 String uri = httpreq.getRequestURI(); | |
48 | |
49 if (uri.contains(NO_CACHE)) { | |
50 log.debug("Set no-cache for " + uri); | |
51 | |
52 Date now = new Date(); | |
53 HttpServletResponse httpresp = (HttpServletResponse)resp; | |
54 httpresp.setDateHeader("Date", now.getTime()); | |
55 httpresp.setDateHeader("Expires", now.getTime() - DAY); | |
56 httpresp.setHeader("Pragma", "no-cache"); | |
57 httpresp.setHeader("Cache-control", | |
58 "no-cache, no-store, must-revalidate"); | |
59 } | |
60 | |
61 chain.doFilter(req, resp); | |
62 } | |
63 | |
64 | |
65 /** | |
66 * Do nothing at destruction. | |
67 */ | |
68 @Override | |
69 public void destroy() { | |
70 } | |
71 } | |
72 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |