簡體   English   中英

Java Web會話正在自動設置

[英]Java Web, sessions are being set automatically

我正在嘗試在我的java web項目中創建一個登錄過濾器。 問題是,當我調用request.getSession(false)時,返回的會話對象不為null,換句話說,會話處於活動狀態。 但我確信我沒有在我的代碼的任何其他地方調用getSession()。 即使我刪除此過濾器,它也不起作用。 如果我在網絡選項卡中打開我的瀏覽器開發工具,它會向我顯示一個jsessionid集。 它的會話是自動設置的嗎?

如果你想跟蹤“登錄用戶”,那么我認為你要找的是使用HttpSession跟蹤它,如下所示:

HttpSession session = request.getSession();
session.setAttribute("loggedInUser", userObject);

Ypu可以在需要時從會話中檢索它:

Object loggedInUser = session.getAttribute("loggedInUser");

然后,當用戶需要“注銷”時,從會話中清除存儲的用戶:

session.removeAttribute("loggedInUser");

在評論中回答你的問題What's the point to have a HttpSession class/api if i have to implement everything by myself? HttpSession表示與特定客戶端的對話,以便可以正確識別和處理來自同一客戶端的后續請求。 它根本不代表“登錄用戶”,這是域中的特定要求 - 並非所有服務都需要身份驗證。

最后,如果您需要有關何時創建JSESSIONID cookie的更多詳細信息,請閱讀此問題

暫無
暫無

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

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