java - 如何防止 Servlet 的结果被缓存?

标签 java caching servlets

如何停止使用 Servlet 在浏览器中缓存页面?

如果我在登录时按下浏览器的后退按钮,我希望 session 过期。

最佳答案

永久禁用缓存。

  // Set to expire far in the past.
  response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");

  // Set standard HTTP/1.1 no-cache headers.
  response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");

  // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
  response.addHeader("Cache-Control", "post-check=0, pre-check=0");

  // Set standard HTTP/1.0 no-cache header.
  response.setHeader("Pragma", "no-cache");

清除客户端缓存不会立即使 session 过期,而是清除浏览器中的 session cookie。要使 session 立即过期,需要在服务器端jsp或servlet中明确指定。

// use session invalidate
session.invalidate();

关于java - 如何防止 Servlet 的结果被缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139785/

相关文章:

java - java servlet中如何处理json字符串

java - 看似简单的 FNV1 哈希实现导致大量冲突

java - @Inject 和 java.security.Provider 组合是否给出了实例的范围配置?

java - 如何在不同的机器上执行bat文件并在Java中获取输出

java - 用汉字声明字符串

caching - smarty 缓存和登录状态

java - Ehcache 只对 Hibernate 中的一张表起作用

caching - SSRS 报告不通过 URL 访问刷新

java - Web.xml - 不将特定文件或 url 重定向到 servlet

forms - 单击后退按钮后如何停止重新提交表单