2012-07-05 71 views

回答

16

你可以在你的JSP做這種方式prevent from caching,不能夠清除編程緩存:

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

必須將此代碼放到每個JSP頁面嗎? –

+1

將上面的代碼片段添加到一個jsp文件中,並將該jsp包含在所有其他jsps中。或者,另一種簡單的方法是在將響應發送回過濾器的同時添加此代碼,以便確保瀏覽器不會緩存數據。 – UVM

+1

我試着用下面的代碼,它沒有緩存頁面,但當我點擊瀏覽器後退按鈕,瀏覽器說這個文件不存在,重新加載頁面。爲什麼它不會自動重新加載頁面? '' – Sadanand

0

同樣的效果可以通過在HTML頭中的meta標籤來實現:

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

Cache-Control標頭已添加到HTTP 1.1中,而其他兩個標籤也存在於HTTP 1.0中。

+0

不推薦,除非你沒有別的選擇。 (不使用JSP,也不能在JSP運行時修改響應頭文件 - 可能是由於您使用的是不靈活的框架。) – Barett

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

工作完美的JSP和記住檢查會話

<% 

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

%> 
相關問題