HTTP 無狀態特性要求伺服器自行維持會話。Servlet API 提供 HttpSession 介面,以「名稱-值」對儲存屬性,核心方法:
setAttribute(String, Object):存入物件getAttribute(String):取出物件getMaxInactiveInterval() / setMaxInactiveInterval(int):讀寫逾時間隔(秒),-1 表永不逾時getLastAccessedTime():最後存取時間invalidate():手動銷毀 Session容器採用「逾時淘汰」機制:超過間隔無請求則自動銷毀 Session 釋放記憶體。預設逾時由容器定義(如 30 分鐘)。
新用戶首次請求建立 Session 時,容器透過 Set-Cookie 標頭發送唯一 Session ID(通常名為 JSESSIONID)。瀏覽器後續請求自動攜帶此 Cookie,容器據此關聯既有 Session。
三大痛點: