程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Session機制使用的詳細講解

Session機制使用的詳細講解

編輯:關於JAVA

session的引入:

鑒於http是無狀態的協議,當完成客戶端和服務器的傳遞信息後,就斷開之間的聯系,這樣就造成了怎麼樣在幾個頁面之間傳遞信息

比如客戶端信息,或者假如是寫一個購物程序,就要記得購物車裡面的信息,JSP提供了四種方法來跟蹤客戶的狀態

1:建立匿名的表格字段

2:使用url傳遞

3:使用持久化的cookIEs

4:使用session 的會話機制

相對於安全級別來說第四種最高了,session是指在一段時間內客戶端和服務器之間的一連串的相關的交互過程。

在一個session中客戶可能會訪問不同的服務器資源,也可能會多次訪問同一個頁面。

sevlet容器為httpsession分配一個唯一的標識,成為sessionid,容器會把sessionid放在客戶端的cookIEs中,每次客戶端發出http請求的時候,servlet可以把httdivquest對象中讀取sessionid。然後更具sessionid找到對應的session對象,從而取得客戶端狀態信息。

session的方法:

getid()取得session的id號。

setattribuate(string name,object obj)保存一對name、value對象

getattribute(String name)獲取name的屬性

isnew()判斷session時候是新建的。

廢除sesion對象的方法"

1:setmaxinactival()通過設置最大不活動時間

2:關閉客戶端浏覽器

3:調用session的invalidate()方法

如果客戶端不支持cookIEs時,那麼session的id號就不能保存,那麼在Java API中提出了一種跟蹤session的方法,容器可以重寫客戶請求的url,把sessionid添加倒url中response.encodeurl("**.JSP");

session的高級主題:session的持久化當一個session開始時,容器會為之創建一個session對象,但是如果又10000個人同時登錄呢,這時就要把信息從內存中轉移到文件系統中或者數據庫中,當需要訪問的時候再調用倒內存中,提高內存的利用率,也便於恢復數據(故障會丟失信息)。

從內存到文件系統活著數據庫,采用了java語言的對象序列化技術,把對象從文件活著數據庫中提取到內存中使用了Java語言提供的對象反序列化技術。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved