簡體   English   中英

如何在java中創建登錄和注銷會話

[英]How to create session for login and logout in java

這是我在登錄頁面中編寫的代碼

HttpSession session = request.getSession(true);
session.setAttribute("name", user1);        
String nme=(String) session.getAttribute("name");

而且,這是logout.jsp的代碼

<% request.getSession().invalidate();

要么

if(session!=null){
   session=null;
}

要么

 request.getSession().setAttribute("name", null); //it just assigns null to attribute

 response.sendRedirect("login.jsp");
 %>

會話正在創建,但在注銷按鈕工作后....我希望后退按鈕不起作用。

要從當前會話注銷或無效,您可以使用正確的代碼,如下所示。

request.getSession().invalidate();

現在,在您點擊瀏覽器的后退按鈕后,它正在從緩存中加載頁面。 因此,為了處理這種情況,你可以做2件以下的事情。

  1. 使用HTML 5的History API處理瀏覽器歷史History這樣當您單擊后退按鈕時,它會在您操作它時轉到所需的位置。

  2. 建議用戶關閉頁面,如一般安全網站在成功登出會議后所做的那樣,如銀行網站和金融網站。

或者,您可以在servlet容器/服務器端編寫和配置攔截器類,以通過在響應中添加以下參數來操作緩存。

        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "-1");

希望這可以幫助你。

只需從會話中刪除該屬性,並檢查它是否存在.....

request.getSession.removeAttribute("name")

檢查如下:

if(request.getSession.getAttribute("name")==null){

}

您的問題不在於會話,因為它不會在已加載的頁面中使用,只是從緩存中加載(后退按鈕功能)

考慮在您的客戶端代碼中使用localtion.href.replace

localtion.href.replace(url):將當前文檔替換為提供的URL。 與assign()方法的不同之處在於,在使用replace()之后,當前頁面將不會保存在會話歷史記錄中,這意味着用戶將無法使用“后退”按鈕導航到該頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM