网上购物系统.docx
《网上购物系统.docx》由会员分享,可在线阅读,更多相关《网上购物系统.docx(43页珍藏版)》请在冰点文库上搜索。
网上购物系统
分类号单位代码
密级学号
课程名称网页设计与网站建设
题目
网上购物系统
摘 要
本网上购物系统是一个基于Internet,采用B2C(BusinesstoConsumers)[1]模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。
它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。
本文首先介绍了网上购物系统的现状及开发背景,然后论述了系统的设计目标,系统需求和总体设计方案,较详细的论述了系统的详细设计和实现。
最后,本文对网上购物系统进行了系统检测并提出了还需要改进的问题。
本系统主要为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为管理员提供了商品管理,用户信息管理,新闻信息管理,广告链接管理等功能。
在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,。
后台数据库选用MySQL数据库。
关键词B/S结构/JavaBean/JSP/MySQL
目录
1绪论3
1.1系统开发背景3
1.1.1网上购物的发展3
1.1.2网上购物系统的现状3
1.2系统实现的目标4
1.3系统的开发意义4
2系统分析6
2.1网站的设计目标6
2.2网站的可行性分析6
2.3系统主要架构模式7
2.3.1基于B/S的体系结构7
2.3.2基于MVC的应用开发模型7
3系统设计10
3.1系统功能结构图10
3.2类图设计11
3.3系统动态结构设计11
3.4系统流程设计15
3.5数据库设计18
4系统的实现22
4.1数据库的连接22
4.2用户登陆模块的实现22
4.3购物车模块的实现26
该步骤实现的关键语句为:
28
4.4后台管理模块的实现30
5系统测试36
5.1系统运行环境的搭建36
5.1.1JAVA虚拟机的安装36
5.1.2Tomcat环境搭建36
5.2系统程序的安装和加载37
5.2.1文件的拷贝37
5.2.2数据库的连接37
5.2.3Myeclipse开发工具37
5.3系统测试38
5.3.1系统关键部分测试分析38
5.3.2单元测试分析39
5.3.3测试分析总结及说明40
5.3.4系统的性能分析40
总结与展望41
致 谢42
参考文献43
1绪论
1.1系统开发背景
1.1.1网上购物的发展
近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。
于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。
网上购物系统[3]作为B2B,B2C(BusinesstoCustomer,即企业对消费者),C2C(CustomertoCustomer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。
本文主要考虑的是如何建设B2C的网上购物系统。
网上购物是一种具有交互功能的商业信息系统。
它向用户提供静态和动态两类信息资源。
所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。
网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。
这种全新的交易方式实现了公司间文档与资金的无纸化交换。
1.1.2网上购物系统的现状
目前在国内PHP与ASP应用最为广泛。
而JSP由于是一种较新的技术,国内采用的较少。
但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。
首先,PHP缺乏规模支持[4]。
其次,缺乏多层结构支持。
对于大负荷站点,解决方法只有一个:
分布计算。
数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。
而PHP则缺乏这种支持。
还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。
ASP和JSP则没有以上缺陷,ASP可以通过MicrosoftWindowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和TranscationServer获得结构支持;JSP可以通过SUNJava的JavaClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。
三者中,JSP应该是未来发展的趋势。
世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。
比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商,Intershop。
它原来的产品Intershop12,3,4占据了主要的电子商务软件份额。
它们都是通过CGI来提供支持的。
但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务ApplicationServer,而且声言不再开发传统软件。
总的来说,ASP,PHP,JSP三者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。
1.2系统实现的目标
现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。
这样才能使得在电子交易时避免不必要错误发生。
我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。
传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。
当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。
本设计在实际应用中的解决方案是建立网站,以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。
1.3系统的开发意义
Internet的发展[5],为改变传统的商业运作模式提供了一种技术上的可行性的方案:
利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。
而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:
电子商务。
当今比较流行的网上购物系统国外有“淘宝()”,国内有“当当()”。
它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。
设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。
设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:
动态网页制作技术的,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。
2系统分析
系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来,就必须先进行调查研究。
在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计。
2.1网站的设计目标
本购物系统由于需要演示程序,故为了演示方便,采用JSP+Access数据库的架构实现的,此系统分为前台管理和后台管理。
前台管理是友好的操作界面,供用户浏览、查询使用。
包括:
浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括:
商品管理、用户管理、网站信息管理、和广告友情链接等。
使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。
2.2网站的可行性分析
随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。
我们相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的所有商品和服务。
可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析[6]:
(1)经济可行性:
该平台设计只是作为本人的毕业设计,又因为本人的设计能力有限,其功能还不能完善,所以没有什么经济效益可谈。
(2)技术可行性:
JSP+Servlet的技术已经较为成熟。
(3)运行可行性:
该系统需要搭建JVM即JAVA虚拟机和Tomcat环境,在此环境下系统,并且在正确连接数据库后可以正常运行。
(4)法律可行性:
该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。
通过以上的可行性分析,我将采用JSP+Servlet相结合的技术,运用Access数据库对网站进行建设。
2.3系统主要架构模式
2.3.1基于B/S的体系结构
在B/S体系结构[8]系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。
服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由WebServer完成。
实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。
这种三层体系结构如图2-1所示。
图2-1B/S三层架构示意图
这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。
由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。
这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。
2.3.2基于MVC的应用开发模型
在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。
这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。
同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。
在本网上购物系统中,将采用通行的MVC模式来构建应用。
这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。
MVC的逻辑图[9]如图2-2所示:
图2-2应用服务器之上采用MVC开发的逻辑示意图
图2-3MVC业务流程示意图
通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:
Model(模型)层:
由EJB组件来实现,EJB将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。
View(视图)层:
由JSP、HTML组成。
这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。
同时能够嵌套动态数据,可以进行动态页面的展示。
同时可以方便地进行客户端的个性化定制。
根据每个客户的需求来展示不同风格的界面。
Controller(控制器)层:
是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。
通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。
主要在于JSP以脚本语言的形式存在,它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。
通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。
将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。
3系统设计
3.1系统功能结构图
层次模块结构是将系统分为若干子系统,子系统划分为若干的模块。
模块是具有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。
在结构化设计中,模块一般都是按功能划分的通常称为功能模块。
合理的功能模块的划分能够极大限度地减重复劳动、提高开发工作量的效率并增大系统的可维护性。
在系统分析基础上,将系统分为俩大模块,即前台模块和后台模块。
网上购物系统功能结构如图4.1所示。
图3-1网上购物系统功能结构
3.2类图设计
图3-2系统类图
3.3系统动态结构设计
根据需求分析创建的系统用例图,我们主要创建如下4个时序图:
管理员\用户登录,用户注册(Register)和用回信息修改
1)用户注册个人信息的工作流程:
1.用户进入登录页面,,在登陆页面点击注册则用户即可进行注册个人信息。
2.系统将用户提交的个人注册信息提交给Servlet类并进行验证处理。
3.如果提示添加成功,则用户就可以在登录页面输入用户名和密码进行登录,否则用
户将重新注册或退出。
根据基本流程图,用户注册个人信息的序列图如下所示
图3-3用户注册序列图
2)用户登陆网上购物系统的工作流程序列图:
1.用户登录系统,在登陆页面login用户名和密码并提交。
2.系统将用户提交的用户名和密码传递到control页面中检查用户的身份是否合法(将用户信息与数据库中的用户信息进行比较,检查用户信息是否存在).
3.检查完毕后将验证结果返回到登陆页面上显示。
4.用户在登陆页面获得验证结果,如果用户身份未通过,重新登录或退出。
否则继续选择下一步操作。
根据基本流程,用户登录系统的序列流程图如图所示:
图3-4用户登录系统的序列流程图
3)用户修改个人信息的工作流程序列图:
1.用户进入修改个人信息页面AddForm,并在界面中提交个人信息。
2.界面AddForm管理员提交的个人信息传递给控制对象Control。
3.控制对象向数据库中插入新修改的个人信息的数据。
4.控制对象将修改个人信息成功的信息返回到界面AFrom并提示用户修改成功。
根据基本流程,用户修改个人信息的序列图如下:
图3-5用户修改个人信息
4)管理员登陆网上购物系统的序列工作流程图:
1.管理员登录系统,在登陆页面login用户名和密码并提交。
2.系统将管理员提交的用户名和密码传递到control页面中检查管理员的身份是否合法(将管理员信息与数据库中的用户信息进行比较,检查管理员信息是否存在).
3.检查完毕后将验证结果返回到登陆页面上显示。
4.管理员在登陆页面获得验证结果,如果用户身份未通过,重新登录或退出。
否则继续选择下一步操作。
根据基本流程,系统管理员登陆网上购物系统的序列图如下:
图3-6系统管理员登陆网上购物系统的序列图
3.4系统流程设计
1)前台购物流程如图3-7所示
图3-7前台购物流程图
用户再前台可以浏览商品,看到自己喜欢的商品可以选择商品,然后订购商品,这时需要进行判断,如果是没有注册的用户,那么系统跳到注册页面,如果是注册了没有登录的用户,则跳转到登录页面,已经登录的用户则跳转到购物车页面,然后去收银台结帐,然后提交订单。
2)注册功能流程如图3-8所示
图3-8注册功能流程图
注册的具体实现为:
点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E_mail,地址,电话,真实,姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。
3)商品搜索流程如图3-9所示
图3-9商品搜索流程图
商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。
用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。
并且能列出通过搜索得到的商品的详细信息。
4)用户登录流程如图3-10所示
图3-10用户登陆流程图
用户登录,首先要有一个提供用户登录的表单。
用户登录的表单应该嵌入整体的结构当中。
在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。
首先,用户要有一个用户名和密码。
商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。
同时对密码也要求保密,将密码加密后再存入数据库。
另外,一个电子商务网站。
用户的真实姓名是必不可少的。
除此之外还需要用户的性别、E-MAIL、电话号码等。
5)商品管理流程如图3-11所示
图3-11商品管理流程图
在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。
并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。
6)购物车流程如图3-12所示
购物车具体的实现可采用这种形式:
定义一个购物车的类(Class)。
1.列出商品的列表,使用户能够自由选择所需要的商品。
2.当用户在点击“添加到购物车”的链接时,执行如下功能:
检查用户购物车类是否存在。
如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。
如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中。
图3-12购物车流程图
3.5数据库设计
系统管理员表(tb_Admin):
管理系统管理账号和密码的表,主要属性有:
用户名和密码,系统管理员根据用户名密码登陆后台系统。
tb_Admin
字段名
数据类型
长度
主外键
字段说明
备注
AdminID
Varchar
32
主键
管理员ID
非空
Password
Varchar
32
无
管理员密码
非空
会员区域表(tb_Area):
网站会员购物地点,主要属性有:
AreaID,AreaKM,系统可以根据会员区域表收取会员需要运输商品的运输费。
tb_Area
字段名
数据类型
长度
主外键
字段说明
备注
AreaID
Varchar
50
主键
区域ID
非空
AreaKM
Varchar
50
无
送货距离
无
会员购物信息表(tb_BuyInfo):
会Sum信息统计表,主要属性有:
BuyID,GoodsID,Num,SumPrice,McmberID
tb_BuyInfo
字段名
数据类型
长度
主外键
字段说明
备注
BuyID
Varchar
50
主键
购物单号
非空
GoodsID
Varchar
50
无
商品ID
无
Num
Int
32
无
商品数量
无
OrderID
Varchar
50
无
订单号
无
SumPrice
Varchar
50
无
总价格
无
MemberID
Varchar
50
外键
会员ID
无
商品类别表(tb_Class):
商品类别显示表,主要属性有:
ClassID,GategoryUrl。
主要管理所有商品种类及其简易图标。
tb_Class
字段名
数据类型
长度
主外键
字段说明
备注
ClassID
Varchar
50
主键
商品种类ID
非空
GategoryUrl
Varchar
50
无
商品标识表
无
商品信息表(tb_GoodsInfo):
商品信息表主要负责存储商品名称,商品类别,商品图标,商品图片,商品价格,商品重量等信息。
主要属性有:
GoodsID,ClassID,GoodsIntroduce,GoodsBrand,GoodsUnit,GoodsWeight,GoodsUrl,MarketPrice,MemberPrice,Isrefinemen,IsHot,AddDate,IsDiscount。
tb_GoodsInfo
字段名
数据类型
长度
主外键
字段说明
备注
GoodsID
Varchar
50
主键
商品名称
非空
ClassID
Varchar
50
外键
商品类别
非空
GoodsIntroduce
Text
250
无
商品介绍
无
GoodsBrand
Varchar
50
无
商品品牌
无
GoodsUnit
Varchar
50
无
商品计数单位
无
GoodsWeight
Float
16
无
商品重量
无
GoodsUrl,
Varchar
50
无
商品图片地址
无
MarketPrice
Float
16
无
商品市场价格
无
MemberPrice
Float
16
无
商品会员价格
无
Isrefinemen
Bool
1
无
是否精品
无
IsHot
Bool
1
无
是否热销
无
AddDate
Datetime
32
无
上传日期
无
IsDiscount
Bool
1
无
是否特价
无
商品图片表(tb_Image):
商品图片表,主要用来存储商品的图片,主要属性有:
ImageID,ImageName,ImageUrl。
tb_Image
字段名
数据类型
长度
主外键
字段说明
备注
ImageID
Varchar
50
主键
商品图片ID
非空
ImageName
Varchar
50
无
商品图片名称
无
ImageUrl
Varchar
50
无
商品图片地址
无
商品信息表(tb_Member):
会员信息表,主要用来存储会员的一些基本信息,如会员ID,会员性别,会员密码,会员真实名字,会员联系方式(电话号码、E-mail,所在城市、邮政编码等),现有RMB,上一次登录时间,主要属性有:
MemberID,Sex,