簡體   English   中英

從 JSP 或 Javascript 中的瀏覽器緩存中清除圖像

[英]Clear image from browser cache in JSP or Javascript

我正在為一所大學開發一個JSP Web 應用程序,並且在用戶頁面中顯示了人員圖片。

用戶注銷后,如何從網絡瀏覽器緩存中清除此圖片?

使用 JSP 或 javascript

那是不可能的。 您最好的選擇是完全禁用相關資源的緩存。 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);

和 map 在覆蓋感興趣圖像的 URL 圖案上。


編輯:如果您實際上不關心瀏覽器緩存中存在的圖像,但您的具體問題是不同的登錄用戶基本上使用相同的圖像 URL 因為它是由某個 servlet 動態提供的,那么您也可以解決它通過為每個獨特的用戶提供獨特的圖像 URL。 例如,您可以通過將用戶 ID 作為請求參數附加到圖像 URL 或將其包含在圖像路徑中來執行此操作。

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

或者

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

這個問題顯然沒有區分客戶端代碼和服務器端代碼。

一方面,當用戶關閉 web 瀏覽器時,您無法清除緩存,因為瀏覽器已經消失。

也就是說,您可以跟蹤圖像更改和 append 圖像 URL 的編號 - 這將強制 web 瀏覽器忽略緩存並加載新圖像。

例子:

File filename = new File("/path/to/profile.png");
long t = filename.lastModified();
System.out.print("<img src='profile.png?"+t+"'/>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM