1.什么是session:
當用戶打開瀏覽器,訪問某個網站的時候,服務器就會在服務器的內存為該瀏覽器分配一個內存空間,該空間被這個瀏覽器獨占,這個空間就是session空間。
該空間中的數據默認存在時間為30min,可以修改(session.setMaxInactiveInterval(int seconds))
2.session可以用來做什么?
(1)可以用作網上商城的購物車
(2)保存登錄用戶的信息
(3)將某些數據放在session中,供同一用戶的各個頁面使用(共享數據)
(4)防止用戶非法登錄到某個頁面
3.session的使用:
(1)得到session
servlet中:HttpSession hs = request.getSession(true);
jsp中:session是一個內置對象,可以直接使用
(2)向session添加屬性:
servlet中:hs.setAttribute(String name,Object value)
jsp中:session.setAttribute(String name,Object value)
(3)從session得到某個屬性:
servlet中:hs.getAttribute(String name)
jsp中:session.getAttribute(String name)
(4)從session中刪除某個屬性:
servlet中:hs.removeAttribute(String name)
jsp中:hs.removeAttribute(String name)
4.session注意事項:
(1)session默認存在時間是30分鍾,在tomcat的web.xml中的<session-out>可以修改
(2)上述默認時間指的是“發呆時間”,不是累計時間,就是不訪問它的時間超過30分鍾就會被回收,期間訪問了它的話這個時間就會重新計算
(3)當某個瀏覽器訪問服務器時,服務器會給它一個唯一的session id,通過id來區分不痛的瀏覽器
(4)因為session要占用服務器內存,因此在迫不得已的情況下才使用(一般使用:保存用戶信息,保存購物車)