[英]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.