“购物车”数据按需供给的Session实现

来源 :中小企业管理与科技·下旬刊 | 被引量 : 0次 | 上传用户:linxunchang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:ASP.Net是目前应用非常广泛的web开发技术,使用Session实现电子商务网站的“购物车”模块是目前web开发的主要手段。但是Session的使用必须谨慎。如果网站很大,不同的页面使用同一个“购物车”保存信息,就会很容易造成数据错误。本文讨论不同“购物车”数据按需供给的Session实现。
  关键词:ASP.Net Session 购物车
  1 概述
  大多数B/S结构的应用系统是采用HTTP协议通信的,由于HTTP协议无状态的特征,因此在浏览器与服务器交互的过程中服务端需要维护客户端的状态。在B/S结构的系统中,购物车是客户在选购商品时临时存放数据的地方,是状态管理的典型功能。本文中将类似于购物车在浏览器和服务器之间需要进行状态管理的数据称之为“购物车数据”。实现状态管理的技术主要有两类,一种是基于服务端的实现,如Session、数据库的方式;另一种是基于客户端的方式如Cookie等。本文将重点论述在使用Session技术处理“购物车数据”时如何避免冲突以及按需供给处理的问题。
  2 “购物车”及其Session实现方法
  2.1 购物车的概念和功能
  “购物车”相当于现实生活中超市里的购物车,不同的是一个是实体车,一个是虚拟的。在电子商务网站选购商品时,可以像在超市里选购商品一样,向虚拟“购物车”中添加自己需要的商品,而且可以在不同的页面间跳转而不丢失选购信息。所谓的“购物车”数据就是用户在进行商品选购时产生的信息。服务器通过追踪用户的行为保证在结算时购物车与单据之间的对应关系。购物车的主要功能包括:
  ①添加商品;②删除购物车中已有的商品;③修改购物车中已有商品的数量;④清空购物车;⑤显示购物车中的商品信息。
  2.2 购物车的Session实现
  2.2.1 Session状态管理
  Session提供了可以保存和跟踪用户的状态信息的功能,使当前用户在Session中定义的变量和对象能在页面之间共享,但是不能为应用中的其他用户所访问,因此利用Session实施对“购物车”的管理更为安全、有效。Session能很好地与交易双方保持会话,可以忽视客户端的设置。在购物车技术中得到了广泛的应用。
  2.2.2 Session实现购物车
  Session是散列结构类型,以键值对的形式存储数据。选购商品后可以采取如下方式将数据存入购物车:
  Session[“MyCart”]=ShoppingCartObj;
  用户在选购物品后,可以查看购物车信息,也可以对购物车中已有的物品信息进行修改,可以采取如下方式读取购物车信息:
  cart=Session["MyCart"]asShoppingCart;
  2.3 “购物车”数据的应用 在WEB应用系统开发过程中,在很多情况下需要使用到类似于购物车的方式存储数据,比如要跟踪当前用户的状态、维护订单的产品明细表、处理用户项目信息等。
  3 “购物车”数据按需供给
  3.1 Session冲突 Session是以键名作为标识符存储数据的,如果一个用户在多个程序页面中需要使用同一个页面返回数据,并且这些数据是不同的,这个时候以固定键名的方式存储数据就会发生问题。例如,用户在新建销售单时,必须使用Session对象保存销售物品信息,如果使用了Session对象且会话未结束的情况下又利用Session对象创建采购单,此时的Session对象保存的信息是在创建销售单时所保存的销售物品信息,并非是用户所希望获取的采购单信息。这种情况就是Session对象的使用冲突。
  3.2 按需供给 由上面的分析可知,“购物车”数据的冲突主要是由多个数据需方程序对同一个数据供方程序提出不同数据要求而导致Session键名冲突造成的。
  因此可考虑将特征键名与需方程序URI连接起来作为动态键名,从而实现按需供给数据,避免了冲突。
  4 基于Session按需供给实现
  4.1 设计思路
  String类提供的GetHashCode()方法的实现为相同的字符串值返回相同的哈希代码。因此,如果两个String对象表示相同的字符串值,则它们返回相同的哈希代码,该方法使用字符串中的所有字符生成相当随机的分布式输出,即使当输入集中在某些范围内时。
  例如:stringstr1="A.aspx";
  stringstr2="B.aspx";
  stringstr3="Helloworld";
  stringstr4="Helloworld";
  则str1.GetHashCode()!=str2.GetHashCode().ToString();
  str3.GetHashCode()==str4.GetHashCode().ToString();
  在进销存系统中,用户在进行“购物车”选购物品时都是由不同单据的新建页面进入的,例如销售单新建页——Sale_New.aspx。所以在使用Session创建“购物车”时首先判断创建的“购物车”为哪个单据服务。
  4.2 实现方法
  4.2.1 Sale_New.aspx页面跳转事件
  stringUrl=Request.RawUrl;//获取当前路径
  Response.Redirect(string.Format("Goods_List.aspx?Url={0}",Url))
  4.2.2 Sale_New.aspx页面获取“购物车”
  stringcode=Request.RawUrl.GetHashCode().ToString();//通过String类提供的GetHashCode()方法产生一个值对Session进行标记
  Goods_DTablegtable=null;
  if(Session[code]!=null)
  {
  gtable=(Goods_DTable)Session[code];//获取购物车物品信息
  }
  returngtable;
  4.2.3 Goods_List.aspx页面保存“购物车”数据
  stringcode="";
  if(!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.QueryString["Url"]))
  {
   stringUrl=
   System.Web.HttpContext.Current.Request.QueryString["Url"];
  code=Url.GetHashCode().ToString();
   Goods_DTablegtable=null;
   /*將信息写入内存中的表gtable*/
  Session[code]=gtable;
  }
   当单据新建完成,即此次会话结束,Session[code]应及时清除。
  5 结束语
  以Session实现“购物车”功能的应用非常广泛,在WEB应用系统中,实现购物车的主要难点是在于保证购物车与单据之间的对应关系。本文讨论了在Asp.net中利用Session实现了数据的按需提给的实现。这种方法不仅有效地提高了系统的可靠性、安全性,同时也有利于网站的整体维护。
  参考文献:
  [1]王世锋,姚文琳,高桂霞.从ASP到ASP.NET的会话状态管理.计算机与现代化,2007(2).
  [2]吴学刚,伍海波.基于ASP技术的电子商务网站的设计与实现.电脑知识与技术,2010(12).
  [3]徐照兴,赵德福,刘武.基于Hashtable+Session技术的网上购物车的设计与实现.计算机与现代化,2010(6).
