`
ymq267
  • 浏览: 128707 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

购物车的实现原理

阅读更多
购物车的实现原理 


购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。
     购物车的功能包括以下几项:

★        把商品添加到购物车,即订购

★        删除购物车中已定购的商品

★        修改购物车中某一本图书的订购数量

★        清空购物车

★        显示购物车中商品清单及数量、价格

     实现购物车的关键在于服务器识别每一个用户并维持与他们的联系。但是HTTP协议是一种“无状态(Stateless)”的协议,因而服务器不能记住是谁在购买商品,当把商品加入购物车时,服务器也不知道购物车里原先有些什么,使得用户在不同页面间跳转时购物车无法“随身携带”,这都给购物车的实现造成了一定的困难。

     目前购物车的实现主要是通过cookie、session或结合数据库的方式。下面分析一下它们的机制及作用。

1. cookie

     cookie是由服务器产生,存储在客户端的一段信息。它定义了一种Web服务器在客户端存储和返回信息的机制,cookie文件它包含域、路径、生存期、和由服务器设置的变量值等内容。当用户以后访问同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过让服务器读取原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。利用cookie的特性,大大扩展了WEB应用程序的功能,不仅可以建立服务器与客户机的联系,因为cookie可以由服务器定制,因此还可以将购物信息生成cookie值存放在客户端,从而实现购物车的功能。用基于cookie的方式实现服务器与浏览器之间的会话或购物车,有以下特点:

★        cookie存储在客户端,且占用很少的资源,浏览器允许存放300个cookie,每个cookie的大小为4KB,足以满足购物车的要求,同时也减轻了服务器的负荷;

★        cookie为浏览器所内置,使用方便。即使用户不小心关闭了浏览器窗口,只要在cookie定义的有效期内,购物车中的信息也不会丢失;

★       cookie不是可执行文件,所以不会以任何方式执行,因此也不会带来病毒或攻击用户的系统;

★       基于cookie的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效;

★       存在着关于cookie侵犯访问者隐私权的争论,因此有些用户会禁止本机的cookie功能。

2. session

     session是实现购物车的另一种方法。session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问,它与cookie最重大的区别是,session将用户在会话期间的私有信息存储在服务器端,提高了安全性。在服务器生成session后,客户端会生成一个sessionid识别号保存在客户端,以保持和服务器的同步。这个sessionid是只读的,如果客户端禁止cookie功能,session会通过在URL中附加参数,或隐含在表单中提交等其他方式在页面间传送。因此利用session实施对用户的管理则更为安全、有效。

     同样,利用session也能实现购物车,这种方式的特点是:

★        session用新的机制保持与客户端的同步,不依赖于客户端设置;

★       与cookie相比,session是存储在服务器端的信息,因此显得更为安全,因此可将身份标示,购物等信息存储在session中;

★       session会占用服务器资源,加大服务器端的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能;

★       因为session存储的信息更敏感,而且是以文件形式保存在服务器中,因此仍然存在着安全隐患。

3. 结合数据库的方式

     这也是目前较普遍的模式,在这种方式中,数据库承担着存储购物信息的作用,session或cookie则用来跟踪用户。这种方式具有以下特点:

★       数据库与cookie分别负责记录数据和维持会话,能发挥各自的优势,使安全性和服务器性能都得到了提高;

★       每一个购物的行为,都要直接建立与数据库的连接,直至对表的操作完成后,连接才释放。当并发用户很多时,会影响数据库的性能,因此,这对数据库的性能提出了更高的要求;

★       使cookie维持会话有赖客户端的支持。

各种方式的选择:

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

     Session 能很好地与交易双方保持会话,可以忽视客户端的设置。在购物车技术中得到了广泛的应用。但session的文件属性使其仍然留有安全隐患。

结合数据库的方式虽然在一定程度上解决了上述的问题,但从上面的例子可以看出:在这种购物流程中涉及到对数据库表的频繁操作,尤其是用户每选购一次商品,都要与数据库进行连接,当用户很多的时候就加大了服务器与数据库的负荷。
分享到:
评论

相关推荐

    android购物车实现原理

    下面将详细探讨购物车的实现原理。 1. **观察者模式**: - 观察者模式是设计模式的一种,用于定义对象之间的一对多依赖关系。在购物车场景中,购物车是被观察的对象,而各个界面(如商品列表、购物车页面)则是...

    jquery购物车 实现原理分析

    jquery购物车 实现原理分析

    购物车实现原理

    为了解决这个问题,开发人员通常采用三种主要技术来实现购物车功能:Cookie、Session以及结合数据库的方式。 1. Cookie: Cookie是服务器发送到用户浏览器并存储在本地的一种小文本文件。当用户再次访问同一网站时...

    ssh 简易购物车实现

    这个简易购物车实现项目利用SSH框架和SQL Server 2005数据库来构建一个基本的在线购物系统,帮助我们理解如何在实际应用中整合这三个组件。 1. **Struts2**:Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP...

    购物车原理代码适合所有购物

    本篇文章将深入探讨购物车功能的实现原理,并通过代码示例来帮助理解这一过程。 首先,购物车的核心功能包括添加商品、删除商品、更新商品数量以及计算总价。在实现这些功能时,我们需要考虑以下几个关键知识点: ...

    ios-购物车简单实现.zip

    通过这个简单的购物车实现,开发者可以了解iOS应用中的基本数据结构、模型设计、事件处理、界面布局以及数据持久化等基础知识,为后续开发更复杂的电商功能奠定基础。在实际项目中,还需要考虑更多因素,比如网络...

    ssh实现购物车的功能

    此项目是一个购物页面,里面的web页面为个人自己写的,个人觉得美观上来说还是凑活,主要实现了从数据库读取商品到主页进行展示,还有登录注册功能以及购物车功能,全部是基于MySQL数据库,如果你想用其他的数据库,直接...

    基于 ssh 技术 的 购物车

    Struts2可以与AJAX结合,实现动态加载和更新购物车内容,提升用户体验。 10. **性能优化**:为了提高系统性能,可能需要进行缓存策略(如使用 Ehcache 缓存热门商品信息)、数据库索引优化、批量处理等。 以上就是...

    用ssh做的购物车完整版

    【标题】"用ssh做的购物车完整版"指的是基于SSH框架实现的一个购物车系统。SSH是Struts、Spring和Hibernate三个开源Java框架的首字母缩写,它们在企业级Web应用开发中被广泛使用。 【Struts】Struts是MVC(Model-...

    购物车原理以及实现【源代码】

    本文将围绕“购物车原理及其实现”这一主题,详细讲解购物车功能的设计思路和关键技术。 首先,购物车的核心数据结构是关键。在设计时,通常会采用“商品ID-数量”的键值对形式,这是因为商品的属性繁多,但购物车...

    java中jsp实现购物车原理

    本教程将介绍如何利用Java的Servlet和JSP技术实现一个简单的购物车功能。 首先,我们需要理解购物车的基本概念。购物车是一个存储用户选择商品的地方,用户可以在浏览商品时将其添加到购物车,然后在结账时进行结算...

    c#购物车.doc

    【C#购物车实现原理】 在C#编程中,购物车功能是电子商务系统中的核心组件,用于临时存储用户选择的商品。本示例将探讨两种不同的购物车实现方式:基于Cookie和基于数据库。这两种方法各有优缺点,适用于不同场景。...

    ssm框架实现购物街系统

    该系统实现了用户的注册登录、商品信息的模糊查询、查看商品详情、加入购物车、确认购物车的订单、提交订单以及用户的后台数据管理等功能。在系统的开发中使用EL表达式JSTL标签库代替JSP页面中数据访问时的复杂编码...

    hashtable购物车Session+Hashtable实现

    #### 三、购物车实现原理 ##### 1. 需求分析 在设计购物车时,需要考虑的核心数据有: - 商品ID - 商品数量 其他商品信息(如名称、价格等)通常已经存储在数据库中,因此只需通过商品ID从数据库中检索即可。 ####...

    js购物车demo.zip

    【JavaScript购物车实现原理】 购物车是Web前端开发中一个重要的功能模块,尤其在电商网站中扮演着核心角色。JS购物车Demo展示了如何利用JavaScript来处理用户选择的商品、数量、价格等信息,以及如何实现商品的...

    购物车的分类及实现原理

    购物车的实现原理主要涉及到如何在用户浏览网页时保持用户选择的商品信息,以便在结账时能够正确处理订单。在互联网上,购物车的实现通常采用三种主要技术:Cookie、Session 和结合数据库的方式。 1. Cookie Cookie...

    php购物车功能的实现.docx

    #### 二、购物车实现原理 购物车的实现通常依赖于会话(session)机制。当用户浏览网站并选择商品时,系统会将商品信息(例如商品ID和数量)保存在用户的会话中。这样即使用户关闭浏览器或离开网站一段时间后再回来...

    php购物车功能的实现.pdf

    #### 二、购物车实现原理 ##### 2.1 添加商品至购物车 添加商品至购物车是购物车功能的基础。当用户选择某个商品时,系统需要记录该商品的信息以便后续处理。在这个过程中,使用了`session`变量来存储商品ID和数量...

    javaweb购物车jsp+sqlserver

    【JavaWeb购物车实现原理与应用】 在JavaWeb开发中,购物车功能是电商系统不可或缺的一部分,它允许用户选择商品并暂存,以便在结账时一次性处理。本项目"javaweb购物车jsp+sqlserver"就是这样一个完整的示例,涵盖...

Global site tag (gtag.js) - Google Analytics