Servlet總結03——會話跟蹤

(一)會話跟蹤機制

java Servlet使用session來跟蹤和管理會話內的狀態。利用session,服務器可以把一個客戶的所有請求聯繫起來,並記住客戶的操作狀態。

當客戶第一次連接到服務器時,服務器爲其建立一個session對象,並分配給客戶一個唯一的標識(sessionID),以後客戶每一次請求都要將這個標識一起提交。

服務器根據這個特定的標識找到特定的session對象,讀取或者記錄用戶的信息。

有三種機制用於會話跟蹤:

1)SSL

2)Cookies

3)URL重寫

 

(二)Cookies——小甜餅

Cookies的種類繁多:Session Cookie 、 Persitent Cookie、Secure Cookie、HttpOnly Cookie、Third-part Cookie等。

這裏我們重點關注Session Cookie。

A session cookie only lasts for the duration of users using the website. A web browser normally deletes session cookies when it quits. A session cookie is created when no Expires directive is provided when the cookie is created.【from WIKI】

從(一)裏面可以知道,會話跟蹤機制其實就是服務端給用戶一個“會員卡”,用戶每次請求時攜帶這張卡片。

將Cookies應用於會話跟蹤機制,其實就是用Cookie記錄會員卡號,那麼Cookie理所當然就成爲了“會員卡”。

 

(三)URL重寫

瀏覽器有時候會拒絕甜餅(禁用Cookie),這時可以使用URL重寫機制來完成了。

URL重寫就是在url中附加標識客戶的sessionID,servlet容器負責解析出sessionID,根據sessionID將請求與特定的session關聯。

 

(四)Java Servlet API的會話跟蹤

javax.servlet.http.HttpSession接口封裝了session的概念,具體的Servlet容器提供了這個接口的實現。

其方法包括:

note:session只是服務端一種會話跟蹤的方式,其依賴於Cookie機制(或者URL重寫中的sessionID,原理一致!)。

java servlet中的HttpSession接口實現了這個思想,交由具體的容器實現。

javax.servlet.http.Cookie類的主要方法如下。

在servlet規範中,用於會話跟蹤的Cookie的名字是JSESSIONID(該Cookie保存識別不同用戶session的id),他通常保存在瀏覽器內存中,

當瀏覽器關閉後就刪除,不能在多個瀏覽器間共享。

同樣在servlet規範中,url重寫機制中傳遞session id的參數名稱爲:jsessionid


轉載地址:http://www.cnblogs.com/huangfox/archive/2011/10/21/2220370.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章