电子商务系统

 

第一章  绪论

1.1系统开发背景

1.1.1计算机及互联网的普及

1.1.2网络购物的兴起

1.2研究课题的提出

1.2.1电子商务概念

1.2.2电子商务的发展

1.2.3电子商务的分类

1.2.4电子商务网站一般特征分析

1.2.5电子商务网站的可用性研究及评价

1.3系统实现的目标

1.4系统的开发意义

1.5论文结构

第二章  网上购物系统分析

2.1网站的设计目标

2.2网站的可行性分析

2.2.1经济可行性

2.2.2技术可行性

2.2.3环境可行性

2.3网站的深入调查

2.4网站的设计特点

2.5网站开发的设计思想

2.6系统设计的总体规则

第三章  系统的开发技术及主要架构

3.1开发技术的选择

3.2系统的主要架构及开发模式

3.2.1基于B/S的体系结构

3.2.2基于MVC的应用开发模型

3.2.3数据库的选择

3.3关键技术介绍

3.3.1JSP的技术原理

3.3.2JavaBean简介

3.3.3 SERVLET简介

第四章  需求分析

4.1需求分析

4.1.1需求分析的任务

4.1.2需求分析的过程

4.2数据库需求分析

第五章  系统设计

5.1数据库设计

5.1.1数据库概念结构设计

5.1.2数据库逻辑结构设计

5.1.3数据库物理结构设计

5.2界面设计

5.2.1网站前台界面设计

5.2.2后台管理系统界面设计

5.3系统功能设计

5.4系统功能流程图设计

5.4.1前台购物流程

5.4.2用户登录流程

5.4.3商品管理流程

5.4.4购物车流程

第六章  系统功能的实现

6.1数据库的实现

6.2前台功能模块的实现

6.2.1注册功能的实现

6.2.2登录功能的实现

6.2.3用户资料修改功能的实现

6.3购物车功能的实现

6.3.1添加购物车

6.3.2修改购物车

6.3.3生成订单

6.3.4删除购物车

6.3.5浏览订单

6.4后台功能模块的实现

6.4.1管理员登录模块

6.4.2商品管理

6.4.3用户管理

6.4.4类别管理

6.4.5订单模块

6.4.6统计分析

第七章  系统测试

7.1系统功能测试

7.2系统错误测试

7.3系统安全性测试

 

 

参考文献

前 言

21世纪是网络飞速发展的时代,上网、创建网站已经成为热门话题。Internet技术得到持续、猛烈的发展,已经成为计算机产业的一个技术热点,越来越多的企业开始关注网络,许多人正在或正准备学习网络知识,进行网络开发或创建自己的网站。

JSP的全称是Java Server Pages,是一种以Java为主的跨平台Web开发语言,它具有安全性,健全性,运行效率高等许多优点。

本次毕业设计——基于JSP的网上购物网站的设计,是在Windows viata下,以MySQL为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的。

在本论文中全面详细地介绍了网上购物系统的设计方案,第1章为JSP的基础理论,包括JSP的技术原理,Java及Java Servlets概述,JavaBean简介,在JSP中使用XML 。第2章:对购物系统进行可行性分析,确定设计思想及总体规则。第3章:选择系统的开发技术及模式架构,数据库,并介绍关键技术。第4章:对系统进行需求分析,确定系统以及数据库需求。第5章:对数据库,界面,系统功能,流程图进行设计。第6章:具体介绍系统功能的实现。第7章:系统测试 ,包括功能测试、错误测试、安全性测试。结论主要对论文做了总结。

第一章  绪论

1.1系统开发背景

1.1.1计算机及互联网的普及

进入21世纪以来,伴随着科技的飞速发展,计算机技术作为最有影响力的一门新技术币在广泛地渗透各个国家社会生活的各个方面。世界各国都竞相加强以计算机基础为主的高技术教育。计算机技术已成为继自然语言和数学之后,人类必须掌握的一种最主要的工具。计算机与人们生活结合得越来越紧密,计算机的普及率也在不断提高。据相关报告显示2001年以来我国正处于电脑普及的高峰时期。

互联网伴随着计算机技术的发展与计算机的普及已经渗透到人们生活的各个方面。2007年中国互联网用户规模增长率达33 8%,2007年中国互联网用户规模达1 8200万人,仅次于美国位居世界第二,预计2008年中国互联网用户规模将达24400万人。中国互联网的普及率已经超过了10%的I临界点,进入扩散爆炸增长期。

1.1.2网络购物的兴起

网上零售的崛起及其强劲的发展势头使我们无法忽略它对整个社会经济发展的作用,同时也提出了新的研究要求。网络电子商务主要分成4种基本形式,分别是B2B、B2C、B2G和C2C。本次研究的重点是C2C的电子商务形式.是目前发展较快的一种形式。C2C电子商务模式是指消费者(consumer)之间通过分类广告在电子商务平台上进行的个人商品拍卖方式。oC2C电子商务网站就是通过为买卖双方提供的一个在线交易平台即购物平台,卖方可以主动提供商品上网拍卖,而买方自行选择商品进行竟价。

2008年1月8日发布的2007—2008年中国互联网调查报告显示,2007年我国各C2C电子商务网站交易规模为410 4亿元人民币,较2006年增长90%,C2C模式一直是我国网上购物的主要形式,预计未来两年我国C2C电子商务网站的总营收规模将继续迅速增加。2008年C2C电子商务网站交易规模达到678亿元人民币,增长率为65.2%,2009年交易规模达到约1023亿元人民币。

目前中国的C2C电子商务网站规模较大的主要有淘宝、易趣和拍拍三家,其中淘宝网是表现最突出的一家(图1.1)。美国《福布斯》杂志一篇题为《淘宝反击eBay》的文章将阿里巴巴和eBay、Amazon并称为全球三大电子商务公司。

                           图1.1 三大购物网站

1.2研究课题的提出

1.2.1电子商务概念

随着信息技术在国际贸易和商业领域的广泛应用,利用计算机技术、网络通信技术和互联网实现商务活动的国际化、信息化和无纸化,已经成为各国商务发展的一大趋势。电子商务正是为了适应这种以全球为市场的变化而出现和发展起来的。电子商务提出了一种全新的商业机会、需求、规则和挑战,它代表了未来信息产业的发展方向,已经并将继续对全球经济和社会的发展产生深刻的影响。

对于电子商务,中外学者专家、政府机构以及知名IT企业的负责人都从不同的角度提出过不同的定义,较有代表性的主要有以下一些。

1、专家学者的定义。美国的Emmelhaimz博士在她的专著《EDI全面管理指南》中,从功能角度把电子商务(E1ectronic Commerce。)定义为“通过电子方式,并在网络基础上实现物资、人员和过程的协调,以便从事商业交换活动”。中国的王可则从过程角度将EC定义为:“在计算机与通信网络基础上,利用电子工具实现商业交换和行政作业的全过程。”

2、国际机构和知名企业的定义。国际商会于1997年11月,在巴黎举行了世界电子商务会议(The World Business Agenda for E1ectronic Commerce)。会上专家和代表对电子商务的概念进行了最有权威的阐述:电子商务(E1ectronic Commerce),是指实现整个贸易过程中各阶段的贸易活动的电子化。IBM公司认为,电子商务是指采用数字化电子方式进行商务数据交换和开展商务业务的活动,是在Interact的广阔联系与传统信息技术系统的丰富资源相互结合的背景下应运而生的一种相互关联的动态商务活动。从本质上说,电子商务=Web+企业业务。Intel的定义:电子商务=电子化的市场+电子化的交易+电子化的服务。

3、对电子商务含义的理解。无论是专家学者,还是政府机构或IT企业,都认为电子商务是利用现有的计算机硬件设备、软件和网络基础设施,通过一定的协议连接起来的电子网络环境进行各种各样商务活动的方式。

1.2.2电子商务的发展

电子商务最早产生于20世纪60年代,电子商务的发展主要经历了两个阶段。

(1)20世纪60-90年代:基于EDI(电子数据交换)的电子商务。从技术的角度来看,人类利用电子通讯的方式进行贸易活动已有几十年的历史了。早在20世纪60年代,人们就开始了用电报报文发送商务文件的工作;70年代人们又普遍采用方便、快捷的传真机来替代电报,但是由于传真文件是通过纸面打印来传递和管理信息的,不能将信息直接转入到信息系统中,因此人们开始采用EDI作为企业间电子商务的应用技术,这也就是电子商务的锥形。

