- if (request.isRequestedSessionIdFromURL())
- cacheControl.put("private", null);
-
- if (cacheControl.containsKey("private")) {
- /**
- * HTTP/1.0 Caches davon abhalten, die Ressource zu cachen (vgl.: RFC
- * 2616, {@plainlink
- * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3
- * Abschnitt 14.9.3} und {@plainlink
- * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32
- * Abschnitt 14.32})
- */
- response.setDateHeader(HEADER_EXPIRES, 0l);
- response.addHeader(HEADER_PRAGMA, "no-cache");
- } else {
- /**
- * Hier muss nicht geprüft werden, ob cacheSeconds > 0 gilt, da in diesem
- * Fall oben bereits No-Cache-Header generiert und <code>false</code>
- * zurückgeliefert werden!
- *
- * Den Wert als <code>max-age</code> zu den Schlüssel-Wert-Paaren für den
- * <code>Cache-Control</code>-Header hinzufügen und einen entsprechenden
- * <code>Expires</code>-Header für HTTP/1.0-Clients setzen.
- */
- cacheControl.put("max-age", Integer.toString(cacheSeconds));
- response.setDateHeader(HEADER_EXPIRES, (now + (long) cacheSeconds * 1000));
- }
-
- StringBuilder builder = new StringBuilder();
- for (Entry<String, String> entry : cacheControl.entrySet()) {
- builder.setLength(0);
- builder.append(entry.getKey());
- if (entry.getValue() != null) {
- builder.append('=');
- builder.append(entry.getValue());
- }
- response.addHeader(HEADER_CACHE_CONTROL, builder.toString());
- }
-
- return true;