使用session技術來實現網上商城購物車的功能【整理】

首先、簡單的瞭解session和cookie的區別:

一、session和cookie的區別:

session是把用戶的首寫到用戶獨佔的session中(服務器端)

cookie是把用戶的數據寫給用戶的瀏覽器。

session對象由服務器創建,開發人員可以調用request對象的getsession方法得到session對象。

轉自(實現代碼):http://www.cnblogs.com/yejiurui/archive/2012/10/04/2711503.html

二、思路

1、當一個用戶點擊購買一件商品時,將該商品的對象存放到一個list集合中
2、之後就將這個集合存進session
3、當要再購買一件商品時,同理,將該商品存進session中的list集合
4、下單時,就將session中的list集合遍歷存放到訂單明細表中(訂單表與訂單明細表是一對多關係)

三、使用session的優缺點

由於購物車是實時操作的數據,如果通過在服務器數據庫中建表的形式保存購物車數據,那麼將導致頻繁操作數據庫,用戶量多的情況下會對數據庫造成極大負擔,容易出現併發錯誤,或者直接崩潰。

session效率高,會話是針對各個鏈接的,便於管理,但是存在生命有效期,根據服務器的設置不同而不一樣長。如果session超時,購物車中的數據將會丟失。

不過,例如噹噹網的購物車沒有,用戶下線之後,再次上線,購物車中的東西還是存在的,這對於用戶來說非常方便。所以如果你的服務器夠強的話,完全可以用一個靜態變量來保存所有用戶的購物車,比如用一個靜態的Map,以IP作爲Key,區分不同用戶的購物車,這樣就可以使用戶在下線的情況下也可以保存購物車中的內容。這種方法實現過,只是沒有用大量的併發訪問測試其穩定性,但是一定是可行的。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章