(2)20世纪90年代以来:基于国际互联网的电子商务。由于使用VAN(增值网)

的费用很高,仅大型企业才会使用,因此限制了基于EDI的电子商务应用范围的扩大。20世纪90年代中期以后,国际互联网(Internet)迅速走向普及化,逐步地从大学、科研机构走向企业和百姓家庭,其功能也已从信息共享演变为一种大众化的信息传播工具。从1997年起,一直排斥在互联网之外的商业贸易活动正式进入到这个领域,使得电子商务成为互联网应用的最大热点。

1994年全球电子商务销售额为12亿美元,1997年达到26亿美元,增长了一倍多,1998年销售额达500亿美元,比1997年增长近20倍。联合国最近发表的一份报告表明,2000年全球电子商务的交易额达到3770亿美元,2010年交易额可达1万亿美元,未来10年1/3的全球国际贸易将以网络贸易的形式来完成。

1.2.3电子商务的分类

电子商务可以按照涉及的商品内容分为间接电子商务和直接电子商务,按照电子商务使用的网络类型分为电子数据交换网络电子商务、Internet电子商务和Intranet电子商务,通常是按照参与交易的对象进行分类的。按照参与电子商务交易的对象进行分类,可以将电子商务分为如下几种类型。

(1)企业与消费者之间的电子商务(Business to Customer,B2C)借助于Internet/Intranet,企业可以向消费者提供产品和服务信息,并存确保电子支付安全性的前提下,实现产品和服务向消费者方向转移。从某种意上讲,B2C电子商务类似于企业的“门市部”,一种虚拟化的市场。

 (2)企业与企业之间的电子商务(Business to Business,B2B)B2B电子商务主要是用来实现企业之间的数据更快和交易过程,从某种意义上讲,B2B电子商务可以看作企业之间物流信息的“集散地”,一种虚拟化的经营场所。

(3)企业与政府之间的电子商务(Business to Government,B2G)在B2G电子商务模式中,政府除了作为客户角色进行采购之外,还处于指导、协调和监督管理的地位。因此,在B2G的各项事务中主要包含政府采购、税收、商检、管理条例发布,以及企业与政府之间各种手续的报批。

(4)个人与个人之间的电子商务(Customer to Customer,C2C)个人对个人的电子商务是近年新兴的电子商务形式。个人对个人的商务活动在传统上主要通过分类广告、收藏物品展、旧物出售和跳蚤市场这样的贸易方式或场所进行,或者通过拍卖行、当地分销商等这样的中介进行。因特网电子商务的发展为C2C打开了方便之门,个人可以通过因特网平台完成上述的商务活动。

1.2.4电子商务网站一般特征分析

人们日益关注如何设计一个值得信赖的网站,使得用户能够放心地透露个人信息,或者网上购物。在电子商务网站的购物流程中我们可以发现,用户使用电子商务网站和使用其它网站在很多方面的表现应该是不同的。引入人机交互的理论分析电子商务网站,该类网站应该是能够引起用户积极反映的交互系统,让用户感觉轻松、舒适,并能从中获得享受。

网上购物是很多用户使用电子商务网站的主要内容,电子商务网站作为互联网网站的一个大类,网上购物系统的设计应当遵守一般网站设计的规律和要求,同时网上购物系统也有一些特殊的注意事项。下面从六个方面来分析电子商务网站的一般特点。

一、保障用户在网上购物的安全感

由于用户在网上购物时不能像在物理世界中那样,走进商店,直接与销售人员交谈等,所以用户购买商品时最重要的因素是安全感。例如C2C电子商务网站提供了资金支付平台,网站通过安全解决资金流的问题来提高用户在网上购物的安全感。如淘宝网的支付宝,货款先支付在支付宝,收货满意后才付钱给卖家,买卖双方都安全放心。淘宝网还提出了“全额赔付”的口号,对于使用“支付宝”而受骗遭受损失的用户,支付宝将全部赔偿其损失。电子商务网站提供各种直接或间接的信息提高用户购物信心。在网站的个人店铺网页以及交易信息中一般都会提供商家的通讯地址、电话、电子邮件地址、质量保证、退还规定等信息。对于一些特殊商品,引述权威机构的评级标准、证书等也是赢得用户信赖的有效方法。

二、不要“硬拉顾客”

电子商务网站的卖家自然希望将商品卖给顾客,但是如果试图将产品硬塞给顾客,则不仅会导致顾客的反感,还会对销售和信誉造成不良的影响。电子商务网站提供了方便的商品查找与比较系统,但是要完成商品的购买过程是相对繁琐的,这种操作难度的增加是有益的,可以避免一些不必要的麻烦。例如网站的用户在注册登记时就向网站提供了姓名、邮寄地址等用户信息,如果在显示商品广告时只需单击一个按钮就会完成产品购买,虽然步骤简化了,但是当用户按错一个按钮导致不想要的商品运上门看来时,麻烦远远大于多按几下屏幕上按钮。

三、按照顾客购物习惯对产品进行分类

随着电子商务网站规模的不断扩大,在网站上发布交易的商品种类越来越多,小到纽扣,大到家电汽车,几乎涵盖了实际商店能够销售的所有东西。根据卖家销售商品类型的不同,顾客期望使用不同的分类方法,在设计网页上的商品分类方式时,网站将实际商店的分类方式作为重要的依据。例如,电器主要以功能和品牌分类:礼品主要以类型和价格范围分类;玩具主要以儿童年龄、性别和类型分类;衣物主要是以使用季节、使用者年龄、性别、衣物品牌分类。现在的卖家在淘宝网发布商品的时候,网站提供了尽量详细的分类方式,为买家查询相关商品信息提供便利。

四、提供用户可能关心的各方面文字资料和视觉信息

买家在网上购物时不能直接看到或触摸到商品实物,也不能像在一般商店中一样方便地向销售人员提问,他们了解和购买商品的依据就是网站提供的商品的细节信息。网站中应当尽可能具体地介绍所有用户可能关心的方面,包括产品规格、特性、比较等。例如目前的C2C电子商务网站给卖家提供了配套的商品发布网页模版,网页上关于商品的信息都用清晰的语言和图像表达出来。

对于衣物、装饰材料、纪念品、首饰等非纯功能性商品,其外观的细节对于买家购买就至关莺要。所以出售这一类商品的网页上除了提供详细的文字介绍的同时,往往还会提供清晰的多角度的大幅照片。这些照片不仅包括商品本身,也包括商品在使用状态中的照片,例如身着服装的人物,使用装饰材料装饰过的房间等。在将来技术允许的条件下可以考虑使用用户可以控制的三维旋转动画等方式准确表达商品特征。

五、描述方便的购买方法和易于管理的购物信息界面

现在的电子商务网站上,买家在商品的不同层次都可以容易的看到醒目的“立即购买”按钮。在买家单击“立即购买"按钮之后,网站显示购物信息界面。购物信息界面以简单的方式全面支持买家管理所有可能的购物行为和决策信息,包括商品的详细信息、商品数量、收货地址、送货方式、留言等。这些购买信息都可以保存下来,在买家的购买过程中随时可以以自己的用户名访问个人用户网页查询购买信息,如果配套的物流公司有查询货物的功能,买家就可以随时跟踪商品的物流状况。

六、清晰的结账信息和简便的结账手续

买家的结账可以通过若干屏幕完成,当用户点击“付款"按钮之后,网页首先显示有关商品应付款项的详细信息,包括商品价格、折扣、运费等,同时会进入付款的具体操作。一般的电子商务网站为了保证买卖双方的交易安全,都会提供第三方的资金支付平台,如淘宝网的支付宝。进入付款环节之后可以选择使用支付平台付款还是用网上银行付款,一般只要输入密码即可完成付款,但此时的货款是付给支付平台的,买家收到货物之后需要确认收货,支付平台才会把相应货款付给卖家,完成交易。由于结账需要经过第三方的交易平台和网上银行,所以付款的过程变得有点复杂,但是基于安全角度的考虑,在目前的技术背景下这种方式是最合理的。

1.2.5电子商务网站的可用性研究及评价

网站可用性是一门广泛的学科,透过科学观察、测量及设计通道的导入等,来创造或维护一个网站,目的是为了提供网站用户最大的易可用性、易学习性、有效性以及舒适性。网站可用性的重点在于:在最不浪费使用者时间、精力的前提下,使网站原本设计的功能得以完全展现。C2C电子商务网站具有区别于其它网站的特殊性,针对它展开的可用性理论研究可以作为后续网站可用性评价的理论基础。

在互联网的世界中,人们访问网站后,先体验网页的可用性,然后才决定是否使用或花钱使用网站。所以在互联网时代,可用性在很大程度上成为网站生存的一个不二条件。

总结国内外的研究现状,可用性评价的方法主要有用户调查法、专家评审法、观察法三种。用户调查法包括问卷调查法和用户采访法,一般是在网站被用户使用之后评价可用性;专家评审法是由人因学专家来评估网站的可用性,包括启发评估法和进步评估法;观察法是观察用户使用网站的方法,通常包括用户测试法和用户记录法。由于研究设备、场地和时间等因素的制约,本次研究首先根据理论分析,参考微软可用性指南提出C2C电子商务网站评价体系概念模型,然后结合实际情况,考虑研究展开的可行性,采用问卷调查法,通过调查用户使用C2C电子商务网站后的满意度来评价网站的可用性。

1.3系统实现的目标

现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。这样才能使得在电子交易时避免不必要错误发生。我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站,  以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。

1.4系统的开发意义

Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。

当今比较流行的网上购物系统有“淘宝(www.taobao.com)”, “当当(www.dangdang.com)”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。

设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:动态网页制作技术的,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。

1.5论文结构

论文结构的基本形式是多种多样的。本论文采用论文结构的基本型,即导论、本论和结论的三段式进行论述。

导论主要包括论文第1章:绪论,主要论述系统开发背景,研究课题的提出,系统实现的目标,系统开发的意义。

本论主要包括论文第2章,第3章,第4章,第5章,第6章,第7章,主要论述如下:

第2章:对购物系统进行可行性分析,确定设计思想及总体规则。

第3章:选择系统的开发技术及模式架构,数据库,并介绍关键技术。

第4章:对系统进行需求分析,确定系统以及数据库需求。

第5章:对数据库,界面,系统功能,流程图进行设计。

第6章:具体介绍系统功能的实现。

第7章:系统测试 ,包括功能测试、错误测试、安全性测试。

结论主要对论文做了总结。

7

第二章  网上购物系统分析

2.1网站的设计目标

本平台利用现在比较广泛的JSP+MySQL数据库的架构实现的,此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询、登录、注册使用。包括:浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括:商品管理、用户管理等。使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。

2.2网站的可行性分析

随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。我们相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的所有商品和服务。

可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下三点的可行性分析:

2.2.1经济可行性

网上购物系统的投资包括硬件设备和软件系统,开发费用及培训成本,运营费用及维护、更新的支出等多项内容。网上购物系统的效益要从吸引游客注册、吸引会员购买、提高竞争力等多个方面进行衡量。

2.2.2技术可行性

本系统编程语言采用JSP+Servlet+JavaBean,WEB框架为运用已经被广泛采用的Apache项目的Struts框架。后台数据库采用MySQL构建,JSP服务器采用Apache的TOMCAT5.0。

阳阳商城管理系统计制作中将充分考虑不同地域的用户访问网站的效率问题,提出以下解决策略:

(1)在页面的设计中尽可能精简代码、优化代码。

(2)在数据库的交互中使用时下流行的连接池访问技术,提高程序访问数据库的效率,减少服务器资源的消耗;

(3)对使用的图片尽量使用Photoshop CS的切片技术,提高网页下载打开图片的速度,缩小用户等待图片的时间;

(4)Tomcat服务器选用国内顶级双线机房服务器(电信带宽+网通带宽),带宽充裕,服务稳定;

(5)数据库选用MySQL,可以为最大的WEB站点和企业级的应用提供可扩展性和高性能性,使用户能够在商业领域快速创建应用,从而减少了建立应用所需的时间。

另外,网站内容的质量,对于用户评价该网站是否值得去浏览、并且以后是否经常去浏览,起着至关重要的作用。网站后台操作的简单性、方便性,对于网站前台内容的质量提高有着决定性的作用。影响页面的表达效果的因素有:美术和版面(不同内容在网页上的布置)。对背景、文本、链接等进行正确的颜色搭配,使用依赖于平台的字体,以及恰当地使用链接等,是一般性的要求。

阳阳商城管理系统在设计制作中将以公司LOGO形象的蓝色为基准色,在充分考虑不同用户的审美观念以及产品广告宣传效果的基础上,提出以下的解决策略:

(1)使用CSS样式统一各个页面的风格(包括背景、图片、文本、链接等);

(2)使用JavaScript脚本代码给不同用户的操作以详尽的提示;

(3)在Dreamweaver MX中使用表格布局设计网站整体界面风格,在Fireworks MX和PhotoShop CS中设计各个页面所使用的图片。

(4)提供灵活多样的产品广告宣传,丰富网站的显示效果。

2.2.3环境可行性

一、软件环境:软件环境 (Software Environment)是运行于计算机硬件之上的驱动计算机及其外围设备实现某种目的的软件系统。

阳阳商城管理系统将采用以下的软件环境构成网站及后台管理系统整体开发:

● 操作系统软件:Microsoft  Windows  VISTA  Professional。 

● 服务器级软件:Tomcat服务器。

● 应用工具软件:制作网页的三剑客(Dreamweaver MX、Fireworks MX和Flash MX),制作动感图片的PhotoShop CS,编写调试JSP、Servlet和JavaBean代码的MyEclipse软件。

● 数据库软件:MySQL

软件开发环境的主要组成成分是软件工具。在网站及后台管理系统整个开发的过程中将主要使用以下几种工具,介绍如下:

(1)Tomcat服务器:作为Servlet/JSP的容器,负责处理客户请求,把请求传递给Servlet并把生成结果返回给客户。主要功能就是充当Java Web应用的容器,运行Java Web程序。

(2)网页三剑客Macromedia公司所开发的Dreamweaver、Fireworks和Flash软件,用来制作网页的各个界面效果。其中,Dreamweaver可以设计出匠心独具的版式,是Web站点开发的中心环节。Fireworks则可以使用户在心目中的图像在网页中所见所得,Flash可加入炫耀的矢量动画,使得网页制作得心应手。

(3)MyEclipse软件:IBM公司所开发的MyEclipse是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,它集成了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。主要的应用就是进行JSP、Servlet和JavaBean相关的编程。

(4)MySQL:不但能使用户更方便更快捷的管理数据库,开发应用程序。而且它使用了工业界最先进的数据库构架,具有完全的web功能,通过对高端硬件平台以及最新网络和存储技术的支持,可以为最大的WEB站点和企业级的应用提供可扩展性和高性能性,使用户能够在商业领域快速创建应用,从而减少了建立应用所需的时间。 此外,MySQL提供了重要的安全性方面的增强,保护防火墙内和防火墙外的数据。他支持强有力的,灵活的,基于角色的安全,拥有安全审计工具,并提供高级文件加密和网络加密功能。

二.硬件环境:硬件环境(Hardware Environment)是计算机及其外围设备组成的计算机物理系统。

阳阳商城管理系统前台页面及后台管理页面将采用以下的软件环境构成网站及后台管理系统整体开发:

● 电脑一台,Intel(R) CORE(TM)2 DUO CPU T6670

● 内存大小:2G

● 硬盘大小:500G

● 显卡:ATI Mobility Radeon HD 4500 Series(M92)

综上所述、从环境的角度分析,阳阳商城管理系统设计制作具有较强的可行性。

2.3网站的深入调查

经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过指导老师的耐心介绍,设计出该平台功能如下:

(1)能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理,以及找回密码功能。

(2)能够完成管理员对网站的商品资料(商品添加、商品修改、商品删除)会员管理(会员删除)、类别资料(类别添加,类别修改,类别删除)、订单管理、销售情况、搜索的功能。

(3)能过电子商品的名称,电子商品的分类,电子商品的编号进行搜索。

(4)能够通过查看购物车对所选商品进行确定、挑选、修改、删除,通过定单查询对支付费用进行确定。

