JSP/Servlet 會話跟蹤的四種方法

轉自 http://haorui215.javaeye.com/blog/348176

JSP/Servlet 會話跟蹤的四種方法

由於HTTP事務是無狀態的,因此必須採取特殊措施是服務器在系列事務期間能繼續確定和記住特定用戶。
實現此功能有兩種基本方式:
一是讓客戶端記住所有會話的相關數據並在必要時發回到服務器
二時服務器保持所有數據,對其設置一個標識,讓客戶端記住該標識
第二種方法更好,實現它的技術有四種:
用隱藏字段(<input type="hidden">):非常適合步需要大量數據存儲的會話應用。
具體使用??

URL重寫:URL可以在後面附加參數,和服務器的請求一起發送,這些參數爲名字/值對。如:http://server/mypage.jsp?name1=value1&name2=value2.JSP 頁面檢索請求時,可以如下讀取參數值,String value1=request.getParameter("name1");String value2=request.getParameter("name2");。此技術可以確保所有瀏覽器中有效,但是保存大量數據,此技術會降低性能。而且這樣的URL是不安全的,不過對於簡單應用,URL重寫是可信賴的,也很容易實現。注意,通常不會手工向超級鏈接URL中附加參數,更常見的是使用 HTTP會話API執行URL重寫,這樣,只要附加一個會話ID。

Cookie:一個Cookie是一個小的,已命名數據元素。服務器使用SET-Cookie頭標將它作爲HTTP響應的一部分傳送到客戶端,客戶端被請求保存Cookie值,在對同一服務器的後續請求使用一個Cookie頭標將之返回到服務器。與其它技術比較,Cookie的一個優點是在瀏覽器會話結束後,甚至在客戶端計算機重啓後它仍可以保留其值。
具體使用方法??

Session:
使用setAttribute(String str,Object obj)方法將對象捆綁到一個會話(在會話中可以保存任意類型的對象,但因爲會話可能被序列化,最好讓會話對象實現 java.io.Serializable接口;
使用getArrtibute(String str)方法從一個會話中檢索對象;
使用removeAttribute(String str)方法從一個會話中銷燬對象;
使用setMaxInactiveInteral()方法設置會話的有效期,默認爲30分鐘(在web.xml中配置);
使用invalidate()方法將會話所有捆綁的對象解縛。

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