首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HttpSession 與 HttpServletRequest.getSession() 差異解析

     編輯:程式設計綜合問答

Servlet 開發中,常見兩種取得 Session 的方式:直接注入 HttpSession session,或從 HttpServletRequest request.getSession() 取得。兩者有何不同?

核心差異

  1. 參數控制:request.getSession(boolean create) 可傳入 false 避免自動建立新 Session;直接注入則由容器決定。
  2. 生命週期:Session 綁定於瀏覽器會話(預設 30 分鐘無操作逾時),關閉瀏覽器不銷毀 Session,僅刪除客戶端 JSESSIONID Cookie;換瀏覽器或清 Cookie 則視為新會話。
  3. Request 失效不影響 Session:Request 物件隨單次請求結束銷毀,但 Session 仍保留在伺服器,直到逾時或手動 invalidate()。

最佳實務

優先使用 request.getSession(false) 檢查現有 Session,避免匿名用戶產生大量垃圾 Session;需建立時再呼叫 request.getSession(true) 或無參版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved