2012-07-05 31 views
5

Web uygulamamda tarayıcı önbelleği nedeniyle bir sorun var.Tarayıcı önbelleğini programlı olarak jsp'de nasıl temizlerim?

Jsp sayfam yüklenirken tarayıcı önbelleği nasıl temizlenir?

Jsp sayfasında temiz önbellek kodunu nasıl ekleyebilirim?

Sen programlama önbelleği temizlemek mümkün değildi, prevent from caching için JSP bu şekilde yapabiliriz

cevap

16

:

aynı efekti HTML başlığında meta etiketleri kullanılarak elde edilebilir
<% 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

Bu kodu her JSP Sayfasına koymak zorunda mısınız? –

+1

Yukarıdaki kod snippet'ini bir jsp dosyasına ekleyin ve bu jsp'yi diğer tüm jsps'lere ekleyin. Ya da başka bir kolay yolu, bir filtrede yanıtı geri gönderirken bu kodu eklemektir, böylece Tarayıcı'nın verileri önbelleğe almamasını sağlayabilirsiniz. – UVM

+1

Aşağıdaki kodla denedim, sayfayı önbelleğe almıyor ancak tarayıcı geri düğmesine bastığımda, tarayıcı bu belgenin artık mevcut olmadığını, sayfayı yeniden yüklediğini söylüyor. Bu sayfa neden otomatik olarak yüklenmiyor? '<% response.setHeader (" Cache-Control "," no-cache "); response.setHeader ("Cache-Control", "no-store"); response.setHeader ("Pragma", "no-cache"); response.setDateHeader ("Expires", 0); %> ' – Sadanand

0

:

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

Önbellek denetimi üstbilgisi HTTP 1.1'de eklenirken, diğer ikisi de HTTP 1.0'da mevcuttu. jsp mükemmel

+0

Başka seçenek yoksa, önerilmez. (JSP kullanmadığınız veya JSP'nizin çalıştığı zamanda yanıt üstbilgilerini değiştiremediğiniz - belki de kullandığınız esnek bir çerçeve nedeniyle.) – Barett

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

iş ve oturumunu Bu benim için çalıştı

<% 

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); 
%> 

kontrol etmeyi unutmayın. Reference

İlgili konular