2015-04-01 45 views
3

當用戶點擊瀏覽器的後退按鈕時,我的應用程序(使用JSP/servlet構建)面臨着問題。如何以這種方式編碼servlet它會檢測瀏覽器的後退按鈕事件並執行任何操作。我不允許使用Javascript。如何在不使用javascript的情況下禁用後退按鈕瀏覽器我想使用servlet

+1

不要試圖混淆內置瀏覽器按鈕的行爲。首先,如果瀏覽器按鈕沒有按照他們所期望的那樣做,它會導致非常差的用戶體驗。 – JonK 2015-04-01 10:22:32

回答

1

顯然這些頁面是從瀏覽器緩存中請求的。您需要禁用有問題頁面的客戶端緩存。你可以通過創建一個Filter來監聽你想禁用緩存的頁面的url模式,例如* .jsp。在doFilter()方法中執行以下操作:

HttpServletResponse httpres = (HttpServletResponse) response; 
httpres.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
httpres.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
httpres.setDateHeader("Expires", 0); // Proxies. 
chain.doFilter(request, response); 
1
  1. Java代碼將在服務器端執行。
  2. Javascript在客戶端運行。

無法在Java中禁用瀏覽器後退按鈕,但是您可以選擇發生此類事件時要執行的操作。您可以選擇顯示相同的頁面。

+0

即時使用Java代碼:window.history.forward(); 函數noBack(){ \t window.history.forward(); \t} 但它運行得非常慢,它返回頁面,然後重新加載當前頁面,我們可以防止執行該腳本代碼,這就是爲什麼我想要通過Java代碼進行編碼和修復的時間段。 – 2015-04-01 11:50:04

+0

你可以爲它編寫過濾器。 – 2015-04-02 08:58:46

相關問題