[英]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.