基于ASP的购物车的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于ASP购物车的设计与实现
摘要:本文利用Session方法设计并实现了一个购物车。

利用Session的功能,可以将购物信息(商品ID和购买数量)存储到Session变量中,Session方法将数据存储在服务器端的Session("cart")中。

Session方法实现的购物车运行稳定,性能良好,一般的在线购物类网站都选择Session+Dictionary方法实现购物车。

关键词:购物车Session Dictionary ASP
The Design and Implemention of ShoppingCart
Based on ASP
Abstract:In the paper,it designs and implements a shoppingcart by ing Session,we can save shopping information(such as good ID and quantity) into Session variables.Then Session will save the information into Session("cart") at server. shoppingcart by Session can run stability with good performance. Usually,the line shopping sites choose Session+Dictionary to implement the ShoppingCart.
Keyword:ShoppingCart Session Dictionary ASP
0引言
近年来,随着电子商务的迅猛发展,各种类型的电子商务网站大量涌现。

电子商务网站中的购物车一直是各种动态Web编程技术(如ASP,PHP,JSP和.NET等)要解决的首要问题[1]。

不同类型动态Web编程技术实现购物车的代码会有所区别,但基本原理是一致的。

本文就以ASP动态Web编程技术为例讲述如何设计和实现一个购物车。

1关键技术
购物车在线购物类网站中是非常重要的功能。

它是一个虚拟的购物篮,用户可以将自己喜爱的商品放入购物篮,同时也可以将不需要商品从你的购物篮中拿出去。

它的出现使网上购物显得非常的简单、形象和人性化。

要想在网站上实现购物车功能,可以用Session+Dictionary和Cookie等技术[2]。

使用Cookie设计购物车的缺点是必须要求用户端浏览器支持Cookie并且打开它。

其稳定性和实用性没有Session+Dictionary设计的购物车好,本文将以Session+Dictionary为例讲述如何设计一个购物车。

首先先来大致了解一下Session对象和Dictionary对象。

(1)Session对象: Session对象存储特定用户会话所需的信息。

Session对象是在每一位访问者从Web站点或Web应用程序中首次请求一个ASP页时创建的,它将保留到默认的期限结束或通过脚本设置中止的期限。

这样,当用户在应用程序的Web页之间跳转时,存储在Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

利用Session的功能,可以将购物信息(商品ID和购买数量)存储到Session变量中[3]。

(2)Dictionary对象:为了更加灵活实现的购物车,设计过程中可以引进Dictionary对象。

Dictionary 对象与关联数组是等价的,Dictionary对象用于数组,可以存储key/item 数据对,其中key的值是惟一的,而item的值可以重复,且item项与key项相关联。

这样key 可以用来存储购买商品的ID,而item则可以存储购买商品的数量。

Dictionary对象用于在结对的名称/值中存储信息(等同于键和项目)。

Dictionary对象看起来比数组更为简单,但其处理关联数据的效果却比数组更好[4]。

Dictionary对象的常用属性如下:
2购物车的设计和实现
利用Session+Dictionary实现购物车需要经过以下几个步骤。

(1)将商品放入购物车,代码如下[5]。

GoodID=request.Form("GoodID")
response.Write GoodID
Num=1
'如果Session("cart")不存在,则创建Dictionary对象并将其存入Session("cart")中。

If (Not IsObject(Session("cart"))) then
Set Session("cart")=Server.CreateObject("Scripting.Dictionary")
end if
Set Cart=Session("cart") '将Session("cart")展开一个本地副本调用。

'如果该商品的ID不存在,则可以使用Dictionary对象的Add方法
'将商品的编号(GoodID)和购买的数量Num写入到Cart中,
'否则商品数量加1。

If (Not Cart.Exists(GoodID)) then
Cart.Add GoodID,Num
else
Cart.item(GoodID)=Cart.item(GoodID)+1
end if
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=Cart
'跳转到显示购物车商品页面。

response.Redirect("shopCart.asp")
(2)查看购物车中的商品,代码如下[6]。

<%
'将Session("cart")展开一个本地副本Cart调用。

Set Cart=Session ("cart")
'采用将Cart中的数据组分别赋值给Keys(商品ID组)和Items (商品数量组)这2
个变量。

Keys=Cart.keys
Items=Cart.items
dim sum,sumPrice
sum=0
sumPrice=0
'使用循环语句显示用户购买的商品和数量以及总价等信息。

For i = 0 To Cart.Count-1
goodid = Keys(i)
sum=sum+Items(i)
'……显示购物车中所有商品
Next
%>
(3)修改购物车中的商品,代码如下。

<%
'获取商品id和购买数量参数
id=request.Querystring("id")
num=request.Querystring("num")
'将Session("cart")展开一个本地副本Cart调用。

Set Cart=Session("cart")
'如果Cart存在改商品,则修改购买数量。

If Cart.Exists(id) Then
Cart.item(id)=Int(num)
End If
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=cart
'跳转到shopCart.asp页面。

Response.Redirect "shopCart.asp"
%>
(4)删除购物车中的商品,代码如下。

<%
id=request.Querystring("id")
'将Session("cart")展开一个本地副本Cart调用。

Set Cart=Session("cart")
If Cart.Exists(id) then '判断商品ID是否存在
Cart.Remove(id) '在Cart中删除该ID
End if
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=cart
'跳转到shopCart.asp页面。

Response.Redirect "shopCart.asp"
%>
(5)清空购物车,代码如下[7]。

<%
'将Session("cart")展开一个本地副本Cart调用。

Set Cart=Session("cart")
'使用Dictionary对象的RemoveAll方法清空“购物车”。

Cart.Removeall()
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=cart
'跳转到shopCart.asp页面。

Response.Redirect "shopCart.asp"
%>
(6)购物车运行结果如图1所示。

图1 购物车界面
3总结
在ASP技术中,常使用Session和Cookie等方法实现购物车功能,这些方法的共同点是,产生一个临时存放用户购物信息的存储空间,不同的是这些信息存放的位置和程序设计的方法。

Session方法是将数据存储在服务器端的Session("cart")中,Cookie方法是存储在客户端的Cookie文件中。

这些实现的方法各有优缺点,设计者可以根据实际情况进行选择,一般的在线购物类网站可以选择Session+Dictionary方法实现购物车[8]。

参考文献:
[1]李怀恩.电子商务网站建设与完整实例[M].北京:化学工业出版社.2009.3
[2]林正荣,王炜立.ASP语言程序设计[M].北京:清华大学出版社.2009.1.
[3]宁晨凯.成人高等教育网络课程平台的设计与实现[J].科技创新导报.2010.6:152-153.
[4]李鑫.基于ASP和SQL技术的人力资源网络数据库的设计探讨[J].硅谷.2010.4:45-49.
[5]何国民,仲治国.ASP动态网站:68个典型模块精解[M].北京:科学出版社.2009.4.
[6]管西京.ASP+Access动态网站案例开发[M].北京:电子工业出版社.2008.7.
[7]王萍萍,李晓娜,孙更新.ASP+Dreamweaver动态网站开发[M].北京:清华大学出版社.2008.8
[8]杨坚争.电子商务网站典型案例评析(第3版)[M].西安:电子科技大学出版社.2010.4。

相关文档
最新文档