0
我正在寫一個JSP頁面,在註銷的時候我會使session失效。但問題是當我點擊後我可以訪問前一頁。如何避免它。在我做了一些互聯網搜索之後,我知道這是因爲瀏覽器的緩存。任何人都可以幫我解決這個問題嗎?如何在點擊瀏覽器後退按鈕時使會話失效並阻止訪問?
我正在寫一個JSP頁面,在註銷的時候我會使session失效。但問題是當我點擊後我可以訪問前一頁。如何避免它。在我做了一些互聯網搜索之後,我知道這是因爲瀏覽器的緩存。任何人都可以幫我解決這個問題嗎?如何在點擊瀏覽器後退按鈕時使會話失效並阻止訪問?
您必須顯式設置響應頭,並讓瀏覽器知道不要緩存這些頁面。
設置響應頭下面的這不應該後退按鈕:
response.setHeader("Cache-Control","no-cache,no-store,must-revalidate");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires", 0);
甚至更好的辦法的點擊顯示所有JSP頁面將設置noCacheFilter
通過設置防止jsp頁面的緩存篩選* .jsp文件象下面這樣:
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expiresponse", 0);
chain.doFilter(request, response);
}
,並添加該過濾器映射*.jsp
文件裏
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>com.abcd.NoCacheFilter</filter-class> //Filter class path
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
然後當我點擊後退按鈕時會發生什麼?並且你在說我必須包含這個不想緩存的每個jsp。但是當我們登錄時,我們想瀏覽很多其他頁面,並且我已經在很多頁面上註銷。我只想在登出時我不想讓前一頁的訪問insted想要顯示messege「再次登錄」 – Raghu 2014-10-16 10:40:43
通過添加上面的響應標題,您將不會面臨後退按鈕頁面加載和重定向到問題再次登錄頁面,你必須在你的登錄過濾器或任何你用來驗證用戶身份的東西中進行管理。 – 2014-10-16 10:45:26
謝謝你。 。它似乎爲我工作,請告訴我如何爲所有jsp映射過濾器。 – Raghu 2014-10-16 11:04:39