(java WEB)谁能告诉我在大型购物网站中使用什么技术实现购物车的,在线等....只有50分了,一定给

别和我说存入session,那只是简单的实现,我要求的是在大型购物网站中,session不能存放太多数据,交互量大的时候全都存入session会把服务器搞趴的

目前购物车的实现主要是通过cookie、session或结合数据库的方式。下面分析一下它们的机制及作用。
1. cookie
cookie是由服务器产生,存储在客户端的一段信息。它定义了一种Web服务器在客户端存储和返回信息的机制,cookie文件它包含域、路径、生存期、和由服务器设置的变量值等内容。当用户以后访问同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过让服务器读取原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。利用cookie的特性,大大扩展了WEB应用程序的功能,不仅可以建立服务器与客户机的联系,因为cookie可以由服务器定制,因此还可以将购物信息生成cookie值存放在客户端,从而实现购物车的功能。用基于cookie的方式实现服务器与浏览器之间的会话或购物车,有以下特点:
n cookie存储在客户端,且占用很少的资源,浏览器允许存放300个cookie,每个cookie的大小为4KB,足以满足购物车的要求,同时也减轻了服务器的负荷;
n cookie为浏览器所内置,使用方便。即使用户不小心关闭了浏览器窗口,只要在cookie定义的有效期内,购物车中的信息也不会丢失;
n cookie不是可执行文件,所以不会以任何方式执行,因此也不会带来病毒或攻击用户的系统;
n 基于cookie的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效;
n 存在着关于cookie侵犯访问者隐私权的争论,因此有些用户会禁止本机的cookie功能。
2. session
session是实现购物车的另一种方法。session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问,它与cookie最重大的区别是,session将用户在会话期间的私有信息存储在服务器端,提高了安全性。在服务器生成session后,客户端会生成一个sessionid识别号保存在客户端,以保持和服务器的同步。这个sessionid是只读的,如果客户端禁止cookie功能,session会通过在URL中附加参数,或隐含在表单中提交等其他方式在页面间传送。因此利用session实施对用户的管理则更为安全、有效。
同样,利用session也能实现购物车,这种方式的特点是:
n session用新的机制保持与客户端的同步,不依赖于客户端设置;
n 与cookie相比,session是存储在服务器端的信息,因此显得更为安全,因此可将身份标示,购物等信息存储在session中;
n session会占用服务器资源,加大服务器端的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能;
n 因为session存储的信息更敏感,而且是以文件形式保存在服务器中,因此仍然存在着安全隐患。
3. 结合数据库的方式
这也是目前较普遍的模式,在这种方式中,数据库承担着存储购物信息的作用,session或cookie则用来跟踪用户。这种方式具有以下特点:
n 数据库与cookie分别负责记录数据和维持会话,能发挥各自的优势,使安全性和服务器性能都得到了提高;
n 每一个购物的行为,都要直接建立与数据库的连接,直至对表的操作完成后,连接才释放。当并发用户很多时,会影响数据库的性能,因此,这对数据库的性能提出了更高的要求;
n 使cookie维持会话有赖客户端的支持。
各种方式的选择:
虽然cookie可用来实现购物车,但必须获得浏览器的支持,再加上它是存储在客户端的信息,极易被获取,所以这也限制了它存储更多,更重要的信息。所以一般cookie只用来维持与服务器的会话,例如国内最大的当当网络书店就是用cookie保持与客户的联系,但是这种方式最大的缺点是如果客户端不支持cookie就会使购物车失效。
Session 能很好地与交易双方保持会话,可以忽视客户端的设置。在购物车技术中得到了广泛的应用。但session的文件属性使其仍然留有安全隐患。
结合数据库的方式虽然在一定程度上解决了上述的问题,但从上面的例子可以看出:在这种购物流程中涉及到对数据库表的频繁操作,尤其是用户每选购一次商品,都要与数据库进行连接,当用户很多的时候就加大了服务器与数据库的负荷。

PS:以上是参考网上资料,对购物车实现的分析!
结合你自身的web的访问及部署情况,可考虑优先或结合使用。
如果使用数据库存储,一般考虑使用缓存技术去解决性能问题。

有问题再追问,good luck!~
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-30
有个东西,叫缓存:用来存放购物车物品对象,
还有一个东西叫UUID:存在cookie里,这样没登陆的用户登陆后也能拿到之前添加的物品,且全球只有这一台存有物品信息。
内容比较多,就不多说了,打字累,有什么问题私下聊
第2个回答  2012-11-30
session中肯定要放的,但你可以只放产品ID,这样占内存非常少
为什么一定要放session中呢? 因为购物网站一般允许用户在没有登录的情况下就可以把东西放到购物车,这样情况下不好通过持久化来保存数据的。
一般情况都是cookie和session结合来实现购物车,这样用户下次打开浏览器购物车里的物品不会丢失
第3个回答  2012-11-30
一般情况下,购物车放到数据库里即可,用户与产品之间建立一对多关系,一个用户可以存放,也就是放到购物车里n件商品,只需要在用户表里加个购物车字段,存放所有收藏的商品id。追问

