X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=cachecontrol%2Fsrc%2Fmain%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FCacheControlInterceptor.java;h=641bda341e809ccf0cb8a9becd0b9b82a9ac25b6;hp=aeda87a6e1f63c5864ed4a3d43f1def7c73f0fdc;hb=a266075162d622783b9b56e6e7fe2a17cf104421;hpb=f3ec05942f7f5cbf3417bf71b5727b9007739bfd diff --git a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/CacheControlInterceptor.java b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/CacheControlInterceptor.java index aeda87a6..641bda34 100644 --- a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/CacheControlInterceptor.java +++ b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/CacheControlInterceptor.java @@ -52,8 +52,23 @@ public class CacheControlInterceptor implements HandlerInterceptor { if (!cacheable.isGenerateCacheHeaders(request)) return true; + String url = null; + if (log.isDebugEnabled()) { + if (request.getQueryString() == null) { + url = request.getRequestURI(); + } + else { + StringBuilder builder = new StringBuilder(); + builder.append(request.getRequestURI()); + builder.append('?'); + builder.append(request.getQueryString()); + url = builder.toString(); + } + } + int cacheSeconds = cacheable.getCacheSeconds(request); - if (cacheSeconds == 0) { + if (cacheSeconds < 0) { + log.debug("{}: caching disabled!", url); response.setDateHeader(HEADER_DATE, now); response.setDateHeader(HEADER_EXPIRES, 0); response.addHeader(HEADER_PRAGMA, "no-cache"); @@ -106,22 +121,25 @@ public class CacheControlInterceptor implements HandlerInterceptor { * negative Werte für Last-Modified zurückliefert. */ if (log.isDebugEnabled()) - log.debug("Not modified since {}: {}", new Date(ifModifiedSince), request.getRequestURI()); + log.debug("{}: Not modified since {}", url, new Date(ifModifiedSince)); if (ifNoneMatch == null) { /** Neue Anfrage oder HTTP/1.0 Client! */ - log.debug("ETag nicht gesetzt: 304 {}", request.getRequestURI()); + log.debug("{}: ETag nicht gesetzt -> 304", url); response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); return false; } } if (ifNoneMatch != null && ifNoneMatch.equals(eTag)) { - log.debug("{}: ETag {} not changed -> 304 ", request.getRequestURI(), ifNoneMatch); + log.debug("{}: ETag {} not changed -> 304 ", url, ifNoneMatch); response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); return false; } + + log.debug("{}: first up!", url); + /** HTTP/1.1-Caching-Header richtig setzen!! */ response.setDateHeader(HEADER_LAST_MODIFIED, lastModified); @@ -133,7 +151,6 @@ public class CacheControlInterceptor implements HandlerInterceptor { * Browser gecached werden! */ if (request.isRequestedSessionIdFromURL()) { - cacheSeconds = 0; cacheControl.put("private", null); } @@ -160,7 +177,7 @@ public class CacheControlInterceptor implements HandlerInterceptor { * Expires-Header für HTTP/1.0-Clients setzen. */ cacheControl.put("max-age", Integer.toString(cacheSeconds)); - response.setDateHeader(HEADER_EXPIRES, (now + cacheSeconds * 1000)); + response.setDateHeader(HEADER_EXPIRES, (now + (long)cacheSeconds * 1000)); } StringBuilder builder = new StringBuilder();