经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。

2.4网站的设计特点

我们所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,达到资源共享,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购物活动过程简单、方便、易行。

2.5网站开发的设计思想

网上购物平台主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过商品资料(商品添加、商品修改、商品删除),以及会员管理、订单管理等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行用户注册,通过网站的分类信息或商品搜索功能,找到自己想要买的商品,装入购物车,提交定单进行购买。

网上购物平台的特点是客户和电子商品信息量很大,管理员需要整理的信息很多,为让管理员轻松、方便、快捷的管理,该平台采用符合购买电子商品基本的原则,满足广大客户的日益增长的数量,并达到操作过程中的直观、方便、实用、安全等要求。

2.6系统设计的总体规则

无论哪个网站都要有它自己的设计规则。该平台也一样,它的主要设计规则有:

简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。

针对性:该平台设计是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。

实用性:该平台能完成电子商品展示和管理员管理的基本信息,具有良好的实用性。

  

第三章  系统的开发技术及主要架构

3.1开发技术的选择

合理的选择开发技术,对于网站开发的完成情况有着非常重要的影响。要开发一个网站,首先要选择一个动态网页开发技术。当前比较流行的动态网页开发技术有JSP、ASP、PHP。它们的特性比较如下:

技术名称

ASP

JSP

PHP

对数据库的支持

开发难易度

容易

容易

较难

使用平台

Windows9X/NT

Windows/UNIX

UNIX

安全性

不好

不好

对组件的支持

支持

支持

不支持

执行方式

解释执行

编译之后执行

解释执行

跨平台

不好

                                                 表3-1 asp/jsp/php比较表

这三种都是在传统的HTML代码中,利用HTML标签的扩展,构成页面。不难看出,JSP的综合实力是最强的,尤其是在安全性和跨平台性两个方面,比其他的两种技术都要好,因此,最后我们选择基于Java的JSP技术作为动态网页的开发技术。

3.2系统的主要架构及开发模式

系统的建设关键在于其所使用的架构,而网上购物这种基于WEB的系统,传统的C/S架构已经不能满足大量用户的访问和操作,B/S基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,JAVA语言在该方面更是得天独厚,J2EE规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。基于MVC的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。

3.2.1基于B/S的体系结构

在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图3.1所示。

                图3.1 三层架构体系

这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。

3.2.2基于MVC的应用开发模型

在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。

在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。MVC的逻辑图如图3.2,MVC的业务流程图如图3.3。

图3.2应用服务器之上采用MVC开发的逻辑示意图

                     图3.3 MVC业务流程示意图

通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:

Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。

View(视图)层:由JSP、HTML组成。这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同风格的界面。

Controller(控制器)层:是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。

通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。

3.2.3数据库的选择

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它的实用性。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 而且,MySQL也有其特点:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、PerlPHP、Eiffel、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径

8.提供用于管理、检查、优化数据库操作的管理工具

9.可以处理拥有上千万条记录的大型数据库

3.3关键技术介绍

3.3.1JSP的技术原理

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP页面看上去象标准的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给用户。

程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。

所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的Java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。

JSP技术在多个方面加速了动态Web页面的开发:

(1)将内容的生成和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。

在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

(2)强调可重用的组件

绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

(3)采用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

(4)JSP能提供所有Servlets功能

与Servlets相比,JSP能提供所有Servlets功能,它比用Println书写和修改HTML更方便。可以更明确地进行分工,Web页面设计人员编写HTML,只需留出空间让Servlets程序员插入动态部分即可。JSP技术能够支持高度复杂的基于Web的应用。

(5)健壮的存储管理和安全性

由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。

(6)一次编写,各处运行

作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。

3.3.2JavaBean简介

JavaBean是一种基于Java的软件组件,JavaBean和Active控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在Web应用中集成JavaBean组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互及数据提取等。

由于Java语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean组件技术倍受人们关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、Web站点和应用程序构造器工具等多种方案中再利用。

为了创建和使用Java软件组件,JavaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构和细节问题,只需定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。

将JavaBean应用到JSP编程中,使JSP的发展进入了一个崭新的阶段。它将HTML网页代码与Java代码相分离,使其业务逻辑变得更加清晰。在JSP页面中,可以通过JSP提供的动作标签来操作JavaBean对象。其中主要包括<jsp:userBean>、<jsp:setProperty>与<jsp:getProperty>3个标签,这3个标签为JSP内置的动作标签。在使用过程中,不需要引入任何第三方的类库。

3.3.3 SERVLET简介

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

  客户端发送请求至服务器端;

  服务器将请求信息发送至Servlet

Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求

  服务器将响应返回给客户端

Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java ServletAPI的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。与其他的动态网页编程技术相比,Servlet技术有很多自己特有的优点。

* 方便

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

* 功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

* 可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到ApacheMicrosoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

* 节省投资

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

第四章  需求分析

需求分析主要是对收集到的需求进行提炼、分析和认真审查,以确保所有的项目和相关人员都明白其含义,并找出其中的错误、遗漏或其他不足的地方,形成完整的分析模型。需求分析的目的在于开发出高质量的和详细的需求,从而支持项目估算、软件设计、软件开发和软件测试。

4.1需求分析

需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位。阳阳商城管理系统在需求分析阶段主要完成了以下几个方面的内容。

4.1.1需求分析的任务

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统/计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计系统。

简言之,需求分析的任务就是解决“做什么”的问题,就是要全面地理解客户的各项要求,并准确地表达所接受的客户需求。需求分析的具体任务流程图如图4.1所示:

图4.1 需求分析任务流程图

阳阳商城管理系统在需求分析的任务阶段主要明确了以下的问题:

● 功能需求:明确所开发网站必须具备什么样的功能。

● 性能需求:明确所开发网站的技术性能指标。

● 环境需求:明确所开发网站运行时所需要的软、硬件的要求。

● 用户界面需求:明确人机交互方式、输入输出数据格式。

4.1.2需求分析的过程

一个网站的成功与否与建站前的网站需求获取有着极为重要的关系。网站需求分析的过程好坏直接关系到开发出来的产品能否得到客户认可,顺利交付给客户,客户能否真正运用产品帮助他解决业务或管理问题。因此,只有充分的获得客户需求,明确网站功能定位,详细进行网站策划,才能避免在网站建设中出现的诸多问题,使网站建设顺利进行。

根据阳阳商城管理系统的实际需要,应提供两种用户:商品购买者(普通用户)、商城系统后台管理者(超级管理员)。

普通用户的主要操作包括注册,登录,浏览,搜索,修改密码,修改个人信息,取回密码,购买商品,删除所选商品,下单等。

后台管理员的主要操作包括登录,管理商品(添加商品,修改商品,删除商品,搜索商品),类别管理(添加类别,修改类别,删除类别),会员管理(删除会员),订单管理(浏览订单,修改订单状态),销售统计等。

根据商城管理系统实际需要,及前两张中所描述的系统设计思想,商城管理系统应满足来自以下六方面方面的需求,本系统具体需求如下:

  • 用户信息部分
  1. 管理员可浏览,删除用户。
  2. 用户ID必须唯一,且为必填字段。
  3. 用户可以修改密码。
  4. 用户可以修改个人信息。
  5. 用户可以使用找回密码功能。
  • 商品信息部分
  1. 管理员可对商品资料数据进行维护,可添加,删除,修改。可通过关键字(正则表达式)对商品进行搜索。
  2. 管理员可通过商品名称,价格范围,上架日期,类别进行搜索。
  3. 用户可通过商品名称,商品类别,商品编号搜索商品。
  4. 用户可以将商品添加进购物车(订单)中。
  • 类别信息部分
  1. 管理员可对类别信息进行添加,修改,删除。
  2. 每种类别最多为3层。
  3. 用户可以通过分类信息浏览详细的分类商品。
  • 订单信息部分
  1. 管理员可以浏览订单信息。
  2. 管理员可以修改订单状态。
  3. 管理员可以删除废单。
  • 商品销售统计

管理员可以查询商品销售情况。

  • 购物车部分
  1. 用户可以删除购物车中的商品。
  2. 用户可以修改购物车中商品的数量。
  3. 用户可以确定下单。

4.2数据库需求分析

数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MySQL,SQL Server, Oracle等。我采用了MySQL数据库管理系统,建立的数据库名为shopping。

整个系统功能需要以下数据项:

用户:用户ID、用户名称、登录密码、用户真实姓名、邮编、邮箱地址、送货地址、联系电话。

商品:商品ID、商品名称、商品所属类别、市场价格、会员价格、上架时间、商品描述。

类别:类别ID、类别名称、类别描述、类别级别、子类别编号。

购物车:购物车ID、商品ID、商品数量、商品单价、订单ID。

订单:订单ID、用户ID、送货地址、下单日期、订单状态。

第五章  系统设计

5.1数据库设计

5.1.1数据库概念结构设计

概念结构设计是将分析得到的用户需求抽象为信息结构(即概念模型)的过程,它是整个数据库设计的关键。

概念结构的主要特点是:

1.能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。

2.易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键

3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。

4.易于向关系、网状、层次等各种数据模型转换。

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。

为了把用户的数据要求清晰明确的表达出来,通常要建立一种面向问题的数据模型,按照用户的观点来对数据和信息建模。最常用的概念性数据模型就是E-R模型。

E-R模型比较接近人的思维方式。此外,E-R模型使用简单的图形符号表示系统分析员对问题的理解,不熟悉计算机的人也能理解它,因此,E-R模型可以作为用户与系统分析员之间的交流工具。

阳阳商城管理系统在数据库的设计中充分考虑到概念结构的设计及其特点,通过对网站及后台管理系统需求分析的仔细研究,得出了以下的E—R图。

1.用户信息实体:用户信息实体包括用户名,真实姓名,密码,联系电话,email,送货地址,邮编,用户信息实体E-R图5.1所示。

                       图5.1用户信息实体E-R图

2.商品信息实体:商品信息实体包括商品名称,所属分类,商品描述,普通价格,会员价格,上架日期。其E-R图5.2所示

                       图5.2 商品信息实体E-R图

3.类别信息实体:类别信息实体包括类别名称,类别描述,类别编号,类别级别,PID,其E-R图如5.3所示:

                      图5.3类别信息实体E-R图

4.购物车信息实体:购物车信息实体包括产品ID,商品单价,商品数量,下单日期,其E-R图5.4所示

                    图5.4 购物车信息实体E-R图

5.订单信息实体:订单信息实体包括用户ID,送货地址,下单日期,订单状态,其E-R图5.5所示:

                       图5.5订单信息实体E-R图

5.1.2数据库逻辑结构设计

根据需求分析阶段得到的系统概念模型,经规范化处理得到如下所示的关系模型:

user(id、username、rname、password、phone、addr、youb、rdate、email)

category(id、name、pid、descr、cno、grade)

product(id、name、descr、normalprice、memberprice、categoryid、pdate)

salesitem(id、productid、unitprice、pcount、orderid)

salesorder(id、userid、addr、odate、status)

5.1.3数据库物理结构设计

本系统JSP进行开发的,对于数据库的选择,选择了MYSQL数据库产品,它是一种关系型数据库管理系统。。

物理结构设计基于以下几条原则:

(1) 减少数据冗余的重复

(2) 结构设计与操作设计相结合

(3) 数据结构具有相对的稳定性

在MySQL中建立名为shopping(阳阳商城)的数据库,并在此数据库中建立以下5张数据表:

  1. user表,主要用来存储用户信息,该表结构如下:

字段名

类型/长度

是否为空

主键

  默认值

说明

id

int(11)

no

yes

null

自动编号

username

varchar(40)

no

null

用户名称

rname

varchar(40)

no

null

真实姓名

password

varchar(16)

no

null

用户密码

phone

varchar(40)

no

null

用户电话

addr

varchar(255)

no

null

送货地址

youb

varchar(6)

no

null

用户邮编

rdate

datetime

no

null

注册时间

email

varchar(100)

no

null

电子邮箱

2.category表,主要用来存储商品类别信息,该表结构如下:

  字段名

类型/长度

是否为空

主键

默认值

说明

id

int(11)

no

yes

null

自动编号

pid

int(11)

yes

null

PID

name

varchar(255)

yes

null

类别名称

descr

varchar(255)

yes

Null

类别描述

cno

int(11)

yes

null

类别编号

grade

int(11)

yes

null

类别级别

3.product表,主要用来存储商品信息,该表结构如下:

  字段名

类型/长度

是否为空

主键

默认值

说明

id

int(11)

no

yes

null

自动编号

descr

varchar(255)

yes

null

产品描述

name

varchar(255)

yes

null

产品名称

normalprice

float

yes

null

商品价格

memberprice

float

Yes

null

会员价格

categoryid

int(11)

yes

null

所属类别

pdate

datetime

yes

null

上架日期

4.salesitem表,主要用来存储购物车信息,该表结构如下:

  字段名

类型/长度

是否为空

主键

默认值

说明

id

int(11)

no

yes

null

自动编号

productid

int(11)

yes

null

产品编号

unitprice

double

yes

null

商品单价

pcount

int(11)

yes

null

商品数量

orderid

int(11)

yes

null

订单编号

5.salesorder表,主要用来存储订单信息,该表结构如下:

  字段名

类型/长度

是否为空

主键

默认值

说明

id

int(11)

no

yes

null

自动编号

userid

int(11)

yes

null

用户编号

addr

varchar(255)

yes

null

送货地址

odate

datetime

yes

null

下单日期

status

int(11)

yes

null

订单状态

5.2界面设计

界面设计对一个网站的生存有着重要的影响。阳阳购物系统前台网站及后台管理系统在整体界面的设计上采用了在Dreamweaver MX中布局表格的方式,力求做出来的界面栏目划分清晰;在整体界面样式的处理上采用了CSS样式表,力求做出来的界面风格统一。

5.2.1网站前台界面设计

网站前台界面设计对于吸引用户浏览整个网站有着至关重要的作用,所以合理细致地设计界面效果就显得格外重要。在经过我认真地考虑之后,决定把网站前台界面划分为以下四个部分去设计:

  1. TOP部分:使用JAVAScript技术,获得商品类别及子类别信息。
  2. LOGIN部分:登录模块。设计出独特的样式。
  3. INDEX部分:详细商品类别信息。
  4. 其他部分:采用统一的样式,均为静态页面,无链接。

在具体设计上,采用了蓝色为基准色,以便突出企业形象。最终首页效果如

图5.6所示:

                   图5.6 首页效果图

网站前台其他页界面的设计流程和网站首页界面的设计一样,主要关注的就是INDEX部分的设计,这里就不再一一说明。

5.2.2后台管理系统界面设计

后台管理系统界面设计虽然不像前台界面设计那样要求严格,但是也应该具有一定的界面友好性,其关键的设计点就是要方便管理员进行管理。经过我认真地考虑之后,决定采用框架技术设计后台管理系统,整个框架被分为以下三大部分进行设计:

TOP部分:主要放置相应的功能选项。

权限TREE部分:主要放置一颗权限树,树中包含相应的管理链接。

MAIN部分:主要放置相关管理具体的内容。

之所以这样考虑,不仅是为了顺应时下开发B/S系统的潮流,而且更重要的是为了最大程度地方便管理员对系统进行管理。在具体管理上,管理员只需通过权限TREE部分的管理链接或者功能TOPMAIN部分的功能选项即可方便管理系统。

在具体设计上,采用淡蓝色这种柔和的色彩,以便统一界面风格。此外,还设计了分屏显示,隐藏视图等效果,其设计代码如下:

<table cellspacing=0 cellpadding=0 width="100%" border=0 class="header" height="20">

  <tbody>

  <tr bgcolor="#0096e1">

    <td valign=middle noWrap width="98%" bgcolor="#0096e1"

<script>

if(parent.menuState==1){

document.write("<a href=\"#\" οnclick=\"dispmenu()\"><img src=\"images/righticon.gif\" border =0 alt=\"显示菜单列表\"></a>");

}

</script>

    </td>

    <td valign=middle noWrap width="2%" bgcolor="#0096e1">

     <a href="#" οnclick="frameCtrl('20,*,100%')"><img src="images/upcoin.gif" border=0 alt="全屏显示上半部分"></a>

      

     <a href="#" οnclick="frameCtrl('20,100%,*')"><img src="images/downcoin.gif" border=0 alt="全屏显示下半部分"></a>

      

     <a href="#" οnclick="frameCtrl('20,50%,*')"><img src="images/splitcoin.gif" border=0 alt="分屏显示"></a>

      

    </td>

  </tr>

  </tbody>