你说的是没错,但是是在用户结算的时候才会存放进数据库,不然用户每点击一个产品信息加入购物车就把产品信息存入数据库这样反而给服务器加大资源开销

追答

。。。只不过走连接池,用完就放回去了,不会增大多少开销,相反的不存在数据库里,那只能存在内存了,你觉得是哪种资源消耗高呢? 比如淘宝为例,用缓存的话,每个人收藏的商品,就相当于几十kb的消耗了,100w个这样的人,服务器就挂了啊

第4个回答  2012-11-30
cookie

(java WEB)谁能告诉我在大型购物网站中使用什么技术实现购物车的,在线...
虽然cookie可用来实现购物车,但必须获得浏览器的支持,再加上它是存储在客户端的信息,极易被获取,所以这也限制了它存储更多,更重要的信息。所以一般cookie只用来维持与服务器的会话,例如国内最大的当当网络书店就是用cookie保持与客户的联系,但是这种方式最大的缺点是如果客户端不支持cookie就会使购物...

内容管理系统的提供商
Zoomla!逐浪CMS独有六大原创技术:独有的自定义模型与节点功能功能、联合华夏互联与华夏营销网打造从网站开发到运营推广再到策划营销一体的解决方案、独创的文名作为标题生成格式为符合百度等大型搜索引擎收录提供了友好的支持、完全支持W3C标准为中国网站的标准之路铺垫基础、独创的项目管理系统(zoomla!projects)为传统B2B服...

django的mvc是什么(django mvt)
MVC 2仅使用Web窗体视图引擎( .aspx)作为默认视图引擎。 MVC3使用剃刀视图引擎( .c#和的cshtml。vbhtml (用于Visual Basic )和Web窗体视图引擎( .阿斯佩克斯)。 MVC4还使用剃刀视图引擎作为默认视图引擎,具有一些新功能,如条件属性和“波形斜线”。 2、图表、网络网格、加密、网络映像、网络邮件控制: 所有这些在M...

django中如何实现轮播图(java轮播图怎么实现)
WEB框架开发课程内容包括:Web框架原理剖析、Web请求生命周期、自行开发简单的Web框架、MTV\\MVC框架介绍、Django框架使用、路由系统、模板引擎、FBV\\CBV视图、ModelsORM、FORM、表单验证、Djangosessioncookie、CSRF验证、XSS、中间件、分页、自定义tags、DjangoAdmin、cache系统、信号、message、自定义用户认证、Memcached、redis...

高分求一篇关于JAVA在虚拟中的应用的论文,质料也行阿,急。求高手。
利用现有的优秀开源技术可以大大降低应用系统的开发周期和开发成本,同时也能提高整个系统的灵活性。2 本系统所使用的开源技术 对于现有较成熟的WEB应用框架而言,其解决的主要问题无外乎下面几部分: 1)将客户端的WEB页面请求中的输入数据封装为一个(请求)数据对象。 2)对WEB请求中的数据进行合法性验证。 3)根据不...

java学习路线
Java学习路线一般有以下几个阶段:第一阶段,JavaSE基础:Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝等。第二阶段,JavaWeb:MySQL安装、管理、创建数据库、MySQLUPDATE查询、Mysql高级操作等。第三阶段,Java高级框架-SSH:Struts2异常处理、Struts2+Log4j集成、Struts2和...

java开发需要学习什么
J2ME程序设计,包括J2EE程序、J2ME;Java高级程序设计(J2EE),包括J2EE体系结构和J2EE技术、EJB;Weblogic使用、 JBuilder开发;Java和XML,包括Java Web Service,Java XML, 业界主流XML解析器程序设计;软件企业规范和软件工程,包括UML系统建模型和设计(Rational Rose 200x)软件工程和业界开发规范;CVS版本控制、Java Code书写...

有什么推荐的Java学习路线呢?
2. 熟练运用 JavaEE 三大核心框架:Spring,SpringMVC,MyBatis 3. 熟练运用 Maven,并使用 SpringBoot 进行快速框架搭建 4. 深入理解框架的实现原理,Java 底层技术,企业级应用等 5. 使用 Shiro,Ztree 和 Spring,SpringMVC,Mybaits 完成企业项目 知识点:1、Linux 安装配置,文件目录操作,VI 命令,...

django中如何实现轮播图(java轮播图怎么实现)
第三部分:JavaScript,前端的核心技术。js是一种脚本语言,用于实现网站中各种功能,例如表单提交、播放器等。这一部分学习是没有尽头的,想成为一名初级前端只要学五个月左右的时间,学习function的正确写法即可,逻辑算法需要长时间的研究。 第四部分:HTTP协议。HTTP协议使互联网的基础协议,也是网页开发的必备知识。需要学习...

零基础如何学习Java?
比如vue element , 但是大前提是把自己的后台学到位了再学其他的。Javaweb : jsp、servlet。 为什么用了html还要学jsp呢。因为jsp和Java是无缝连接的。学了javaweb以后就可以自己做一个项目出来 了,比如你想做一个个人网站。 你可以给你们学校做一个教务管理系统都是可以的。Spring :后台框架。为什么...

相似回答