我遇到了当前正在处理的网站的问题。如何完全禁用Tomcat缓存?
我们正在尝试使Facebook连接评论部件。每当我们发出一个响应200 OK状态的新请求时,这个小部件就会加载。但是当它返回一个304 Not Modified时,这个小部件将不会加载。
这一切都指出了缓存问题。我尝试了changin context.xml
<Context cachingAllowed="false">
这似乎没有工作。有小费吗?
我遇到了当前正在处理的网站的问题。如何完全禁用Tomcat缓存?
我们正在尝试使Facebook连接评论部件。每当我们发出一个响应200 OK状态的新请求时,这个小部件就会加载。但是当它返回一个304 Not Modified时,这个小部件将不会加载。
这一切都指出了缓存问题。我尝试了changin context.xml
<Context cachingAllowed="false">
这似乎没有工作。有小费吗?
看来问题出在客户端浏览器缓存它,请尝试追加一个随机数到您的请求。像__rnd__= Math.random()
这似乎没有工作。有小费吗?
的cachingAllowed
属性实际上配置服务器端缓存,没有你似乎期望的客户端缓存。
客户端缓存将通过适当的响应头来完成。要完全禁止对特定资源的客户端缓存,你需要创建一个Filter
监听所需url-pattern
,并至少具有doFilter()
方法内以下行:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
的response
在这里顺便说一下HttpServletResponse
这是从doFilter()
方法的第二个参数铸造出来的。
不要忘记清除客户端缓存(因此,在webbrowser配置里面)之前测试这一切:)