存放购物车的方式有两种:一种是通过Session来存放,直接session.put(key,cart);就行了。这种方式比较好实现,但是比较消耗服务器内存。另一种是通过COOKIE+DB的方式存放,这种方式存放消耗的性能相对小一些,像卓越网、当当网就是通过这种方式存放的。
首先,刚每个用户初次访问你的网站的时候,需要为用户分配一个唯一ID(UUID),存放在COOKIE里面。这个功能可以通过过滤器来实现。
Filter(){
//判断用户cookie里面是否存在ID,不存在就创建。
}
然后从数据库获取购物车,如果数据库中不存在记录,代表用户初次购买,这时新建购物车,往购物车中添加购物项。添加完购物项后把整个购物车(实现序列化对象)保存到数据库。
将购物车保存到数据库的时候还要保存用户ID和访问时间。我们可以设定一个定时器,如果访问时间过期了,就将对应的记录删除。