如何在jsp页面内停用缓存

时间:2008-10-02 12:07:29

标签: http jsp jstl cache-control no-cache

我知道有一个HTTP响应头指令来禁用页面缓存:

Cache-Control:no-cache

我可以通过“手”修改标题:

 <%response.addHeader("Cache-Control","no-cache");%>

但是有一种“好的”方法可以让JSP解释器在服务器响应中返回这个标题行吗?

(我检查了&lt;%@ page ...%&gt;指令。似乎没有那样的。)

4 个答案:

答案 0 :(得分:3)

同时添加

response.addHeader("Expires","-1");
response.addHeader("Pragma","no-cache");

到你的标题并给它一个镜头。

答案 1 :(得分:0)

如果您使用的是servlet,那么我相信您在问题中发布的内容将是正确的方法。我不知道在JSP中有任何方法可以做到这一点。

答案 2 :(得分:0)

<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> 
 <jsp:scriptlet><![CDATA[
   response.setHeader("Cache-Control", "no-cache");
 ]]></jsp:scriptlet>
</jsp:root>

您必须将响应标头放在<jsp:root />中。另外,我建议从servlet而不是JSP页面发送它。

答案 3 :(得分:0)

IIRC某些浏览器可能会忽略某些上下文中的缓存控制设置。对此的“安全”解决方法是始终使用新的查询字符串变量(如时间)获取页面(甚至是AJAX块)。