如何完全禁用Tomcat缓存?

fle*_*rra 5 jsp tomcat facebook web-applications

我正在使用当前正在处理的网站遇到问题.

我们正试图让facebook连接评论小部件.每次我们发出以200 OK状态响应的新请求时,窗口小部件都会加载.但是当它返回304 Not Modified时,小部件不会加载.

这一切都指出了一个缓存问题.我试着改变了context.xml

<Context cachingAllowed="false">
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.有小费吗?

Bal*_*usC 15

这似乎不起作用.有小费吗?

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.
Run Code Online (Sandbox Code Playgroud)

response通过该方式是在这里HttpServletResponse它被铸造从第二回ServletResponse的论点的doFilter()方法.

在测试这一切之前,不要忘记清除客户端缓存(因此,在webbrowser配置中):)


Tej*_*eni 0

问题似乎出在客户端浏览器缓存它,请尝试在您的请求中附加一个随机数。喜欢__rnd__= Math.random()