繁体   English   中英

如何在jsp中以编程方式清除浏览器缓存?

[英]how to clear browser cache programmatically in jsp?

在我的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
}

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

这对我有用。 参考

如何禁用特定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">

通过在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中,而其他两个标头也存在于HTTP 1.0中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM