Session-VS-Cookie(會話管理)
一、會話:
瀏覽器和服務器交互的一次過程,會話內容可以保存在服務端(內存),也可以保存在客戶端(磁盤)
會話(Session)跟蹤是Web程序中常用的技術,用來跟蹤用戶的整個會話。
常用的會話跟蹤技術是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務器端
記錄信息確定用戶身份。
二、Session:
JSP利用servlet提供的HttpSession接口來識別一個用戶,存儲這個用戶的所有訪問信息。默認情況下,JSP允許會話跟蹤,一個新的HttpSession對象
將會自動地爲新的客戶端實例化。
Session保存原理:
每次打開瀏覽器訪問jsp時都會產生一個新的session對象。此時利用session保存數據的作用範圍是從瀏覽器打開到關閉,如果關閉瀏覽器,
該session對象還會存在於服務器端,一直等到session超時,服務器纔會把該session給刪除,所以一般情況下,使用session時儘量只保存簡單的少量
的數據,否則容易造成內存溢出。
應該設置session的存活時間:(默認存活時間是1800)
方式一:session.setMaxInactiveInterval()
方式二:在web.xml中設置
<!-- 設置session超時時間 ,單位爲分鐘 -->
<session-config>
<session-timeout>5</session-timeout>
</session-config>
Session可以用於做用戶登錄和退出,如下:
或
三、cookies:
網絡服務器可以指定一個唯一的session ID作爲cookie來代表每個客戶端,用來識別這個客戶端接下來的請求。
不屬於jsp內置愛對象,可以將會話信息保存在客戶端磁盤裏面
Cookies的使用步驟:
1、實例化Cookie對象,通過構造方法以鍵值對的形式保存會話信息
2、設置cookie的存活時間
3、利用response對象將cookie對象寫入到客戶端磁盤中
4、利用request對象讀取客戶端磁盤上cookie對象
四、session和cookie的區別:
1、Session保存數據在服務端,cookie保存數據在客戶端
2、cookie對象中存儲着session的id