2012-07-05 6 views

答えて

16

あなたがプログラム的にキャッシュをクリアすることはできません、prevent from cachingにあなたのJSPでこの方法を行うことができます。

<% 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を他のすべてのjspに含めます。または、もう1つの簡単な方法は、ブラウザでデータをキャッシュしないようにするために、このコードを追加してフィルタで応答を返すことです。 – UVM

+1

私は次のコードを試しました、そのページをキャッシュしていませんが、私はブラウザの戻るボタンを押すと、ブラウザはこのドキュメントはもう存在しない、ページをリロードします。なぜページを自動的にリロードしないのですか? '<%response.setHeader(" Cache-Control "、" no-cache ");レスポンス.setHeader( "Cache-Control"、 "no-store"); response.setHeader( "Pragma"、 "no-cache"); response.setDateHeader( "Expires"、0); %> ' – Sadanand

0

同様の効果が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"> 

Cache-ControlヘッダーはHTTP 1.1で追加され、その他の2つはHTTP 1.0にも追加されました。 JSPでの完璧な

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

仕事とこれは私のために働いたセッションに

<% 

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

%> 
0
​​3210

をチェックすることを忘れないでください。 Reference

関連する問題