网上书店系统设计与实现Word格式.docx
《网上书店系统设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《网上书店系统设计与实现Word格式.docx(36页珍藏版)》请在冰豆网上搜索。
java
Abstract
WiththecontinuousdevelopmentofInternet,e-commerceplatform,increasingpeoplebecomeconvenientwayofshopping.Inthiscase,fromonlinebuybooksdemandalsobecomeverystrong.Therefore,developasetofperfectbooksmanagementsystemmanagementsystemasnecessary.
Basedontheobject-orienteddevelopmenttechnology,thispaperexpoundsthedesignandimplementationofonlinebookstoresystem,thesystemUSEStheMySQLdatabase,tomcatasawebapplicationserver,usingHTML,JavaScript,CSS,JQueryatthefrontdeskinterfacedesigntechniquessuchascontrolundertheMyEclipsedevelopmentenvironment,isanMVCframeworkbasedonJSPtechnologyandthecurrentmainstreamSSH(struts+spring+hibernate)developmentofe-commercesites.
Thissystemmainlyrealizestheuserintheprocessofbuyingbooksonline,theusercanloginwebsiteafterregisteredusersonsiteandbuybooks,usercanloginstateforthebasicpersonalinformation,passwordandmanageorders.Doletusersdon'
thavetogotoabookshopcanbeconvenienttobuybookstohisideal,toenjoythepleasureofreading.
Keywords:
Onlinebookstore;
JSP;
1绪论
1.1研究背景
网络是新时代最盛行的信息传递媒介,网络在发展,信息技术、Internet/Intranet技术、数据库技术地不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的IT部门已经认识到Internet的优势,电子商务就是在这样一个背景下产生和发展起来的。
伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要的各种商品,初步让人们体会到了足不出户便可随意购物的快感。
我们需要开发一个电子商务系统---网上书店销售系统。
网上书店不同的是,它更多依托地面店的优势运营。
10年之后的2006年,这个国内最早的网上书店演变成了浙江博库书城及其网群。
相同的是,他们仍然更多地依靠地面店的优势在运营。
1999年,国内真正意义上第一家网上书店——当当网上线。
北京大学社会学专业毕业、从国家机关辞职下海的李国庆,拿着第一笔风险投资的基金开始了自己的网店生涯。
8年后,这家号称全球最大中文网上书店的企业营业额已经达到8个亿。
此后,伴随着世界电子商务浪潮的到来,越来越多的网上书店在国内兴起。
1.2研究目的与意义
电子商务将是21世纪的经济增长点,它所带动的电子商务的技术、产品、服务的发展将会给不同的行业带来大量新的机会。
电子商务的快速发展以及上网人数的剧增,为企业创造了许多网络商机。
网上书店作为电子商务系统的一个应用具有如下优点:
突破了商业往来的时间限制:
网络中的计算机可以一天24小时,天天提供客户完善的网络服务。
而且可以提供给全国各地的消费者,以最快的速度将公司图书的外观、内容、价格及相关信息提供给客户了解。
节省公司营运成本:
网上书店本身没有店面,减少了公司的管理费用,此外,网上书店管理系统精简了办公程序,促进了管理的规范化。
提高了客户购物的积极性:
顾客利用网上书店,可以很快的找到所需的图书,提交订单后,图书很快就会送到顾客手中,节省了顾客的购物时间和精力。
图书商品本身的优越性:
根据国内外同行的经验,专业、学术等图书更加适合邮购、自销等无店铺销售。
1.3国内外研究现状
1.3.1国内网上书店研究现状
在国内,有关在电子商务中的企业创新行为也有了一定的研究,近年来报刊杂志讨论的文章很多。
对于传统书店和网上书店的存在和发展问题,国内学者认为,方便和快捷的网络正在改变人们传统的购书习惯,网络销售目前已占据整个图书市场的5%,未来的3至5年,网络售书将占到图书市场的20%至30%。
而与此对应的是,传统书店也深深的感受到网上书店带来的阵阵冲击,或改革、或学习,传统书店面临诸多生存挑战。
不过,虽然网上书店具有着众多的优势,尤其在市场范围和成本优势上,但是传统的实体销售和网络销售面对的是不同的顾客群,彼此是不可取代的,甚至可互动、互促,提高交易频率。
因此,建议传统书店要结合网上书店一起经营。
国内学者普遍认为一个完整的网上书店系统要实现商家在线发布商品信息、消费者在线购买等功能,主要有以下几点功能:
后台的网站数据远程维护包括业务数据和分类与信息的添加、修改、删除等功能;
分类的灵活维护拥有不限制数量根据业务的多级分类目录;
可以在线添加、删除、修改书目各级类别;
注册用户、商品信息轻松地维护;
支持商品图片上载功能,订单结算统计功能;
用户免费注册及用户信息修改功能;
购物流程简单快捷,包含商品折扣机制,强大的信息分类检索浏览功能,分类列表简洁,商品条目分页显示;
强大的信息查询功能,使用户更快捷地查找到用户所要的商品信息;
面向消费者的订单查询功能,其他功能还包括读者点评、新书预定、用户个性化设等功能;
界面友好,用户浏览网页时候视觉舒服,网站功能方便快捷易用;
兼容性好,系统支持Access数据库,SqlServer数据库,即装即用。
1.3.2国外网上书店现状
世界上第一家网上书店是1991年在美国联机公司(AOL)的网络上建立的"
阅读美国"
书店。
1994年贝佐斯在西雅图成立的亚马逊网上书店,如今已成为全球最大网上书店,1998年的顾客总数为450万,销售额达6.1亿美元,股票市值100多亿美元,控制着美国80%的网上图书销售市场。
亚马逊网上书店的成功在图书销售领域产生了巨大影响。
1997年5月,美国最大的连锁书店巴诺书店也正式开办了网上书店。
此外,美国较有名的网上书店还有肥脑网上书店鲍德斯网上书店等。
据统计,到1998年美国的网上书店已达1200多家。
英国的书店也比较多,大型的有因特网书店(Internetbookshop)、字母街网上书、沃特斯通网上书店。
1998年,英国网上书店图书销售额为1500万英镑。
德国的网上书店主要有贝塔斯曼出版集团的图书在线网上书店()、霍尔兹布林克出版公司和施普林格出版社联合开办的T-ONLINE网上书店等。
据资料显示,1998年德国购书的网民达40万人。
1.4相关技术介绍
1.4.1Struts2技术简介
struts2[2]并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说struts2是struts1和Webwork结合的产物。
图1Structs2原理图
一个请求在Struts2框架中的处理分为以下几个步骤:
客户端发出一个指向servlet容器的请求(tomcat);
这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。
过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2的底层框架结构。
在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。
如:
ConfigurationManager、ActionMapper和ObjectFactory。
ConfigurationManager存有配置文件的一些基本信息ActionMapper存有action的配置信息。
在请求过程中所有的对象(Action,Results,
Interceptors,等)都是通过ObjectFactory来创建的。
过滤器会通过询问ActionMapper类来查找请求中需要用到的Action。
如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。
ActionProxy为Action的代理对象。
ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。
ActionProxy创建一个ActionInvocation的实例。
ActionInvocation在ActionProxy层之下,它表示了Action的执行状态,或者说它控制的Action的执行步骤。
它持有Action实例和所有的Interceptor。
ActionInvocation实例使用命名模式来调用,首先ActionInvocation初始化时,根据配置,加载Action相关的所有Interceptor。
然后通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。
在调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。
一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2框架中继承的标签。
1.4.2Ajax技术简介
众所周知,Ajax[3]并不是一个新生的语言,它是一系列语言的结合体:
HTML/XHTML、CSS、DOM、XML、XSLT、XMLHttp、JavaScript。
可以说Ajax涉及的知识面的确是很广的,在Web开发中为我们提供了很方便的交互式用户体验模式。
以往我们浏览网页的原理是由Client向Server提交页面申请,再由Server将申请通过HTTP传回给Client生成浏览页面:
图2Ajax原理图
使用Ajax后的工作原理如下图,可见通过Ajax在用户交互方面有了很大改进,用户可以不用为提交了Form而长时间等待服务器应答,而且通过Ajax也可以开发出华丽的Web交互页面。
图3Ajax工作原理图
在利用Ajax向服务器提交请求时,需要先确定三点:
使用GET或POST方式提交请求?
需要请求的页面(Page)或代码(Script)?
将请求的页面或代码加载到页面什么位置?
其中readyState表示当前对象状态,分为0~4的类别,0:
uninitialized,1:
loading,2:
loaded,3:
interactive,4:
complete。
status表示HTTP响应状态,常见状态有200OK,304NotModified,401Unauthorized,403Forbidden,404NotFound,500InternalServerError,503ServiceUnavailable。
代码中认定readyState==4和status==200为正常状态。
1.5本文组织结构
本文围绕着开发一个基于struts2的网上书店系统,描述了完成这个系统的主要过程,本文分为如下几个部分:
第一章是介绍网上书店系统的背景及国内外现状;
第二章主要对网上书店系统的需求进行了详细的分析,为系统的设计做好前期准备;
第三章主要是系统的设计思路及详细实现过程,主要包括了系统总体设计,数据库设计以及系统功能的具体实现;
第四章对系统进行了系列的测试,验证最后的系统功能;
第五章对本项目所获得的系统做了相应的总结。
2需求分析
2.1综合需求
基于struts2的网上书店系统,基本能够实现书店销售的一些流程,做好信息的录入。
该系统是一个基于internet网络的网上B/S[9]书籍交易平台,用户可以通过在网上点击搜索查看并购买书籍,正真做到足不出户就可以获得自己想要的学习资料及课外书籍。
功能主要包括:
用户注册/登陆、用户资料修改、购买书籍、用户账单管理等功能。
2.2功能需求
2.2.1识别外部角色
在买书网这个系统中,首先我们可以确定“管理员”和“普通用户”是该系统的两个主要实体。
2.2.2用例分析
管理员负责维护系统书籍并使用系统的主要功能,普通用户从系统中获取所需要的书籍及对自己基本资料进行维护。
以上两个实体的主要功能如表1所示;
用例图如图4所示。
表1基本用例
实体
功能
普通用户
注册用户
注册、查询图书
登陆、修改个人资料、查询/购买图书、订单查询
管理员
登陆、上架图书、下架图书、管理系统用户
图4系统用例图
2.2.2场景分析
用户登陆场景:
用户输入用户名和密码之后将数据提交到后台,后台对用户名和密码进行判断,如果判断成功跳转到首页,如果不成功就返回让用户重新登录。
图5用户登陆顺序图
用户注册场景:
用户访问注册页面输入用户基本信息及登录密码之后,前台先对数据合法性判断,判断成功之后提交到后台,后台将数据最终回写到数据库库。
图6用户注册顺序图
用户修改资料场景:
用户登录系统之后可以查看并修改用户相关资料,主要包括修改登录密码、联系方式及其他除用户名之外的所有信息。
图7修改用户资料顺序图
用户账单管理场景:
用户购买书籍后会生成相应的账单,用户在登录系统的状态下可以查看并管理自己的账单。
用户账单管理主要只提供查看功能,用户可以通过制定对应日期及相关条件查看制定的订单。
图8账单管理顺序图
图书上架/下架场景:
当有存在图书过期或者断货的时候管理员可以对图书进行下架,简单来说就是将对应的图书删除不在显示在书店中,同样当存在新的图书的时候管理员可以添加新的图书到书店中,添加时候管理员需要提供图书的详细信息。
图9上架图书顺序图
3系统设计
系统设计的目的是[9]确定系统如何完成预定的任务,也就是确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。
首先需要从数据流程图[15]出发,设想完成系统功能的若干种合理的物理方案,分析员应该仔细比较这些方案,并且和用户共同选定一个最佳的方案,然后,进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。
进行软件结构设计时应该遵循的最主要的原理是模块独立原理,也就是说:
软件应该由一组完成相对独立的子功能模块组成,这些模块之间的接口关系应尽量简单。
自顶向下逐步求精是进行软件结构设计的常用途径,但是,如果已经有了详细的数据流图,也可以使用面向数据流的设计方法,用形式化的方法有数据流图映射软件结构。
在进行详细的过程设计和编写程序之前,首先进行结构设计,其好处在于可以在软件开发的早期站在全局高度对软件结构进行优化,在这个时期进行优化付出的代价不高,却可以是软件质量得到重大的改进。
3.1系统总体设计
3.1.1系统基本流程
基于struts2的网上电子书店,实现网上购书的整个流程,用户进入网站的主页,可以先浏览书籍,也可以选择先注册用户成为书店的合法用户,如果用户没有注册并且登陆,是不能够实现下单操作的。
用户可以通过网站上的图书查询或者点击图书,浏览商品的详细信息,如果要购买该书籍,则可以点击购买按钮将该书籍加入购物车,然后可以选择继续浏览书籍,或者去结账下单操作,如果此时用户没有注册登陆,则是不能够进行下单操作的,在对购物车进行操作时候,用户可以选择修改商品的数量,也可以选择删除该商品,删除的将放在下面的页面显示删除过的商品,用户可以选择恢复操作,恢复刚刚删除的商品,用户可以直接点击结账进入确定购买的商品,然后用户选择下一步填写收货地址,收货用户以及一些其他的基本信息,如果用户以前购买商品,用户可以选择以前使用过的商品地址,直接生成,减少用户的数量两,最后,最后生成一个订单信息,告诉用户。
此时用户还可以继续购买书籍。
整体流程如图10所示。
图10整体流程图
3.1.2系统功能模块
用户模块:
用户注册部分:
网上书店规定只有合法用户才能购买图书,所以要购买图书的新用户必须进行注册,为了能及时发货给用户以及随时联系用户,所以系统必须记录每一位用户的详细信息。
在用户注册的时候,提供用户名的唯一性验证,密码安全性验证。
用户登录部分:
提供用户登录功能,如果用户名和密码不正确,不允许登录。
用户名密码验证成功就提示用户登录成功,用户就可以进行购买操作。
查看书籍模块:
提供用户浏览各个书籍的功能,用户能够根据自己的需要浏览需要的商品,同时还提供购买操作功能,将用户需要购买的商品加入购物车。
购物车模块:
记录用户浏览购买的商品,提供用户删除指定的商品,清空购物车里面的商品。
订单模块:
用于生成用户的订单信息,并且记录用户的订单信息到数据库中,同时记录用户的地址信息。
数据库模块:
用于存放用户的数据,图书的数据,以及用户订单的数据等。
图11系统模块划分图
3.1.3系统开发环境
服务器:
Tomcat7.0[10];
数据库:
MySQL-5.6.10[5];
平台:
MyEclipse8.5[4]
操作系统:
windows7(32位)
框架:
SSH(struts2+spring+hibernate)[8]
3.1.4MVC框架介绍
MVC[14]的定义:
MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC如何工作:
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
视图:
视图是用户看到并与之交互的界面。
对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和XHTML,XML/XSL,WML等一些标识语言和Webservices。
如何处理应用程序的界面变得越来越有挑战性。
MVC一个大的好处是它能为你的应用程序处理很多不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型:
模型表示企业数据和业务规则。
在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用EJBs和ColdFusionComponents这样的构件对象来处理数据库。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器:
控制器接受用户的输入并调用模型和视图去完成用户的需求。
所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
3.2数据库设计
3.2.1数据库逻辑设计
依据网上书店的处理需求,对应数据表的设计及功能如下:
用户表:
存放网上书店用户信息。
用户账户:
存放网上书店用户的账户信息。
书籍信息表:
存放书店书籍的描述信息。
书籍内容表:
存放书籍的内容包括封面及目录等。
订单表:
存放购买书籍订单消息。
订单子表:
存放订单的详细信息
书籍类型:
存放书籍的类型
数据库的逻辑设计图:
图12逻辑设计图
3.2.2数据库物理设计
在基本的数据表的结构确定后,就可以在MySQL中完成数据表的创建工作,下面给出建立对应数据表的SQL脚本。
用户表
createtableuser
(
IDint(8)notnull,
namevarchar(50)NOTNULLunique,
aliasvarchar(50),
passwordvarchar(50)NOTNULL,
telephonevarchar(10),
emailvarchar(20),
primarykey(ID)
);
altertableusercomment'
用户表'
;
用户账户表
createtableuseraccount
idint(8)notnull,
use_IDint(8),
integralnumeric(8,5),
balancenumeric(8,5),
passwordvarchar(50),
primarykey(id)
altertableuseraccountaddconstraintFK_1foreignkey(use_ID)
referencesuser(ID)on