天天看點

Session會話技術 - JavaWeb

​​JavaWeb入門​​

一.概念

  1. Session是一個接口(HttpSession)
  2. Session是會話. 它是用來維護一個用戶端和伺服器之間關聯的一種技術.
  3. 每個用戶端都有自己的一個Session會話
  4. Session會話中, 我們經常用來儲存使用者登陸之後的資訊.

二.Session應用

2.1 Session建立

// 第一次則Session則新建立, 否則擷取Session對象
HttpSession session = req.getSession();
// 判斷目前Session會話, 是否是新建立的
boolean isNew = session.isNew();
// 擷取Session會話的唯一辨別 id
String id = session.getId();      

2.2 Session域

// 往Session域對象中存值
req.getSession().setAttribute("key", "value");

// 擷取Session
Object attribute = req.getSession().getAttribute("session");
// 将擷取的Session值傳回給用戶端 
resp.getWrite().write("從Session中擷取的session資料是:" + attribute);
// 将輸出 '從Session中擷取的session資料是:value'      

2.3 Session生命周期

public void setMaxInactiveInterval(int interval)

指定在 servlet 容器使此會話失效之前用戶端請求之間的時間間隔,以秒為機關。負數時間訓示會話永遠不會逾時。

該方法是給指定頁面設定sesssion的逾時間隔時長

public void invalidate()

使此會話無效,然後取消對任何綁定到它的對象的綁定。

public int getMaxInactiveInterval()

傳回 servlet 容器在用戶端通路之間将使此會話保持打開狀态的最大時間間隔,以秒為機關。在此間隔之後,servlet 容器将使會話無效。可使用 ​

​setMaxInactiveInterval​

​ 方法設定最大時間間隔。負數時間訓示會話永遠不會逾時。

Session預設的逾時時長是30分鐘

如果修改預設值的話, 在web工程中修改​

​web.xml​

​檔案,

<session-config>

<session-timeout>20</session-timeout>

</session-config>

! 注意 ! : session的逾時指的是: 用戶端兩次請求的最大間隔時長

如果期間再次發送請求, 則會重新計算間隔時長.

浏覽器和Session的關聯