2017-07-21 239 views
0

在我的每一頁中,都有一個註銷選項。當用戶點擊這個註銷選項時,他們會註銷session.invalidate();。當我按下後退按鈕時,即使會話失效,我也會得到前一頁包含輸入標籤中的所有內容。如何解決此問題。我嘗試window.location.reload(),和許多其他選項,但它不在這裏工作。\ My website是這樣的。和憑證。 [email protected]並且合格爲Amal123註銷後退按鈕後重新加載jsp頁面點擊

+0

嘗試'window.location.href ='/''你應該參考重新加載頁面的基本路徑頁面 – mtizziani

+0

頁面無限重新加載。 –

+1

[防止用戶在註銷後看到先前訪問的受保護頁面]的可能重複(https://stackoverflow.com/questions/4194207/prevent-user-from-seeing-previously-visited-seitedd-page-after-logout) –

回答

0

您可以將此代碼複製並粘貼到網站的每個頁面中,這會清除緩存頁面。

<% 
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Cache-Control","no-store"); 
response.setHeader("Pragma","no-cache"); 
response.setDateHeader ("Expires", 0); 

if(session.getAttribute("some_token")==null) 
    response.sendRedirect("login/login.html"); 

%> 

在註銷您必須無效會話,所以當你點擊返回,將在session檢查some_token屬性值,如果不存在,將您重定向到login頁。但記住登錄後,您在會話中設置some_token屬性。

+0

謝謝。這種方法解決了我的問題。 –

+0

高興地幫助你! :) –

+0

我怎樣才能在PHPalso中做到這一點? –

0

在所有隻有在會話處於活動狀態時纔打開的頁面之前,必須先放置一個過濾器,以便在頁面打開之前檢查會話。

而在登錄時,您必須使當前會話無效。

然後您就可以按下返回鍵,但在登錄時不能執行任何funtionality

+0

我不想在註銷後再次看到該頁面。我正在檢查會話是否爲空,如果它爲空,它將被重定向到登錄頁面。 –

0

您可以使用一個會話屬性...例如,設置一個變量的值,以用戶名如: HTML

<form name="login" action="/login.jsp" method="post" > 
    <input type="text" name="username" > 
    <input type="password" name="password" > 
<input type="submit" > 

JSP:

String userName=request.getParameter("username"); 
request.getSession().setAttribute("username",userName); 

現在在每個頁面上,添加該代碼

<% if(request.getSession().getAttribute("username")==null) response.sendRedirect("index.jsp");%>

此外,在註銷時不要忘記刪除會話屬性。

request.getSession().removeAttribute("username"); 

試試吧,讓我知道。

+0

在註銷時,會話已經失效,爲什麼我應該再次刪除該屬性?同樣在每個頁面中,我都檢查會話是否爲空,它將被重定向到登錄頁面。每次檢查時,頁面都需要重新加載。 –

+0

同樣的問題在這個問題,檢查答案... https://stackoverflow.com/questions/24677949/why-session-is-not-null-after-session-invalidate-in-java –

+0

爲此,我必須重新加載頁面。請檢查問題。 –

相關問題