2011-10-25 125 views
4

HttpSession是一個構建在cookie和url重寫之上的高級接口,這意味着只有一個會話ID存儲在客戶端,而與其關聯的數據存儲在服務器端。HttpSession數據存儲在哪裏?

HttpSession數據在哪裏實際存儲在服務器端?在JVM內存或其他地方?我可以改變儲存地點嗎?例如將它們保存到內存數據庫中?

如果它不在數據庫中,那麼當許多客戶端同時處理同一會話數據時是否存在併發問題?

回答

3

它取決於存儲會話數據的服務器;我熟悉的那些允許一些級別的配置來存儲在哪裏(磁盤,數據庫,內存......)會話數據。

不同的客戶端不應該在同一個會話數據上工作 - 會話數據是每個客戶端。也就是說,單個客戶端(如Web瀏覽器)可能會打開多個窗口或選項卡,並且會導致問題。

隨着會話數據在服務器之間共享,羣集會增加一層複雜性/令人頭疼的問題。