</table>

TOP部分设计效果如图5.7所示: 

                         图5.7 TOP部分效果图

权限TREE部分设计效果如图5.8所示:

            

                     图5.8权限TREE部分效果图

MAIN部分设计效果图(以类别管理为例)如图5.9所示:

                        图5.9 MAIN部分设计效果

最终效果图如图5.10所示:

                               图5.10最终效果图

5.3系统功能设计

系统功能模块包括两大块,管理员用户功能模块和普通用户功能模块。其具体功能如下所示:

1、管理员功能:登录,会员管理,商品管理,类别管理,订单管理,统计分析,退出。

2、普通用户功能:登录,注册,找回密码,浏览商品,搜索商品,购买商品,删除购物车,下单。

3、类别管理:添加,修改,删除。

4、商品管理:添加,修改,删除,搜索。

5、会员管理:浏览,删除。

6、订单管理:浏览,状态修改。

7、统计分析:浏览。

管理员功能模块如图5.11所示:

        

                        图5.11管理员功能模块图

会员功能模块如图5.12所示:

  

                           图5.12会员功能模块

5.4系统功能流程图设计

5.4.1前台购物流程

                   图5.13 前台购物流程图

5.4.2用户登录流程

用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。

首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的邮编、E-MAIL、电话号码等。

                    

                      图5.14 用户登录流程图

5.4.3商品管理流程 

   

                         图5.15商品管理流程图           

在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。

5.4.4购物车流程

购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。

1.列出商品的列表,使用户能够自由选择所需要的商品。

2.当用户在点击“添加到购物车”的链接时,执行如下功能:

检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。

                                 

                

图5.16 购物车流程图

               

第六章  系统功能的实现

6.1数据库的实现

在Java的应用程序中,经常要涉及到数据库的操作。如果只是很简单的应用,编写几行代码就可轻松实现数据操纵,而对于稍微复杂一点的数据应用,Java开发出来的应用程序就需要编写大量操作数据库的代码,这些代码重复率高,容易造成程序错误,并且在以后难以进行维护。所以,将对数据库的访问操作封装在特定的类当中,就显得比较重要。经过封装,可以提高程序开发的效率,减少程序的出错概率,增强程序的可维护性。阳阳商城管理系统将对数据库连接和基本操作封装在特定的类里。

数据库建表语句如下:

create database shopping;

use shopping;

create table user

(

id int primary key auto_increment,

username varchar(40) not null,

rname varchar(40) not null,

password varchar(16) not null,

phone varchar(40) not null,

addr varchar(255) not null,

rdate datetime not null,

youb varchar(6) not null,

email varchar(100) not null

);

create table category

(

id int primary key auto_increment,

pid int, #pid0的是最顶层节点

name varchar(255),

descr varchar(255),

cno int, #最多三层, 每层占两位, 最多99个子节点

grade int #代表级别, 1开始

);

create table product

(

id int primary key auto_increment,

name varchar(255),

descr varchar(255),

normalprice float,

memberprice float,

pdate datetime,

categoryid int references catetory(id)

);

create table salesorder

(

id int primary key auto_increment,

userid int,

addr varchar(255),

odate datetime,

status int

);

create table salesitem

(

id int primary key auto_increment,

productid int,

unitprice double,

pcount int,

orderid int

);

6.2前台功能模块的实现

前台部分由用户使用,包括用户注册,登录,购物车,找回密码,个人资料管理等几个部分。

6.2.1注册功能的实现

当用户第一次登录时首先要注册,成为会员后,才可以购买物品。用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作。用户提交注册信息后,服务器将form表单所提交的内容插入数据库,完成服务器端对注册的响应。

用户注册页面的运行结果如图6.1所示:

                   图6.1 注册页面

6.2.2登录功能的实现

注册用户只有登录到此网络购物系统后,才能正常使用此系统提供的功能。用户登录界面也是此系统的主页,用户登录系统时需要输入自己的用户名和密码,系统根据数据库的用户表(user)中的记录核实用户输入的登录信息合法后,用户才能登录此系统。

在用户登录页面中,用户可以通过输入正确的用户名和密码进入到系统,系统会进入用户自服务界面。同时一个系统能正常使用,安全性是非常重要的一个部分。安全性是对用户的生份进行验证并通过验证的用户按照为其授予的访问权限来确定用户是否可以访问某资源的一个过程。为了保证系统的安全,为了保证应用程序的安全,本系统采用了身份验证技术调用User check方法。具体代码实现如下:

public static User check(String username, String password)

