程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 會話(Session)數據到底是什麼?

會話(Session)數據到底是什麼?

編輯:J2EE
通常,Web 環境中的會話是指用戶/客戶機的 Web 浏覽器和一個特定的 Web 服務器之間的一組交互。會話從最初浏覽器調用 Web 服務器的 URL 開始,到 Web 服務器結束會話,這個會話“超時”,或當用戶關閉浏覽器時結束。會話數據是指在永久保存之前用戶提供的在多個頁面上使用的信息。會話數據和事務數據(Transaction data)之間的區別在於,會話數據是暫時的 - 只用於一組相連接的頁面 - 而事務數據是用於永久的存儲。會話數據通常在一組 Web 頁面之後被轉換成事務數據(當用戶選擇“提交”事務,或為購物車“付帳”時)。 考慮下面的情節:我們的用戶 Rob 輸入了他最喜歡的(假定的)酒類購物站點的 URL,www. winesRus.com。Rob 浏覽頁面尋找要買的酒,並在購物車裡添加了一些。與站點的所有交互發生在一個由 www.winesRus.com Web 服務器控制的單一會話中。當 Rob 逐屏浏覽,購買更多酒時,他要購買的物品的信息、他的地址,還有 Rob 提供的其它任何信息都被保存為會話數據。站點給他要購買的物品定價,並請求他確認。當 Rob 確認時,會話數據被用來執行購買事務,然後數據變成永久性的。 Servlet 與特定的 HTTP URL 一一對應,這很象傳統的 Web 編程中每個 URL 要有自己的 CGI 腳本一樣。例如,http://winesRus/servlet/purchaseWinesServlet 腳本對應於 http://winesRus.com/servlet/purchaseWinesServlet。 就象 CGI 腳本一樣,servlet 自己是無狀態的。和 CGI 腳本相似,servlet 也從 HTTP 參數和 Html 表單獲得客戶機數據。在一個特定的應用服務器上,每個 servlet 類的一個單獨實例為它的特定 URL 處理所有的 doGet() 和 doPost() 請求。每一個 HTTP 請求都在一個運行該實例的 service() 方法的唯一線程上處理。因為每個 servlet 實例都是共享資源,您不能在 servlet 本身存儲客戶機會話數據(比如顧客的購物車)。會話數據必須存儲在 servlet 之外。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved