Domanda

Comprendo che esiste una direttiva dell'intestazione della risposta HTTP per disabilitare la memorizzazione nella cache della pagina:

Cache-Control:no-cache

Posso modificare l'intestazione con " mano " ;:

 <%response.addHeader("Cache-Control","no-cache");%>

Ma c'è un " bello " modo per far sì che l'interprete JSP restituisca questa riga di intestazione nella risposta del server?

(Ho controllato la direttiva <% @ page ...% > Sembra che non ci sia nulla del genere.)

È stato utile?

Soluzione

Aggiungi anche

response.addHeader("Expires","-1");
response.addHeader("Pragma","no-cache");

alle tue intestazioni e provaci.

Altri suggerimenti

Se stavi usando un servlet, credo che ciò che hai pubblicato nella domanda sarebbe l'approccio corretto. Non sono a conoscenza di alcun modo per farlo nel JSP.

<?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>

Devi inserire l'intestazione della risposta in <jsp:root />. Inoltre, raccomanderei invece di inviarlo dal servlet anziché dalla pagina JSP.

IIRC alcuni browser potrebbero ignorare le impostazioni di controllo della cache in alcuni contesti. La soluzione "sicura" per questo era quella di ottenere sempre una pagina (anche un pezzo AJAX) con una nuova variabile stringa di query (come il tempo.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top