1. 程式人生 > 其它 >0455-分發餅乾

0455-分發餅乾

一次會話:瀏覽器第一次給伺服器資源傳送請求,會話建立,直到有一方斷開為止

Session:伺服器端會話技術,在一次會話的多次請求間共享資料,將資料儲存在伺服器端的物件中。

用法:

獲取HttpSession物件:


HttpSession session = request.getSession();

Object(預設型別)getAttribute (String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)

考試判斷題:

1. 當客戶端關閉後,伺服器不關閉,兩次獲取session是否為同一個? * 預設情況下。不是

* 如果需要相同,則可以建立Cookie,鍵為JSESSIONID,設定最大存活時間,讓cookie持久化儲存 Cookie c = new Cookie("JSESSIONID",session.getId()); c.setMaxAge(60*60); response.addCookie(c);

原因:

客戶端不關閉,伺服器關閉後,兩次獲取的session是同一個嗎?
* 不是同一個,但是要確保資料不丟失。tomcat自動完成以下工作
* session的鈍化:
* 在伺服器正常關閉之前,將session物件系列化到硬碟上
* session的活化:
* 在伺服器啟動後,將session檔案轉化為記憶體中的session物件即可。

2.session什麼時候被銷燬

伺服器關閉
session物件呼叫invalidate() 自殺方法 。
session預設失效時間 30分鐘
選擇性配置修改 web.xml下的
<session-config>
<session-timeout>30</session-timeout>
</session-config>

3.

session與Cookie的區別:
1. session儲存資料在伺服器端,Cookie在客戶端
2. session沒有資料大小限制,Cookie有
3. session資料安全,Cookie相對於不安全