客戶機(jī)和服務(wù)器之間的有狀態(tài)交互可以在 Web 層或業(yè)務(wù)層上進(jìn)行管理。要在 Web 層上管理狀態(tài),我們使用與 HTTPsession API 結(jié)合的 servlet。要在業(yè)務(wù)層上管理狀態(tài),我們使用有狀態(tài)會(huì)話 EJB 組件。在接下來的章節(jié)里,我們將探究這兩種開發(fā)選項(xiàng)。
Web 層 Servlet 體系結(jié)構(gòu)的 HTTPSession API 允許應(yīng)用程序開發(fā)人員管理跨網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器交互(或會(huì)話)的狀態(tài)。HTTPSession 接口定義了 HTTPSession API 的核心功能。它為 J2EE 應(yīng)用程序提供了一種方法,使它可以識(shí)別跨多個(gè)頁面請(qǐng)求的單個(gè)客戶機(jī),以及將數(shù)據(jù)存儲(chǔ)在與那個(gè)客戶機(jī)相關(guān)聯(lián)的服務(wù)器上。通過該接口,servlet 容器創(chuàng)建和管理客戶機(jī)和服務(wù)器之間的會(huì)話。該會(huì)話由 HTTPSession 對(duì)象表示,它可以跨來自相同客戶機(jī)的多個(gè)連接和頁面請(qǐng)求持續(xù)存在一段特定的時(shí)間。Servlet 使用該接口來查看與處理有關(guān)會(huì)話的信息,如創(chuàng)建時(shí)間和上一次訪問會(huì)話的時(shí)間。該接口還允許 servlet 將對(duì)象綁定到會(huì)話,從而以一種跨多個(gè)連接(來自相同客戶機(jī))持續(xù)存在的方式將該信息與特定的客戶機(jī)進(jìn)行關(guān)聯(lián)。