JavaWeb入門
一.概念
- Session是一個接口(HttpSession)
- Session是會話. 它是用來維護一個用戶端和伺服器之間關聯的一種技術.
- 每個用戶端都有自己的一個Session會話
- 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的逾時指的是: 用戶端兩次請求的最大間隔時長
如果期間再次發送請求, 則會重新計算間隔時長.