+ /**
+ * Wenn eins JSESSIONID in der URL enthalten ist, darf die Anfrage nur vom
+ * Browser gecached werden!
+ */
+ 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));