在JSP或Javascript中清除浏览器缓存中的图像

wsh*_*afa 4 javascript jsp

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

用户退出后,如何从Web浏览器缓存中清除此图片?

使用JSP或javascript

Bal*_*usC 6

那是不可能的.最好的办法是完全禁用相关资源的缓存.创建一个过滤器,在该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);
Run Code Online (Sandbox Code Playgroud)

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


编辑:如果你真的不关心浏览器缓存中存在的图像,但你的具体问题是不同的登录用户基本上使用相同的图像URL,因为它是由一些servlet动态提供的,那么你也可以解决它通过为每个唯一用户提供唯一的图像URL.您可以通过将用户ID作为请求参数附加到图像URL,或将其包含在图像的路径中来完成此操作.

<img src="profileimage?id=${user.id}" />
Run Code Online (Sandbox Code Playgroud)

要么

<img src="profileimage/${user.id}" />
Run Code Online (Sandbox Code Playgroud)