2012-07-05 10 views

risposta

16

È possibile farlo in questo modo nella tua JSP per prevent from caching, non in grado di cancellare la cache programmaticamente:

<% response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 
response.setHeader("Pragma","no-cache"); //HTTP 1.0 
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server 
%> 
+0

È necessario inserire questo codice in ogni pagina JSP? –

+1

aggiungi lo snippet di codice sopra in un file jsp e includi quel jsp in tutti gli altri jsps. Oppure un altro modo semplice è aggiungere questo codice mentre si invia la risposta in un filtro in modo che si possa essere sicuri che il browser non memorizzi i dati nella cache. – UVM

+1

Ho provato con il seguente codice, la sua non è la memorizzazione nella cache della pagina, ma quando ho colpito il pulsante di ritorno del browser, il browser dice che questo documento non esiste più, ricaricare la pagina. Perché non sta ricaricando la pagina automaticamente? '<% response.setHeader (" Cache-Control "," no-cache "); response.setHeader ("Cache-Control", "no-store"); response.setHeader ("Pragma", "no-cache"); response.setDateHeader ("Expires", 0); %> ' – Sadanand

0

Lo stesso effetto può essere ottenuto utilizzando meta tag nell'intestazione HTML:

<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Cache-Control"  content="no-cache"> 
<meta http-equiv="Expires" content="Sat, 01 Dec 2012 00:00:00 GMT"> 

L'intestazione Cache-Control è stata aggiunta in HTTP 1.1, mentre gli altri due erano presenti anche in HTTP 1.0.

+0

Non consigliato, a meno che tu non abbia altra scelta. (Non si utilizza JSP o non è possibile modificare le intestazioni di risposta nel momento in cui il JSP è in esecuzione, forse a causa di un framework inflessibile che si sta utilizzando.) – Barett

1
 <% 
response.setHeader("Cache-Control", "no-cache"); 
response.setHeader("Cache-Control", "no-store"); 
response.setHeader("Pragma", "no-cache"); 
response.setDateHeader("Expires", 0); 
%> 

lavoro perfetto in jsp e ricordatevi di controllare la sessione

<% 

User u = (User) request.getSession().getAttribute("user"); 
if (u != null) { 
//show page 
}else{ 
// redirect to login page 
} 

%> 
0
<% 
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 
response.addHeader("Pragma", "no-cache"); 
response.setDateHeader("Expires", 0); 
%> 

Questo ha funzionato per me. Reference

Problemi correlati