節(jié)省使用httpsession(此文引用于Effective Enterprise java:39)
基于html/http的應(yīng)用中,為了維護(hù)代表客戶端的瞬時狀態(tài),servlet容器提供了一種稱為會話空間的設(shè)施,被表示為HttpSession接口。這個思想本身是簡單而直接的,servlet程序員可以將任意的可序列化對象置于會話空間,而下一次,同一個用戶對同一個Web應(yīng)用的任何部分發(fā)出請求時,servlet容器將確保同樣的對象會處在HttpSession對象中。這使得servlet開發(fā)者可以為在服務(wù)器上的Web應(yīng)用在多個HTTP請求之間維護(hù)每個客戶端的狀態(tài)信息;
遺憾的是,這種機制并非完全免費的。首先,在服務(wù)器端為每個客戶端存儲數(shù)據(jù)將會減少該服務(wù)器上的可用資源,這意味著服務(wù)器的最大負(fù)載能力會成比例下降。這個算式很簡單:在會話空間中保存越多的數(shù)據(jù),機器能夠處理的會話就越少。由此推導(dǎo)出,為了令給定的機器能夠支持盡可能多的客戶端,必須將會話的存儲量保持在最小。實際上,對于真正具備可擴(kuò)展性的系統(tǒng)而言,無論何時都應(yīng)該避免使用會話。如果在服務(wù)器端可以不產(chǎn)生任何為每個客戶端進(jìn)行處理的開銷,那么機器的負(fù)載能力(在理論上)可以到達(dá)無限,能夠支持任意多連接到它的客戶端。posted on 2007-12-17 10:04 田亮 閱讀(1356) 評論(4) 編輯 收藏 所屬分類: J2EE總結(jié)