4

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

Cache-Control:no-cache

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

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

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

(我检查了 <%@page ...%> 指令。似乎没有这样的东西。)

4

4 回答 4

3

还添加

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

到你的头球并试一试。

于 2008-10-04T05:54:20.123 回答
0

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

于 2008-10-02T12:11:41.573 回答
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 页面发送它。

于 2008-10-02T12:51:36.563 回答
0

IIRC 某些浏览器可能会在某些情况下忽略缓存控制设置。解决此问题的“安全”解决方法是始终获取带有新查询字符串变量(例如时间)的页面(甚至是 AJAX 块)。

于 2008-10-02T12:58:58.560 回答