當點擊后退按鈕時,默認情況下瀏覽器不是從Web服務器上重新獲取頁面,而是從瀏覽器緩存中載入頁面,那么怎么才能讓HTML和JSP頁面不緩存呢?下面為大家介紹下比較詳細的解決方法
用戶退出后,如果點擊瀏覽器上的后退按鈕,Web應用將不能正確保護受保護的頁面——在Session銷毀后(用戶退出)受保護的JSP頁重新在瀏覽器中顯示出來。
然而,如果用戶點擊返回頁面上的任何鏈接,Web應用將會跳轉(zhuǎn)到登陸頁面并提示Session has ended.Please log in.
上述問題的根源在于大部分瀏覽器都有一個后退按鈕。
當點擊后退按鈕時,默認情況下瀏覽器不是從Web服務器上重新獲取頁面,而是從瀏覽器緩存中載入頁面。
基于Java的Web應用并未限制這一功能,在基于PHP、ASP和.NET的Web應用中也同樣存在這一問題。
幸運的是,HTTP頭信息“Expires”和“Cache-Control”為應用程序服務器提供了一個控制瀏覽器和代理服務器上緩存的機制。
HTTP頭信息Expires告訴代理服務器它的緩存頁面何時將過期。
HTTP1.1規(guī)范中新定義的頭信息Cache-Control可以通知瀏覽器不緩存任何頁面。
當點擊后退按鈕時,瀏覽器重新訪問服務器已獲取頁面。
如下是使用Cache-Control的基本方法:
1) no-cache:強制緩存從服務器上獲取新的頁面
2) no-store: 在任何環(huán)境下緩存不保存任何頁面
保險起見,對html頁面和jsp最好都加一些設置
對于HTML網(wǎng)頁,加入:
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="0">
對于JSP頁面,加入:
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
%>
就可以了。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。