基于Session实现的购物车

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

基于Session技术的购物车的设计与实现

摘要:在电子商务网站中,购物车是相当重要的部分,它用来装载购物者购买的商品,本文给出了Web平台的购物车系统的功能描述,以及对购物车进行设计的总体规划扣设计思路,分析了基于JSP+Session技术的购物车的设计实现,并且给出了重要部分的源代码。

关键词:电子商务网站;购物车;JSP;Session

随着Web技术的迅速发展,现代电子商务已经集中于网上商店的建立和运作上,而购物车(Shop—ping Cart)是网上商店最重要组成部分之一,它就像一台虚拟的超市购物车,可以放进商品,也可以拿出商品。实现购物车有很多方式,如把购物车里的商品存在数据库里,或者使用javabean存储商品,再或者用Session或者Cookie这种方式存储,这里只讨

论基于Session对象的购物车的设计实现。

1购物车系统功能概述

在线购物是目前非常流行的趋势,商务网站的经营者无需准备大量的创业基金,就可以架设网站开立网络商店。在商务网站的购物车系统功能之中,应首先包含用户登录界面,在用户进行登录后,可以完成查看产品类型、查看购物车内容、订购产

品、显示订购单及删除指定定单等相应功能,若成功订购,还可以按照网页指示用银行划拨或信用卡方式进行支付。

2购物车的总体设计与分析

2.1购物车系统分析

如图1所示,根据购物车的基本功能,按照系统开发的基本方法,将购物车进行如下分解:首先用户在登录页面中登录网站,进入显示产品信息的网页,在该网页中,设有“产品类型”、“查看购物车”、“显示订购单”等超级链接。此时若要购物,便可在相关产品后面的表单中输入购买数量,将其放入购物车。若用户点击“查看购物车”超级链接,下方框架将会显示购物车内的产品情况,此时还可进行产品删除的操作。若用户点击“显示订购单”超级链接,下方框架将会显示订购单网页,用户在对订单细目核对后,便可进行订购了。

2.2购物车主体设计

这里我们只分析购物车的主体设计中重要的两个方面:一是在网页中显示所有商品信息,同时用户可以在此网页中输入欲订购的产品数量,按下“放到购物车内”按钮,便可将其写入相应的Session中;二是读取用户Session中用户已经选择放在购物车中的产品信息并在页面当中显示出来,同时各个产品后面有一个“删除”超级链接,用来删除指定的产品。

3购物车模块实现

3.1用户购买商品

首先设计用户购买商品的页面goods.jsp,用表格描述商品的信息,用户要购买的商品请求通过表单提交到处理程序goodsprocess.jsp,其中商品名称,单价,厂家名称等信息通过表单中的隐藏域传递到处理页面中,购买数量通过输入记录在goodsnum中,当用户确定了购买商品及数量,点击“放到购物车内”,即可实现购买该种商品,效果示例如下(图2)。

3.2显示用户购买商品

当用户输入商品数量,点击“放到购物车内”按钮后,页面跳转到goodsprocess.jsp,这个页面会将指定的商品写入“购物车”中,然后读取用户放入购物车的产品并显示出来,同时各个产品后面有一个“删除”超级链接,当用户在购物车内点击“删除”超级链接时,本程序将从该用户“购物车”中删除指定的产品,显示新的购物信息,效果示例如下(图3)

4主要代码

4.1购买商品

商品放人“购物车”时,在JSP环境下,Session是比较理想的购物车制作对象,但是Session对象是由服务器端创建和保存的,使用Session会给服务器带来一定的负担,这种负担随着Session个数的增加而增加。为了降低服务器的负担,在实现过程中我们用Vector类集存储所购买货物,同时用户购买的商品信息用数组对象goods来记录,分别记录用户所购商品的商品名称,单价,厂家及数量,通过Vec—tor对象的addElement方法放人购物车内,注意的是,购买时可能重复购买一种商品,那么对应购物车来说,应该只是商品的数量发生变化,所以在执行放入购物车的操作时,要对购买的商品进行判断,看其是否已经存在,存在则改变该商品的数量,不存在则直接放入。

主要代码如下:

<%

Vector goodslist goodslist=(Vector)session.

getAttribute(”goodscart”);

if(goodslist==nul1)

{

goodslist=new Vector();

goodslist.addElement(goods);

}else{

int nLlm =0;

f0r(int x=0;x

String[]buygoods;

buygoods=(String[])goodslist.elementAt(x);

if(goods[0]!=null&&buygoods[0].equals

(goods[0])){

Bum:Integer.parselnt(buygoods[3])+Integer.

parseInt(goods[3]);

goods[3]=Bum+⋯;

goodslist.removeElementAt(x);

break;

}}

if(goods[0]!=nul1){

goodslist.addElement(goods);

}

4.2显示购物车内商品

读取‘‘购物车”中数据时,要先判断购物车中是否有商品,有则显示在表格内。主要代码如下:

<%if(goodslist!=nul1)

for(int x=0;x

{

String[]buygoods;

buygoods:(String[])goodslist.elementAt(x);

if(buygoods[0]!:nul1)

{% >

< tr >

<% =buygoods[0]% > </td>

<% =buygoods[1]% > </td>

<%:buygoods[2]% > </td>

<% =buygoods[3]% > </td>

>

</form > </td>

</tr>

<% }

l% >

4.3删除购物车中商品

如果想放弃购买的商品,可以通过删除操作从购物车中取出商品,指定要删除的商品在Vector中的序号,通过removeElementAt方法,把该序号的商品从购物车中移除,主要代码如下:

if(request.getParameter(”delgoods”)! =nul1)

{

String delgoods = request.getParameter f”delgoods”);

goodslist.removeElementAt(Integer.parseInt(del·goods));

}

5结论

购物车是超市中供每位顾客选购商品时使用的工具,进入网上超市后每人都有属于自己的购物车,它自动记录并计算用户选购的商品及其价格,在购物车中用户还可以改变商品的数量或取消对某商品的选购,本文介绍了Seesion技术实现购物车的过程,虽然一个Seesion 会占用平均10K(至少4K)的服务器内存,但从安全性来讲还是用Session比较好,Cookies存在于客户端,而Session则存在于服务器端,相比较在服务器上更容易保密,并且做在线购物,服务器的配置一般都比较高端,使用Seesion占用的内存也是可以保证的。

相关文档
最新文档