我知道有一个HTTP响应头指令来禁用页面缓存:
Cache-Control:no-cache
我可以通过“手”修改标题:
<%response.addHeader("Cache-Control","no-cache");%>
但是有一种“好的”方法可以让JSP解释器在服务器响应中返回这个标题行吗?
(我检查了&lt;%@ page ...%&gt;指令。似乎没有那样的。)
答案 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块)。