當點擊後退按鈕時,默認情況下浏覽器不是從Web服務器上重新獲取頁面,而是從浏覽器緩存中載入頁面,那麼怎麼才能讓HTML和JSP頁面不緩存呢?下面為大家介紹下比較詳細的解決方法
用戶退出後,如果點擊浏覽器上的後退按鈕,Web應用將不能正確保護受保護的頁面——在Session銷毀後(用戶退出)受保護的JSP頁重新在浏覽器中顯示出來。
然而,如果用戶點擊返回頁面上的任何鏈接,Web應用將會跳轉到登陸頁面並提示Session has ended.Please log in.
上述問題的根源在於大部分浏覽器都有一個後退按鈕。
當點擊後退按鈕時,默認情況下浏覽器不是從Web服務器上重新獲取頁面,而是從浏覽器緩存中載入頁面。
基於Java的Web應用並未限制這一功能,在基於PHP、ASP和.NET的Web應用中也同樣存在這一問題。
幸運的是,HTTP頭信息“Expires”和“Cache-Control”為應用程序服務器提供了一個控制浏覽器和代理服務器上緩存的機制。
HTTP頭信息Expires告訴代理服務器它的緩存頁面何時將過期。
HTTP1.1規范中新定義的頭信息Cache-Control可以通知浏覽器不緩存任何頁面。
當點擊後退按鈕時,浏覽器重新訪問服務器已獲取頁面。
如下是使用Cache-Control的基本方法:
1) no-cache:強制緩存從服務器上獲取新的頁面
2) no-store: 在任何環境下緩存不保存任何頁面
保險起見,對html頁面和jsp最好都加一些設置
對於HTML網頁,加入:
對於JSP頁面,加入:
就可以了。