* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18 RFC 2616,
* Abschnitt 14.18} einen Date-Header enthalten
*/
* http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18 RFC 2616,
* Abschnitt 14.18} einen Date-Header enthalten
*/
for (String name : headers.keySet())
response.addHeader(name, headers.get(name));
for (String name : headers.keySet())
response.addHeader(name, headers.get(name));
response.setDateHeader(Headers.HEADER_EXPIRES, 0);
response.addHeader(Headers.HEADER_PRAGMA, "no-cache");
response.addHeader(Headers.HEADER_CACHE_CONTROL, "private");
response.setDateHeader(Headers.HEADER_EXPIRES, 0);
response.addHeader(Headers.HEADER_PRAGMA, "no-cache");
response.addHeader(Headers.HEADER_CACHE_CONTROL, "private");
lastModified = lastModified - (lastModified % 1000);
String ifNoneMatch = request.getHeader(Headers.HEADER_IF_NONE_MATCH);
lastModified = lastModified - (lastModified % 1000);
String ifNoneMatch = request.getHeader(Headers.HEADER_IF_NONE_MATCH);
* Antwort stark sind (starke Gleichheit!), oder wenn die Antwort nur
* schwache Gleichheit fordert...
*/
* Antwort stark sind (starke Gleichheit!), oder wenn die Antwort nur
* schwache Gleichheit fordert...
*/
log.debug("{}: ETag {} not changed -> 304 ", url, ifNoneMatch);
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
return false;
log.debug("{}: ETag {} not changed -> 304 ", url, ifNoneMatch);
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
return false;
* <code>Expires</code>-Header für HTTP/1.0-Clients setzen.
*/
cacheControl.put("max-age", Integer.toString(cacheSeconds));
* <code>Expires</code>-Header für HTTP/1.0-Clients setzen.
*/
cacheControl.put("max-age", Integer.toString(cacheSeconds));