在servlet中,session是封裝在javax.servlet.http.HttpSession這個接口中的,這個接口是構建在cookie或者URL重寫的基礎上,要得到一個HttpSession的實例,就可以通過HttpServletRequest的getSession()方法來獲得
HttpServletRequest有兩個重載的getSession()方法,一個接受一個boolean的類型的值,另一個不帶任何參數,getSession()方法和getSession(true)方法功能一樣,就是如果對應的客戶端已經產生過一個session,那麼就會返回這個舊的session,否則,這個方法將會產生一個session ID並且和對應的客戶端綁定在一起,而如果getSession(false)表示如果對應的客戶端已經有對應的session,那麼返回這個舊的session,否則不會產生新的session。可以使用HttpSession對象上的isNow()方法來判定這個session是否為新建的
HttpSession常用方法
public void setAttribute(String name,Object value)
將value對象以name名稱綁定到會話
public object getAttribute(String name)
取得name的屬性值,如果屬性不存在則返回null
public void removeAttribute(String name)
從會話中刪除name屬性,如果不存在不會執行,也不會拋處錯誤.
public Enumeration getAttributeNames()
返回和會話有關的枚舉值
public void invalidate()
使會話失效,同時刪除屬性對象
public Boolean isNew()
用於檢測當前客戶是否為新的會話
public long getCreationTime()
返回會話創建時間
public long getLastAccessedTime()
返回在會話時間內web容器接收到客戶最後發出的請求的時間
public int getMaxInactiveInterval()
返回在會話期間內客戶請求的最長時間為秒
public void setMaxInactiveInterval(int seconds)
允許客戶客戶請求的最長時間
ServletContext getServletContext()
返回當前會話的上下文環境,ServletContext對象可以使Servlet與web容器進行通信
public String getId()
返回會話期間的識別號
一個保存信息到session的簡單例子
sessionlogin.html