我正在为一所大学开发一个JSP Web 应用程序,在用户页面中显示了一张人员图片。

用户注销后,如何从网络浏览器缓存中清除此图片?

使用 JSP 或 JavaScript

最佳答案

那是不可能的。最好的办法是完全禁用相关资源的缓存。创建一个 filter,它在 doFilter() 方法中执行以下工作。

HttpServletResponse hsr = (HttpServletResponse) response;
hsr.setHeader("Cache-Control", "no-cache,no-store,must-revalidate");
hsr.setHeader("Pragma", "no-cache");
hsr.setDateHeader("Expires", 0);
chain.doFilter(request, response);

并将其映射到覆盖感兴趣图像的 URL 模式上。

编辑: 如果您实际上不关心浏览器缓存中存在的图像,但您的具体问题是不同的登录用户基本上使用相同的图像 URL,因为它是由某个 servlet 动态提供的,那么您可以还可以通过为每个唯一用户提供唯一的图像 URL 来解决它。例如,您可以通过将用户 ID 作为请求参数附加到图像 URL 或将其包含在图像路径中来实现。
<img src="profileimage?id=${user.id}" />

或者
<img src="profileimage/${user.id}" />

关于javascript - 从浏览器缓存中清除 JSP 或 Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6258552/

10-11 19:24
查看更多