其他文献
摘要:为了提高学生的实践动手能力,完善现有的实践教学体系,强化实践教学环节。本文从培养实用型人才的目标出发,对实用型人才培养体系的建设进行了较深入的研究。以会计电算化专业为基础,对电算化实践教学环境建设、实践教学内容改革等方面进行了探索和实践,形成了实验教学、实训教学、校内校外基地相结合的实践教学体系。  关键词:会计电算化 虚拟基地 实践教学  强化实践教学环节,保证实践教学质量,改革和完善现有
职业核心能力是指劳动者从事任何一种职业都必不可少的跨职业的基本能力,将课堂内容任务化,在专业课程教学中渗透核心能力的培养是一种很好的方法,本文就任务驱动法在PLC教学中
建筑装饰设计工作既是一门科学,更是一门艺术。如何在设计工作中既体现出中国人的审美心理和审美习惯,同时又富有现代精神和时代气息,成为当代设计者必须破解的课题。本文拟从传
虚拟仪器是当代测量技术发展的一个重要方向,它可以对经典的测试信号进行处理。本文介绍了基于DRVI虚拟仪器的环形输送线测试系统,并对速度测试系统以及DRVI平台的数据采集进行了阐述。
数控加工仿真系统在教学中获得了广泛的应用,它具有很多优越性,能有效提高教学效率,提升教学质量,降低设备成本。但是,数控仿真系统也存在它的局限性。在教学中不能单纯依赖仿真系
本文通过分析隐性知识的特点,以及隐性知识在知识管理系统中的重要性,对隐性知识挖掘的关键技术进行了研究,并且对各种技术在构建知识管理系统时所体现的作用进行了对比总结。
工业控制过程中存在很多复杂的非线性过程、难以建立精确的数学模型,传统控制方法很难实现精度要求。本文将传统PID控制、模糊PID控制和神经元PID控制方法进行比较分析,进行了
本次研究结合了地质多源信息,利用三维可视化全面、直观的特点,建立了工程地质体的三维模型,能为工作者提供直观的地质体信息及相关属性,为区域矿产普查中深部找矿的矿产预测提供
摘要:电子商务(Electronic Commerce,简称E-commerce)通常是指在全球各地广泛的商业贸易活动中,在因特网开放的网络环境下,基于浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付以及各种商务活动、交易活动、金融活动和相关的综合服务活动的一种新型的商业运营模式。电子商务涵盖的范围很广,泛指透过网络进行交易或信息交换
摘要:我市某厂锅炉于2010年05月12日19时27分发生爆炸(图1所示)。爆炸锅炉由某低压锅炉厂制造,型号:LSG0.9-0.4-AⅡ,额定蒸发量0.9吨/小时,额定压力0.4MPa,出厂编号:M2006046,制造日期:2006年5月,使用日期:2007年1月10日,允许使用压力:0.35 MPa,水处理方式:锅外(即有炉外自动水处理设备)。制造锅炉用钢为20g和20钢(冲天管),炉胆厚度12