如何停用JSP页面内的缓存
时间:2020-03-06 15:01:20 来源:igfitidea点击:
我知道有一个HTTP响应标头指令来禁用页面缓存:
Cache-Control:no-cache
我可以通过"手动"修改标题:
<%response.addHeader("Cache-Control","no-cache");%>
但是,是否有一种"不错"的方法可以使JSP解释器在服务器响应中返回此标头行?
(我检查了<%@ page ...%>指令。似乎没有类似的东西。)
解决方案
如果我们使用的是servlet,那么我认为我们在问题中发布的内容将是正确的方法。我不知道在JSP中有任何方法可以做到这一点。
<?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页面发送此消息。
IIRC某些浏览器在某些情况下可能会忽略缓存控制设置。 "安全"的解决方法是始终获取具有新查询字符串变量(如时间)的页面(甚至是AJAX块)。
还添加
response.addHeader("Expires","-1"); response.addHeader("Pragma","no-cache");
到标题并尝试一下。