throws UserNotFoundException, PasswordNotCorrectException {

User u = null;

Connection conn = DB.getConn();

String sql = "select * from user where username = '" + username + "'";

Statement stmt = DB.getStatement(conn);

ResultSet rs = DB.getResultSet(stmt, sql);

try {

if (!rs.next()) {

throw new UserNotFoundException("用户不存在:" + username);

} else {

if (!password.equals(rs.getString("password"))) {

throw new PasswordNotCorrectException("密码不正确哦!");

}

u = new User();

u.setId(rs.getInt("id"));

u.setUsername(rs.getString("username"));

u.setPassword(rs.getString("password"));

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(rs);

DB.close(stmt);

DB.close(conn);

}

return u;

}

登录页面效果如图6.2所示:

图6.2 用户登录界面

6.2.3用户资料修改功能的实现

登陆成功后,用户可以选择修改个人信息,修改密码功能。

1、用户信息修改

用户进入自服务系统后,单击“修改我的信息”链接,进入用户修改资料页面,该页面主要用于修改用户信息,系统会自动调用用户信息,用户可以先浏览以确定是否真的需要修改。修改完成后,系统会调用update方法更新数据库。其关键代码如下:

public void update() {

Connection conn = DB.getConn();

String sql = "update user set phone = ?, addr = ?, rname= ?, youb= ?, email= ? where id = ?";

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

pstmt.setString(1, rname);

pstmt.setString(2, phone);

pstmt.setString(3, addr);

pstmt.setInt(4, id);

pstmt.setString(5, youb);

pstmt.setString(6, email);

pstmt.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

}

修改个人信息页面如图6.3所示:

                      图6.3 用户资料修改页面

2、用户密码修改

用户进入自服务系统后,单击“修改我的密码”链接,进入用户修改密码页面,该页面主要用于修改用户密码。修改完成后,系统会调用updataPassword方法更新数据库。其关键代码如下:

public void updatePassword(int userId, String newPassword) {

Connection conn = DB.getConn();

String sql = "update user set password = ? where id = ?";

PreparedStatement pstmt = DB.prepare(conn, sql);

try {

System.out.println("22222222222");

pstmt.setString(1, newPassword);

pstmt.setInt(2, userId);

pstmt.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

} finally {

DB.close(pstmt);

DB.close(conn);

}

}

修改密码页面效果如图6.4所示:

                     图6.4 用户密码修改页面

3、找回密码功能:

用户如果因为意外忘记密码,可以通过首页的“忘记密码”链接进入找回密码页面,提交了用户名和邮箱后,系统可通过服务器将用户密码发送至注册邮箱。其效果如图6.5所示:

                          图6.5 找回密码页面

6.3购物车功能的实现

在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,删除购物车中的内容,还可以随时去收银台结帐。

6.3.1添加购物车

添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品添加到购物车中,如果此商品已存在,则在原来基础上数量加1(pcount+1),关键代码如下所示:

String action = request.getParameter("action");

if(action != null && action.trim().equals("add")) {

int id = Integer.parseInt(request.getParameter("id"));

Product p = ProductMgr.getInstance().loadById(id);

CartItem ci = new CartItem();

ci.setProduct(p);

ci.setCount(1);

c.add(ci);

}

添加商品到购物车中如图6.6,图6.7所示:

                             图6.6 添加商品到购物车

                               图6.7 添加成功

用户选择了一种商品后,还可以继续选择其他商品,其关键代码如下所示:

public void add(CartItem ci) {

for (Iterator<CartItem> iter = items.iterator(); iter.hasNext();) {

CartItem item = iter.next();

if(item.getProduct().getId() == ci.getProduct().getId()) {

item.setCount(item.getCount() + 1);

return;

}

}

items.add(ci);

}

效果如图6.8所示:

                           图6.8 购买其他商品

6.3.2修改购物车

修改购物车就是用户可以更改所选商品的数量,当用户在购买数量文本框内输入所要购买的数量,单击修改,系统会调用了javascript:document.forms[0].submit()方法,响应用户的请求,增加商品数量。其关键代码如下:

if(action != null && action.trim().equals("update")) {

for(int i=0; i<c.getItems().size(); i++) {

CartItem ci = c.getItems().get(i);

int count = Integer.parseInt(request.getParameter("p" + ci.getProduct().getId()));

ci.setCount(count);

}

}

其效果如图6.9所示:

                             图6.9 修改购物车

6.3.3生成订单

生成订单是网上购物商城的最终目的,前面的所有的功能的实现都是为最后生成一个用户满意的订单做基础,在此要生成一个可以供用户随时查询订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变后,就可以到收银台结帐并生成订单。结帐的流程是:从购物车中读取商品名称,商品数量,商品价格信息,生成唯一的一个订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库中,用户确定后填写基本信息即可生成唯一订单。其效果如图6.10所示: 

                           图6.10 生成订单

6.3.4删除购物车

删除购物车就是用户把不想购买的商品从购物车中删除,其关键代码如下:

if(action != null && action.trim().equals("delete")) {

int id = Integer.parseInt(request.getParameter("id"));

c.deleteItemById(id);

}

效果如图6.11,6.12所示:

                  图6.11 购物车删除前

             图6.12 购物车删除后

6.3.5浏览订单

用户进入自服务系统后,可以通过“浏览以往订单”来浏览以往的订单,查询订单状态,订单明细。其效果如图6.13所示:

                          图6.13 浏览订单

6.4后台功能模块的实现

后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。主要包括管理员身份验证,商品管理模块,类别管理模块,查询用户信息管理模块,订单管理模块,统计分析模块。

6.4.1管理员登录模块

阳阳商城管理系统管理员账户唯一,通过form表单设置管理员账户为admin,密码为admin,关键代码如下:

String action = request.getParameter("action");

if(action != null && action.equals("login")) {

String username = request.getParameter("username");

String password = request.getParameter("password");

if( !username.equals("admin") || !password.equals("admin") ) {

out.println("username or password not correct!");

return;

}

session.setAttribute("admin" , "admin");

response.sendRedirect("AdminIndex.jsp");

}

其效果如图6.14所示:

图6.14 管理员登陆界面

6.4.2商品管理

管理员通过此模块对商品进行添加,删除,修改,浏览等操作。

1、商品添加,单击 “添加商品”超链接,系统将打开添加商品页面,该页面主要用于商品信息添加到数据库表中,以提供前台首页商品展示类别展示所需要的数据依据,其关键代码如下:

if(action != null && action.trim().equals("add")) {

String name = request.getParameter("name");

float normalPrice = Float.parseFloat(request.getParameter("normalPrice"));

float memberPrice = Float.parseFloat(request.getParameter("memberPrice"));

String descr = request.getParameter("descr");

Product p = new Product();

p.setName(name);

p.setNormalPrice(normalPrice);

p.setMemberPrice(memberPrice);

p.setDescr(descr);

p.setCategoryId(categoryId);

p.setPdate(new Date());

ProductMgr.getInstance().add(p);}

其效果图如图6.15所示:

                        图6.15 商品添加

2、商品修改,其关键代码如下:

int id = Integer.parseInt(request.getParameter("id"));

Product p = ProductMgr.getInstance().loadById(id);

String action = request.getParameter("action");

if(action != null && action.trim().equals("add")) {

String name = request.getParameter("name");

float normalPrice = Float.parseFloat(request.getParameter("normalPrice"));

float memberPrice = Float.parseFloat(request.getParameter("memberPrice"));

int categoryId = Integer.parseInt(request.getParameter("categoryId"));

String descr = request.getParameter("descr");

p.setName(name);

p.setNormalPrice(normalPrice);

p.setMemberPrice(memberPrice);

p.setDescr(descr);

p.setCategoryId(categoryId);

p.setPdate(new Date());

ProductMgr.getInstance().update(p);

out.println("更新成功!");}

其效果图如图6.16所示:

                        图6.16 修改商品

3、商品删除,jsp页面通过调用delete方法实现此功能,其关键代码如下:

public void delete(String[] idArray) {

String conditionStr = " where id in (";

for (int i = 0; i < idArray.length; i++) {

conditionStr += idArray[i];

conditionStr += ",";

}

conditionStr = conditionStr.replaceAll(".$", ")");

System.out.println(conditionStr);

dao.delete(conditionStr);}

4、产品搜索,其关键代码如下:

public int find(List<Product> products, int pageNo, int pageSize, int categoryId) {

String queryStr = " where p.categoryid = " + categoryId;

return dao.find(products, pageNo, pageSize, queryStr);

}

public int find(List<Product> products, int pageNo, int pageSize, String keyword) {

String queryStr = " where p.name like '%" + keyword + "%' or p.descr like '%" + keyword + "%'";

return dao.find(products, pageNo, pageSize, queryStr);

}

public int find(List<Product> products, int pageNo, int pageSize,ProductSearchFormBean bean) {

String queryStr = " where 1=1 ";

if(bean.getCategoryId() != -1) {

queryStr += " and p.categoryid = " + bean.getCategoryId();

}

if(bean.getName() != null && !bean.getName().trim().equals("")) {

queryStr += " and p.name like '%" + bean.getName() + "%'";

}

if(bean.getLowNormalPrice() != 0.0) {

queryStr += " and p.normalprice >= " + bean.getLowNormalPrice();

}

if(bean.getHighNormalPrice() != 0.0) {

queryStr += " and p.normalprice <= " + bean.getHighNormalPrice();

}

if(bean.getLowMemberPrice() != 0.0) {

queryStr += " and p.memberprice >= " + bean.getLowMemberPrice();

}

if(bean.getHighMemberPrice() != 0.0) {

queryStr += " and p.memberprice <= " + bean.getHighMemberPrice();

}

if(bean.getStartDate() != null && !bean.getStartDate().trim().equals("")) {

queryStr += " and p.pdate >= '" + bean.getStartDate() + " 00:00:00'";

}

if(bean.getEndDate() != null && !bean.getEndDate().trim().equals("")) {

queryStr += " and p.pdate <= '" + bean.getEndDate() + " 00:00:00'";

}

return dao.find(products, pageNo, pageSize, queryStr);

}

其效果如图6.17所示:

                  图6.17 搜索页面

6.4.3用户管理

该模块用来完成对注册用户的浏览及删除功能。如果用户蓄意注册或在很长的时间内没有订单生成,管理员就可以将该用户删除。单击“用户管理”超链接进入用户信息页面,其关键代码如下所示:

public static boolean delete(int id) {

boolean b = false;

Connection conn = DB.getConn();

String sql = "delete from user where id = " + id;

Statement stmt = DB.getStatement(conn);

try {

DB.executeUpdate(stmt, sql);

b = true;

} finally {

DB.close(stmt);

DB.close(conn);

}

return b;

}

其效果如图6.18所示:

                        图6.18 用户模块

此处,设置了分页显示功能,每页设定显示两条用户信息用户可以通过|<,<,>,>|等链接进行翻页。(商品列表也有此功能,就不再赘述。)其关键代码如下:

final int PAGE_SIZE = 2; //每页显示多少条记录

final int PAGES_PER_TIME = 10;//每次显示多少个页码链接

   int pageNo = 1;

   String strPageNo = request.getParameter("pageNo");

   if (strPageNo != null && !strPageNo.trim().equals("")) {

try {

pageNo = Integer.parseInt(strPageNo);

} catch (NumberFormatException e) {

pageNo = 1;

}

   }

   if (pageNo <= 0)

  pageNo = 1;

6.4.4类别管理

管理员通过此模块对类别进行添加,添加子类别,删除,修改,浏览等操作。

添加类别,阳阳商城管理系统将类别设置为3级,每级最多可容纳99条记录,所以,添加类别就分为添加跟类别和添加子类别两类。

1、添加跟类别,其关键代码如下所示:

String action = request.getParameter("action");

if(action != null && action.trim().equals("add")) {

String name = request.getParameter("name");

String descr = request.getParameter("descr");

Category c = new Category();

c.setPid(0);

c.setName(name);

c.setDescr(descr);

c.setGrade(1);

CategoryService service = CategoryService.getInstance();

service.add(c);

out.println("类别添加成功!恭喜!");

return;

}

2、添加子类别,其关键代码如下所示:

String action = request.getParameter("action");

if(action != null && action.trim().equals("add")) {

String name = request.getParameter("name");

String descr = request.getParameter("descr");

Category c = new Category();

c.setPid(pid);

c.setName(name);

c.setDescr(descr);

c.setGrade(grade + 1);

CategoryService service = CategoryService.getInstance();

service.add(c);

out.println("类别添加成功!恭喜!");

return;

}

添加跟类别与添加子类别采用同一页面,其页面效果如图6.19所示:

                       图6.19 添加类别

3、类别浏览中设置了一种新的浏览方式,AJAX,其关键代码如下所示:

<script language="javascript">

var req;

var gKey;

function init() {

if(window.XMLHttpRequest) {

req = new XMLHttpRequest();

} else if (window.ActiveXObject) {

req = new ActiveXObject("Microsoft.XMLHTTP");

}

}

function myLabelDblClick(key, parentKey) {

if(findNode(key).subitems.length > 0) return;

init();

gKey = key;

var url = "GetCategoryChilds2.jsp?id=" + escape(key);

req.open("GET", url, true);

req.onreadystatechange = callback;

req.send(null);

}

function callback() {

if(4 == req.readyState) {

if(200 == req.status) {

eval(req.responseText);

var node = findNode(gKey);

if(node.subitems.length > 0) {

node.refresh();

node.open();

}

}

}

}<script>

其效果如图6.20所示:

图6.20 类别列表AJAX

6.4.5订单模块

用户在前台购物所产生的订单不能立即执行需要系统管理员在后台进行订单管理,审核确认它的可执行性。用户单击 “订单管理”超链接进入用户订单处理页面,该页面是会显示订单被处理与否,其运行结果如图6.21,图6.22,图6.23所示:

                           图6.21 订单处理

              图6.22 订单明细查询

图6.23 订单处理

6.4.6统计分析

管理员可通过次功能产品销量情况,及时制定有效的销售策略,其页面效果如图6.24所示:

                                  图6.24 销售统计

第七章  系统测试

7.1系统功能测试

系统的功能测试是为了查看系统的功能是否得到实现,是否与需求分析设计的一样,下面将对系统用两种用户角色进行测试,即普通用户和管理员。

对普通用户测试:

  1. 注册功能:普通用户注册,成功后可登录系统。
  2. 登录功能:用户登录,登陆成功后可使用会员功能。
  3. 修改个人信息,密码:修改信息提交后,刷新页面,可看到更改后的信息。
  4. 搜索功能:用户通过商品类别,名称,ID搜索商品,成功获得商品信息。
  5. 购物车功能:用户使用购物车功能购买商品,成功后可通过订单浏览功能查询。

对管理员测试:

  1. 登录功能:管理员登录,可对系统进行管理。
  2. 商品管理:可添加,修改,删除,搜索商品,上传功能因个人所学有限暂时未实现。
  3. 类别管理:可添加,修改类别。
  4. 用户管理:可删除用户。
  5. 订单管理:可查询订单明细,修改订单状态。
  6. 统计分析:可浏览商品销售情况。

7.2系统错误测试

JSP代码中存在着字符编码问题,经测试发现,若注册ID为汉字时,可以注册,但注册成功后却无法登录系统,加入字符编码过滤后,此问题得到解决。

7.3系统安全性测试

系统用户权限进行了严格划分,系统用户分为两种:普通注册用户以及管理员。从而有效的防止了用户之间权利的交叉,保证了网络购物管理系统的正常运行。而所有的用户进入系统之前,必须输入正确的用户名以及密码,否则无法使用系统的任何功能。正是在这些功能的保证之下,很好的保证了系统的安全性。

总 结

经过三个多月的毕业设计,无论从理论上还是实际动手能力上,我都有了很大的提高。通过毕业设计,不仅使我对自己所属行业——软件开发的知识有了更深一层的了解,而且更重要的是锻炼了我发现问题、分析问题和解决问题的能力。此次设计既是对自己四年以来所学课程的实战应用,也是对自己参加实习后所学知识的检验,更是对自己以后走向工作岗位的预备演练。

从接到实际课题到具体实施操作,我做了大量的工作。首先是耐心细致地收集了用户需求信息,接下来针对用户需求认真仔细地分析了系统原型,在系统原型的基础上进行了总体的设计,根据总体设计完成了系统的详细设计,继而对系统进行了综合的测试,最后将系统进行了发布、推广和维护。这里的每一项工作无不渗透着我辛勤的汗水,由于它们环环相扣,缺少哪一项工作都不能很好的完成系统的开发,所以使我更加体会到做实际项目的必要性。只有多参加实际项目,才能够全方位、多角度的锻炼自己。

在系统主要设计技术的实现上,我查阅了大量的资料和技术文档,力求采用时下最新、最好的技术解决系统开发中所产生的问题,从而使自己学到了更多利用J2EE开发动态Web项目的实用技术,从而为将来进入企业快速融入项目开发打下了坚实的基础。

在整个系统的开发过程中,也遇到了不少棘手的问题,比如怎样把产品图片固定在一个方格内,怎样进行分页显示,怎样同时选择删除多条记录,怎样实现用户过滤功能,怎样配置数据库连接池等。虽然有些问题一时半会难以寻找到合适的解决方案,但是我不急不躁,经过认真思考,仔细查阅相关资料,最终还是成功的解决了实际问题,在很大程度上提高了自己发现问题、分析问题和解决问题的能力。

总而言之,经历了这段时间的磨练,增强了我克服困难的信心与能力,更加坚定了我从事软件开发的决心,让我充分认识到无论在学习上还是工作中,只要通过努力,就能够解决实际问题,最终达到成功的彼岸。

由于自己的水平有限,在系统设计和开发中难免存在不足之处,还请广大老师和同学给予批评指正。

                    

致 谢

在本次毕业设计中,我从指导老师徐琨身上学到了很多东西。徐琨老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。另外,在系统开发过程中王高科同学也给予我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,还有同班的同学同样给与我不少帮助,这里表示感谢!

参考文献

[1] 陈荣铨.中小型企业网站建设与推广[J].电脑知识与技术:学术交流,2006,                                                                           

    6:54-55

[2] 吴志红.企业建设商务网站可行性分析[J].集团经济研究,2006,12X:258-258.

[3] 辛立伟 王水萍.Java Web开发框架-Struts框架[J].福建电脑,20069151-152

[4] 刘家广,孙强.软件工程——理论、方法与实践M].北京:高等教育出版社,200523-96

