我正在为一所大学开发一个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/