使用session技术来实现网上商城购物车的功能【整理】

来源:互联网 发布:javascript 页面刷新 编辑:程序博客网 时间:2024/04/30 13:12

首先、简单的了解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,区分不同用户的购物车,这样就可以使用户在下线的情况下也可以保存购物车中的内容。这种方法实现过,只是没有用大量的并发访问测试其稳定性,但是一定是可行的。



1 0