[5] 周绍景唐艳邱发林.浅谈软件需求分析方法J].科技信息:学术版,2007237-37

[6] 徐赛华.软件需求分析研究N].吉林师范大学学报:自然科学版20061105-105

[7] (美]Roger S.PressmanSoftware Engineering:A Practitioner’s Approach,Fifth EditionM].BEIJINGChina Machine Press2002227-228

[8] 杨海萍 陈平.电子商务网站总体设计的研究[N].河南机电高等专科学校学报200513(2)52-53

[9] (美)David M.KroenkeDatabase Processing Fundamentals,Design,and Implementation Eighth EditionM].BEIJINGPublishing House of Electronics Industry2003

[10] 陶以政吴志杰唐定勇.基于J2EE的应用框架技术研究J].计算机工程与设计200728(4)826-828

[11] 马斗,邱哲,王俊标.专家门诊——JSP开发答疑200问M].北京:人民邮电出版社,200523-453

[12] 孙卫琴,李洪成.Tomcat与Java Web开发技术详解M].北京:电子工业出版社,200429-246

[13] (美)Bruce EckelThinking in Java[M].BEIJING:China Machine Press,2002.

[14] 赛奎春,白伟明,赵玉君,李南南.JSP信息系统开发实例精选M].北京:机械工业出版社,2005173-278

[15] 戴金龙.软件测试全过程J].软件世界,2007366-67

[16] 夏青.浅谈网站推广策略J].经济师,20073117-118

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值