私の Web アプリケーションでは、ブラウザのキャッシュが原因で問題が発生しています。
JSP ページをロードするときにブラウザのキャッシュをクリアするにはどうすればよいですか?
jspページにクリアキャッシュコードを含めるにはどうすればよいですか?
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
%>
<%
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
}
%>
特定の JSP のブラウザ キャッシュを無効にする方法は? ブラウザが JSP ページの応答をキャッシュしないようにすることができます。応答ヘッダーに追加された次のヒントは、同じ URL が「ヒット」したときに、最新のブラウザーのほとんどがキャッシュからページをプルするのを防ぐようです。
<%
response.setHeader( "Pragma", "no-cache" );
response.setHeader( "Cache-Control", "no-cache" );
response.setDateHeader( "Expires", 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 2001 00:00:00 GMT">
<%
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.addHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 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 にもありました。