1、基于JSP的网上书店系统的设计与开发 摘 要Internet最早在美国出现,如今,世界各国纷纷加入到这个行列,使Internet成为全球化的网际网络。随着用户的不断增加,其规模迅速扩大,它的领域也走向多元化。在线书店交易网站就是Internet和电子商务发展的产物,近几年在我国发展迅猛,如同一些书店纷纷在各地开设分店以拉近书店与顾客间距离一样。随着现今全民素质和科学技术水平的不断提高,知识更新的越来越快,人们随时都会有被淘汰的危机,为了不让被社会淘汰,做到与时俱进就必须多读书不断的学习,21世纪是网络的时代、信息的时代,时间是非常宝贵的,人们由于种种原因没有时间到书店去,也不知道哪家书店有自己
2、需要的书籍,同时那些传统书店的经营者又没什么好的方法让人们知道我这就有顾客所需要的书籍,这种买卖双方之间信息交流上的阻碍成为“在线书店”网站发展的原动力。在线书店网站的建立可以更好的解决这方面的问题,我们向广大用户推出的是一种全新的网上信息服务,旨在书店与消费者之间架起了一座高速、便捷的网上信息桥梁,我们的目的是节省您的时间、方便您的购书,使您永远走在时代的前沿。关键词Internet;网上书店;JSP;Mysql Database;Hibernate目 录1 引言51.1论文研究背景及意义52 设计工具及开发环境52.1开发工具及环境52.2 UML在面向对象设计与分析的运用62.2.1 U
3、ML简介62.2.2 UML的组成63 系统需求分析73.1 业务及系统角色73.2 系统结构73.3 用例需求93.4 功能需求93.4.1部分流程功能93.4.2主要实现功能113.4.3网站功能概述114 系统功能模块设计134.1功能模块设计134.1.1图书信息管理134.1.2购物车管理134.1.3会员管理134.1.4订单处理134.2系统组件功能表134.3系统功能流程图145 数据库设计155.1数据库总体设计155.1.1数据信息组成155.1.2 数据流程E-R图155.2数据库详细设计175.2.1数据库表结构设计185.2.2数据描述215.2.3数据库连接236
4、系统实现246.1 测试系统功能246.2 系统界面展示256.2.1商城首页256.2.2会员登陆256.2.3购物车266.2.4订单查询276.2.5后台管理27总结29参考文献30基于JSP的网上书店系统的设计与开发1 引言1.1论文研究背景及意义随着全球经济一体化的逐步发展和深入,在线书店已成为传统书店必不可少的经营策略之一.目前,在线书店在国际互联网上可以实现的商务已经多样化,可以完成从最基本的信息展示、信息发布功能到在线交易、在线客户服务、在线网站管理功能等,可以说,传统书店所具备的功能几乎都可以在互联网上进行电子化的高效动作。虽然传统书店规模有所不同,随着网上交易的开展,都将有
5、力地改变企业的发展空间,会对企业的竞争力产生不可忽视的影响。作为一个虚拟的书店,在线书店具有很多新的特性,以下这些是它的优势:其营业成本完全有理由比传统意义上的书店低得多:不需支付昂贵的店铺租金,花费浩大的装修;不需要将大笔的流动资金作为货物而沉泣在店里,可依靠“零库存”管理,缩速资金周转的周期,可以加速周转;同时,在线书店更容易开拓全球市场,国际互联网,www顾名思义体现了全球的一体化;实现24小时营业,不需要营业员,在线书城可以被设置成一个自动售货机;可以利用多媒体促销,各种文字,图象和动画,声音,让受众全方位感受广告诉求;依靠客户数据库能够提供全新的个人化服务等等。这些特性使在线书店充满
6、生命力,也是它发展的源动力。2 设计工具及开发环境2.1开发工具及环境此次要开发的网上书店系统是一个在Internet网络环境下运行的系统,因此我采用的技术有Struts+Hibernate+JSP,开发工具为MyEclipse、应用服务器Tomcat、数据库MySQL。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大地提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功
7、能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。MySQL是一个小型关系型数据库管理系统,开
8、发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购,而2009年,SUN又被Oracle收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.2 UML在面向对象设计与分析的运用2.2.1 UML简介UML(Unified Modeling Language),统一建模语言。它不是系统设计的方法,而是系统建模的标准。它是软件界第一个统一的可视化的建模语言,已成为国际软件广泛承认的标准,应用领域很广泛,可用于商业建模(Busi
9、ness Modeling)、软件开发建模的各个阶段,也可用于其它类型的系统。它是一个通用的建模语言,具有创建系统的静态结构和动态行为等多种结构模型的能力,具有可扩展性和通用性,适合于多种、多变结构的建模。2.2.2 UML的组成UML(Unified Modeling Language),统一建模语言。它不是系统设计的方法,而是系统建模的标准。它是软件界第一个统一的可视化的建模语言,已成为国际软件广泛承认的标准,应用领域很广泛,可用于商业建模(Business Modeling)、软件开发建模的各个阶段,也可用于其它类型的系统。它是一个通用的建模语言,具有创建系统的静态结构和动态行为等多种结
10、构模型的能力,具有可扩展性和通用性,适合于多种、多变结构的建模。第3章 系统需求分析3.1 业务及系统角色 系统角色业务角色功能权限系统管理员分类管理员管理有对各分类管理员的增删查改的权力,以及赋予相应管理员的不同权限的功能.订单管理员会员订单管理审核并管理会员的订单信息,具有修改,统计权限会员管理员注册会员管理增删查改等共权限商品管理员书店商品管理书籍上架,书籍添加修改资料等权限普通会员会员查看书籍信息,购书等3.2 系统结构系统结构是系统的最高层概念。在开发网上书店系统的实例之前,应该先选择或定义好一个合适的系统结构。该系统主要采用MVC三层模式,分别是模型(Model)层、视图(View
11、)层和控制(Controller)层。结构模型如图3.1所示:图3.1 MVC三层模式模型(Model)层实现系统中的业务逻辑。在MVC的三个部件中,模型(Model)层拥有最多的处理任务。封装的是数据源和所有基于对这些数据的操作。JavaBean分为业务类和数据实体,业务类处理业务数据、数据实体承载数据,基本上大多数的项目都是使用这种MVC的实现模式。在一个组件中,Model往往表示组件的状态和操作状态的方法,如处理请求执行业务逻辑、访问数据库、封装数据等等。封装的数据和行为必须是独立于任何的表现,提高可重复性,可以独立的测试,不要包含任何的Servlet和JSP的API。视图(View)层
12、用于与用户的交互,封装的是对数据源Model的一种显示。一个模型可以由多个视图,而一个视图理论上也可以和不同的模型关联起来,通常用JSP来实现。JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。控制(Controller)层封装的是外界作用于模
13、型的操作。通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。一般Controller在Model和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。3.3 用例需求购物单管理模块用例列表NO.用例名称优先级别摘要描述主要角色1购物单录入1会员登陆网站,确认购物.会员2购物单审核2对购物单审核商品管理员3分配送货员3确认购物单并准备配货订单管理员4确认送货4已送货订单管理员会员注册管理模块用例列表NO.用例名称优先级别摘要描述主要角色1注
14、册会员1登陆网站注册会员普通会员2注册审核2对会员注册进行确认审核会员管理员3分配用户登记3确认用户登记会员管理员后台管理模块用例列表NO.用例名称优先级别摘要描述主要角色1系统管理1系统登陆,关系各类管理员系统管理员2商品管理2商品管理商品管理员3会员管理2会员管理会员管理员4订单管理2订单管理订单管理员3.4 功能需求3.4.1部分流程功能图:3.2 主要介绍用户注册登陆流程功能. 图:3.2 用户注册部分功能说明新用户必须注册并登陆后才能进行在线购买,否则会提示你还没有登陆的信息,也就不具有在线交易的权限。用户登陆后,可以通过关键字、书籍类型、特价专卖等信息查询到用户想要查找的书籍信息。
15、根据前台用户的需求,画出以下E-R图n1客户写入留言版日期用户名内容 图:3.3用户留言E-R图 3.4.2主要实现功能网上书店系统的前台模块主要实现以下功能:1会员登陆及身份验证A用户注册成为会员 B验证用户注册信息C会员登陆系统时的身份给证 D修改资料2在线选购商品A浏览不同类别的书籍 B书籍查询 C用户选购自己喜爱的书籍并放入购物车 D用户管理自己的购物车 E用户提交订单 F用户查看自己提交的订单信息G. 用户留言3系统管理A商品管理 B订单管理 C会员管理D管理员管理 3.4.3网站功能概述该系统主要分为五大模块:用户登录注册、网上购物、订单管理、在线留言和管理系统。各模块的功能如下:
16、(一)、用户登录、注册用户注册是为了保证用户在本网站的安全性,便于网站管理。用户登录后才可以进行购物。(二)、网上购物用户在进行网上购物时,必须先登陆,如果是新用户,则必须先进行注册。1、书籍展示用户可以通过搜索的方式查看书籍信息,搜索的方式有:按图书类别,特价区,新品上市分类。每本书都显示了商品类别等。如果想了解每本书的详细信息可以点击书名图片下的查看详情。详细信息还包括了类别、名称、型号、市场价、特价、内容简介等。用户还可以通过直接输入书名进行查看。2、购物车用户在浏览书籍时,按下“购买”按钮,就可以将书籍放入自己的购物车中,便于购买。用户还可以根据自己的需要,进行查看、修改和清空购物车的
17、操作。(三)、订单管理为了用户更好的方便网上购物,设置了订单管理模块,用户可以多次挑选书籍到购物车中,最后一起统一结账.方便快捷.也可以更好的查看自己的购物信息!(四)、在线留言通过菜单“顾客留言”提交所要留言信息,以便得到管理员的解答或者评价书籍。(五)、系统管理管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要的大门。在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于其他用户此界面是不可见的。它包括商品管理、订单管理、会员管理和管理员管理,这里重点介绍商品管理。商品管理包括图书库存管理、订单管理、图书销售情况管理。1、图书库存管理管理员可以添加书籍、添加特价书籍、添加
18、书籍分类及修改书籍库存信息和删除书籍。2、图书销售情况管理管理员可根据日期和书号任一种或这两个条件作为查询条件,了解图书的销售情况。3、订单管理订单管理员可以查询所有订单记录信息,可以查看详细订单,受理,结单,删除订单等功能。第4章 系统功能模块设计4.1功能模块设计4.1.1图书信息管理该模块实现图书书目信息的分类显示,也是提供图书信息依据书籍类型等信息快速搜索的功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。4.1.2购物车管理用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行
19、结账处理。4.1.3会员管理实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。4.1.4订单处理根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。4.2系统组件功能表下表中给出了构成网上书店系统的各个组件,通过下表,可以从宏观上了解各个组件的功能。组件功能表:用户表示层(视图)控制处理层(控制器)业务逻辑层(模型)adminMenu.jspActionFormActionDBcart.jspLoginFormFirstActionConst
20、antscheckOrder.jspUserFormBookDetailActionBookdefault.jspBookIdFormBookSearchActionCartindex.jspBookCatIdFormLoginActionOrderleaveword.jspPageIdFormBookBuyActionmembermerchandise.jspBookShopCartFromAddrConfirmActioncategorymerInfo.jspBookSearchFormClearShopCartActionsorry.jspDeliveryFormOrderDelActi
21、onOrder.jspOrderIdFormOrderHistoryActionOrderInfo.jspPageCtrlActionSearch.jspRegistActionsubmitOrder.jspsMerchandise.jspreg.jspUpdateShopCartAction4.3系统功能流程图如下图 4.1 主要介绍了系统功能的总体流程网上书店系统商城首页购物车管理注册登录顾客留言订单管理查看书籍网上购物管理模块商品展示购物车下订单商品管理订单管理会员管理系统管理图 4.1 系统功能总体流程图第5章 数据库设计5.1数据库总体设计5.1.1数据信息组成根据系统功能需求,本系
22、统由以下数据信息组成,分别是: 1 管理员信息表,其中包括商品管理员,订单管理员,会员管理员和系统管理员。2 购物车信息表,其中包括订单编号,金额,下单时间,订单状态。3 购物车查询信息,其中包括商品名称,市场价,会员价,数量,金额。4 注册用户信息表,其中包括登录账号,会员等级,真实姓名,用户,密码,联系电话等等。5会员等级信息表,其中包括账号,姓名,会员级别,联系电话,注册时间等等6存储顾客购买的信息,其中包括顾客以前购买记录的信息。7存储订单的信息,其中包括某个用户每次购买商品的所有信息的记录。8订单信息表,其中包括管理员的姓名,密码。9管理员管理信息表,其中包括各类管理员的名字,权限等
23、5.1.2 数据流程E-R图信息顾客订货注册销售订单订单组成订单明细发货管理员定货管理会员商品信息查询如图5-1所示。图 5-1 数据流程E-R图数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。 考虑到用户的使用,网上书城的数据库设计主要分成这几个部分1: 管理员信息表( admin ) 6: 注册会员信息表 ( member )2: 购物车信息表( car
24、t ) 7: 会员等级信息表 ( memberlevel ) 3: 购物车查询表(cartselectedmer)8:书籍详细信息表(merchandise)4: 管理类型表( category ) 9: 订单信息表( order )5: 下单信息表( leaveword )后台管理,在建立数据库之间,首先要针对后台的功能需求建立数据模型,然后再建数据库。画出部分的E-R图:图5.32图书信息E-R图 5.2数据库详细设计5.2.1数据库表结构设计Admin表列名类型索引参照表说明IDint用户IDAdminTypeint管理员类型AdminNamechar(12)管理员名称LoginName
25、char(12)登陆名LoginPwdchar(12)登陆密码 图 5.4 管理员信息表cart表列名类型索引参照表说明IDint订单编号Memberint会员Moneydecimal(9,2)金额CartStatusint购物状态 图 5.5 购物车信息表cartselectedmer表列名类型索引参照表说明IDint用户IDCartint购物车Merchandiseint商品名称Numberint编号Pricedecimal(8,2)价格Moneydecimal(9,2)总价 图 5.6 购物车详细查询表category表列名类型索引参照表说明IDint用户IDCateNamechar(4
26、0)管理员类型CateDesctext管理员类型描述 图 5.7 管理类型表leaveword表列名类型索引参照表说明IDint下单编号Memberint购买会员AdminInt订单管理员Titlechar(60)类型Contenttext内容LeaveDatedatetime下单时间AnswerContenttest回复内容AnswerDatedatetime回复时间 图 5.8 下单信息表member表列名类型索引参照表说明IDint用户IDMemberLevelint用户等级LoginNamechar(12)登录名LoginPwdchar(12)登陆密码MemberNamechar(20
27、)会员名Phonechar(15)电话号码Addressvarchar(100)地址Zipchar(10)会员优惠RegDatedatetime登陆日期LastDatedatetime退出时间LoginTimesint登陆次数EMailvarchar(100)邮件 图 5.9 会员注册信息表MemberLevel表列名类型索引参照表说明IDint用户IDLevelNamechar(20)等级名称Favourableint等级 图 5.10 会员等级表merchandise表列名类型索引参表说明IDint书籍编号Categoryint类型MerNamechar(40)书名Pricedecimal
28、(8,2)市场价SPricedecimal(8,2)特价MerModelchar(40)商品型号Picturevarchar(100)图片MerDesctext描述Manufacturechar(60)厂家LeaveFactoryDatedatetime下单时间Specialint数量 图 5.11 书籍详细信息表orders表列名类型索引参照表说明IDint订单编号Memberint用户CartInt购物车OrderNOchar(20)订单编号号OrderDatedatetime下单日期OrderStatusint订单状态 图 5.12 订单表5.2.2数据描述系统关系结构图浏览器WEB服务
29、器ASP文件数据库WEB服务WEB请求请求结果图 5.13系统关系结构图数据流图顶层数据流图顾客管理员网上购书系统处理购书,修改资料 图 5.14顶层数据流图第一层数据流图顾客管理员接受事务事务处理输出事务图 5.15第二层数据流图第二层数据流图顾客管理员接受事务购书处理生成订单处理修改资料处理会员信息订单信息 图 5.16第三层数据流图数据字典名字:顾客名字:修改资料处理名字:管理员名字:生成订单处理名字:购书处理名字:接受事务描述:网上购书的人定义:顾客=网上购书的人描述:顾客修改自己的资料处理定义:修改资料处理=客户信息修改处理描述:维护网站的人定义:管理员=维护网站的人描述:对顾客的所
30、以订单的处理定义:生成订单处理=客户地址信息+书名+购书数量描述:对顾客购书的处理定义:购书处理=当前订单+最终订单描述:接受外部输入定义:接受事实=接受顾客、管理员的输入 图 5.17 数据字典5.2.3数据库连接部分代码如下:图书信息 ISBN 书名 出版社 作者/译者 图书价格 内容简介 a href=Javascript:openwin()加入购物车 查看购物车 返回首页 第6章 系统实现6.1 测试系统功能测试一:在管理员登陆时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。具体操作:用户名、密码、任意一项为空或者填写有误。结果:都出现相应的错误原因的信息提示。
31、结论:要求管理员必须填写正确的用户名和密码,才能进入管理页面。测试二:管理员删除一注册用户后,并让其登陆,看是否登陆成功。具体操作:管理员删除一会员表中的用户后,该用户在前台登陆。结果:该用户无法登陆。结论:用户数据删除功能正常。测试三:管理员删除一图书的信息,在前台按关键字查询,看是否能找到对应的信息。具体操作:在图书管理页面中的图书查看与修改页面中删除一图书的信息。结果:在前台搜索中,按关键字查询不到此书信息。结论:删除图书信息功能正常。6.2 系统界面展示6.2.1商城首页6.2.2会员登陆用户输入用户名和密码后登陆首页,查询相关书籍,购物车等信息!6.2.3购物车用户选择购物商品,进行
32、订单的三个过程:一:查看购物车物品.二:确认订单信息.三: 订单提交成功6.2.4订单查询订单成功后,查询详细的订单信息!6.2.5后台管理一:后台登陆界面:四个类型的后台管理员的登陆界面二:登陆管理界面:登陆界面后有六大管理模块三:会员管理:这个是会员管理登陆后的查询会员信息,每个类型的管理员登陆后,只能对相应的权限进行操作,不能对其他模块进行操作.四:商品管理: 这个是商品管理员登陆后查询商品信息!总结 课程设计是对我们本学期所学知识最后一次综合性检测和实际应用能力的考察。我们课程设计的题目是“基于JSP的网上书店系统的设计与开发”,该课题使我对所学的知识有了一个比较系统的认识和理解。涉及
33、了方方面面的知识,大大扩大了知识面,同时使我学会了如何使用所学的知识去解决一些实际的问题,增强了我们的动手能力。在设计中,我遇到了诸多困难,主要原因是自己掌握的知识并不扎实,所以光懂得一些书本上的知识是远不行的!通过实践我发现需要学习的东西还有很多,不仅限于课本上还有好多实践的经验。知识不是知道了,了解了就好,一定要去应用它,发展它,让它在现实生活中体现,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在联系。计算机是一门非常复杂、庞大的学科,一项课题往往需要多项技术才可以完成。在设计阶段,通过对课题的深层分析与研究,使我又对多门技术有了一定的了解。在遇到困难
34、时,我懂得了该怎样去应对,如何去查找和分析相关资料。在这次设计中我得到了老师和同学的指导和帮助,使我们认识到团队精神的重要性,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力和自信心,也使我的能力有了很大的提高,为我们以走上工作岗位打下了扎实的基础 非常感谢老师给我们这次锻炼机会,最后在老师的指导下完成了自己的设计任务,但由于自己的知识水平有限,有许多不足之处,恳请老师多多指教!参考文献1孙鑫.Servlet/JSP深入详解 M,北京:电子工业出版社,2008 2蔡剑,景
35、楠着:JAVA WEB应用开发:J2EE和TOMCATM,北京:清华大学出版社,2005 3 胡百敬,姚巧玫:SQL Server 2005 数据库开发详解北京:电子工业出版社,20064 李海峰基于J2EE技术开发高性能BBS论坛上海:华东师范大学,20065 王夕宁,王晓平JSP通用模块及典型系统开发实例导航北京:人民邮电出版社,20106 赛奎春JSP信息系统开发实例精选北京:机械工业出版社,20067 (美)格罗夫 著,章小莉 等译. SQL完全手册(第二版)北京:电子工业出版社,20068Bruce Eckel:Java编程思想M,北京:机械工业出版社,20089良葛格:JAVA JDK 5.0学习笔记M,北京:清华大学出版社,2006 10刘小华:JSP应用开发详解M,北京:电子工业出版社,201011傅雯彬,蔡承书