Wie man das Caching in einer jsp Seite deaktivieren
-
03-07-2019 - |
Frage
Ich verstehe, gibt es eine HTTP-Antwort-Header-Richtlinie Seiten-Caching zu deaktivieren:
Cache-Control:no-cache
Ich kann den Header von "Hand" ändern:
<%response.addHeader("Cache-Control","no-cache");%>
Aber gibt es eine „nette“ Art und Weise der JSP-Interpreter senden Sie diese Kopfzeile in der Serverantwort zu machen?
(Ich habe die <% @ page ...%> Richtlinie. Es scheint, es ist nichts dergleichen.)
Lösung
Fügen Sie auch
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
Ihren Kopf- und geben, dass ein Schuss.
Andere Tipps
Wenn Sie ein Servlet verwendet hat, dann glaube ich, was Sie in der Frage gestellt wäre der richtige Ansatz sein. Ich bin mir nicht bewusst irgendeine Weise dies in der JSP zu tun.
<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:scriptlet><![CDATA[
response.setHeader("Cache-Control", "no-cache");
]]></jsp:scriptlet>
</jsp:root>
Sie müssen die Antwort-Header innerhalb <jsp:root />
setzen. Außerdem würde ich stattdessen empfehlen, diese von Ihrem Servlet statt JSP-Seite zu senden.
IIRC einige Browser können die Cache-Control-Einstellungen in manchen Kontexten ignorieren. Die ‚sichere‘ Abhilfe für dies war stets eine neue Seite zu bekommen (auch ein AJAX-Chunk) mit einem neuen Query-String-Variable (wie die Zeit.)