JSP 网上书店网站系统.docx
《JSP 网上书店网站系统.docx》由会员分享,可在线阅读,更多相关《JSP 网上书店网站系统.docx(17页珍藏版)》请在冰豆网上搜索。
![JSP 网上书店网站系统.docx](https://file1.bdocx.com/fileroot1/2022-11/22/44e46993-3d75-466d-b23f-949bd08432f3/44e46993-3d75-466d-b23f-949bd08432f31.gif)
JSP网上书店网站系统
《中间件技术》
课程设计报告
题目在线图书销售网站BookStore
的设计与实现
院系计算机科学与技术学院
2014年06月17日
目录
目录2
1.课程设计环境3
2需求分析3
2.1系统功能分析4
3系统设计5
3.1概要设计5
3.1.1系统总体结构设计5
3.1.2系统模块设计5
3.2数据库概念结构设计6
3.2.1数据库表的设计6
4系统实现7
4.1图书展示模块7
4.2图书查询9
4.3购物车11
4.4购书结帐13
5系统测试14
5.1单元测试14
5.2集成测试15
6课程设计小结15
附录16
1.课程设计环境
MyEclipseProfessional2014GA,WebLogic12c,MySQL5.6.16。
2需求分析
需求分析阶段处于软件开发的前期,其基本活动是准确定义未来系统的目标,确定为了满足用户的需求必须做什么。
需求分析又划分为两个阶段,即需求获取和需求规约,前者是用自然语言清楚地描述用户的要求,而需求规约的目的是消除获取需求的二义性和不一致性。
在软件生命周期中,一个错误发现得越晚,修复错误的费用也越高,所以,高质量的需求工程是软件项目得以正确、高效完成的前提。
作为一家在互联网上展开业务的书店,用户可以在任何时间进行浏览与购买图书,这就要求系统首先必须满足每天24小时、每周7天不间歇的服务模式,就像ATM自动受货机一样,因此稳定性是网上书店开张的基础。
另外,安全支付是网上交易的重要问题。
目前银行所使用的网上支付安全协议有两种:
SSL(SecuritySocketLayer)是基于TCP/IP之上的用于Internet网上安全传送信息的协议,通过对收发双方的身份验证和管道加密安全保证传送数据所必须的数据安全以及完整性;SET(SecureElectronicTransaction)则是在开放网络环境中的信用卡支付的安全协议,它采用公钥密码体制和X.509电子证书标准,通过相应软件、电子证书、数字签名和加密技术能在电子交易环节上提供更大的信任度、更完整的交易信息、更高的安全性和更少受欺诈的可能性。
为了支持更多的银行卡用户参与购书活动,网上书诚对于这两种安全协议都应支持。
互联网电子商务技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。
数字证书是防范这一风险的主要手段,它以网络通信中标志通信各方身份信息的一系列数据提供了在Internet上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证,它由权威机构——CA机构——又称为证书授权(CertificateAuthority)中心发行。
为防范网上交易风险,网上书诚应当获取权威CA机构的认证证书[5]。
2.1系统功能分析
部分功能说明
(1)用户注册流程图:
如图2.1所示
图2.1为用户注册部分功能说明
会员登陆首页后可以填写反馈信息发布申请表,填好必填的内容后点击提交,就可以完成信息反馈了。
新用户必须注册并登陆后才能进行在线购买,否则会提示你还没有登陆的信息,也就不具有在线交易的权限。
用户登陆后,可以通过关键字、排行榜、推荐专区、及本站公告等信息查询到用户想要查找的书籍信息。
3系统设计
3.1概要设计
概要设计的任务,是在需求分析的基础上,考虑经济、技术和运行环境等各方面条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软硬件设备,提出系统的实施计划。
概要设计内容主要包括系软件系统总体结构设计、系统流程设计等等。
3.1.1系统总体结构设计
系统总体结构设计确定软件由哪些模块组成以及这些模块之间的动态调用关系。
网上书店不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。
在功能方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法;
(2)在系统开放性方面,按照软件工程开发规范实现系统的开放性,既便于扩充又便于升级,以适用今后其他人的借鉴需求。
(3)在系统和数据的安全性方面,系统采用数据库级用户权限和应用程序级运行权限的双重控制机构,提供了统一的基于角色的用户管理手段,具有完善的系统和数据安全的保障体系。
(4)在操作性方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。
3.1.2系统模块设计
该网上书店系统的功能在系统的需求分析已确定,共分为4大功能模块。
各模块之间并非各个独立,而是相互联系,相互关联在一起的,从而使本系统能够很好的完成所设计的功能。
该网上书店的功能模块及其子模块如图所示:
该网站的功能模块如下表所示:
功能模块图
序号
功能模块
功能概述
1
图书展示
是一个书店应具备的最基本的一项功能。
通过图书的展示才能让购书者能够找到自己想要购买的图书。
该功能在首页中完成。
2
图书查询
图书查询在网上书城中也是一项很重要的功能,主要帮助用户快速地找到想要购买的图书。
3
购物车
购物车是网上书城中最重要的组成部分。
网上书城的目的是实现图书的在线销售。
因此为顾客提供一个方便、个性化的购物车将会大大提高用户在网上购书的兴趣。
购物车的实现技术有方式
4
购书结帐
目前由于技术及法律上的一些问题,网上在线结算、支付还未普及使用,因此作为网上书城这类中小企业的书款结算还不宜在网上在线进行
3.2数据库概念结构设计
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能够充分满足各种信息的输入和输出。
收集基本数据、数据结构和数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础
3.2.1数据库表的设计
表3.1管理员信息表(admin)
字段名
数据类型
长度
主键
是否空
描述
ID
int
4
是
否
管理员id
LoginName
char
12
否
是
登录名字
LoginPwd
char
12
否
是
登录密码
表3.2商品类别信息表(category)
字段名
数据类型
长度
主键
是否空
描述
ID
int
4
是
否
商品id
CateName
char
12
否
是
商品名称
CateDesc
char
12
否
是
商品类名称
表3.3购物车信息表(cart)
字段名
数据类型
长度
主键
是否空
描述
ID
int
4
是
否
购物车id
Member
int
4
否
是
会员id
Money
decimal
9
否
是
总金额
CartStatus
int
4
否
是
购物状态
表3.4用户信息表(member)
字段名
数据类型
长度
主键
是否空
描述
ID
int
4
是
否
用户id
Memberlevel
int
4
否
是
用户级别
LoginName
char
12
否
是
用户名字
LoginPwd
char
20
否
是
密码
Phone
char
15
否
是
电话
Addrress
varchar
100
否
是
地址
EMail
varchar
100
否
是
邮件
4系统实现
4.1图书展示模块
是一个书店应具备的最基本的一项功能。
通过图书的展示才能让购书者能够找到自己想要购买的图书。
该功能在首页中完成。
1)数据库准备图书展台的目的就是将网上书城中的图书有序地罗列出来。
该操作涉及到booshop数据库中的book数据表
2)处理逻辑处理过程首先建立数据库连接,打开book数据表,将其中推荐的图书信息显示出来。
3)展台页面设计图书展台设计的任务是给用户提供一个简单、明了的图书列表界面。
设计时考虑到方便程序实现还要考虑适合用户的使用习惯。
为此使用了嵌套的,
标记来实现图书信息的格式输出。本次将图书展台划分为四部分。
一部分用于展示管理员推荐的图书,一部分用于展示热销的图书,一部分用于展示顾客经常访问的图书,还有一部分用于展示最新到货的图书。
对于管理员推荐的图书,主要是由管理员通过后台指定一些书,然后在前台显示出来。
这样做的目的一方面是为了向用户推荐一些时尚的图书,另一方面就是考虑到网站特色而采取的措施。
对于热销图书的推荐主要是通过对图书销售量的统计而得到的,显然销售量多的图书是热销的图书。
本次是按成交次数对书城中的图书进行排队,越排在前面的就是越畅销的。
程序代码见附录。
图书展示设计流程图
4.2图书查询
图书查询在网上书城中也是一项很重要的功能,主要帮助用户快速地找到想要购买的图书。
再一个规模较大的书城中,如果没有这项功能,用户很难找到所需要的图书,那么这个网上书城的吸引力将会因此大大降低。
同时好的搜索功能将会带来更多的用户青睐。
为适合不同的拥护的需求,本次采用模糊查询的方法为用户提供方便的图书查询。
1)数据库准备查询图书模块的目的是为了帮助用户快速找到想要购买的图书。
由于用户对书城中的图书情况不可能十分清楚,因此采用了模糊查询的方法,只要用户输入了相关的少量信息就可以查询到相应的结果。
该操作涉及到bookshop数据库中的book数据表。
另外在模糊查询时使用了数据库系统的like运算符。
2)处理逻辑处理过程首先建立数据库连接,打开book数据表,并按照用户指定的方式和关键字信息将book数据表中满足要求的图书信息显示出来。
为了适合用户的不同要求,本次提供了四种查询方法,可按照书名、出版社、作者、ISBN等方式查询,并且查询方法采用模糊查询的方法,这样用户在输查询信息时只需输入部分信息即可。
图书查询流程图
4.3购物车
购物车是网上书城中最重要的组成部分。
网上书城的目的是实现图书的在线销售。
因此为顾客提供一个方便、个性化的购物车将会大大提高用户在网上购书的兴趣。
购物车的实现技术有方式
1:
用会话会话中可以存放任何类型数据,每个用户有一个唯一的会话ID,用此ID区分不同用户的购物车会话数据是存放在WEB服务器的内存中的,如果使用购物车的用户比较多的话,这样一来将占用大量服务器资源
会话有一小缺陷,它是依靠COOKIE来与用户通讯的,一旦用户关闭COOKIE,使用会话将比较麻烦。
当然在ASP.NET中还有另2种方式保存会话数据
一种是指定另一台服务器来存放会话数据,这样一来可以有效分担WEB服务器的运行开销。
另一种是把会话数据存放在MSSQL中,MSSQL是利用局部临时表实现的,会话数据放在局部临时表中,MSSQL为每一个局部临时表也分配一个唯一的ID,我想是用此ID区分不同用户的不同会话数据的。
但是我不推荐使用此方法,频繁在数据库里面建立和删除临时表对数据库的开销太大
方式2:
在数据库里面用表(ShopingCart)
表有几个基本字段
CartId购物车ID(唯一)
Id商品的ID(唯一)
Qty用户购买商品的数量
CreateDate购物车创建时间
此表的字段CartId是区分不同用户的购物车的ID,要是登陆用户,你可以在表中存放此登陆用户的登陆名的ID,要是未登陆用户使用购物车,你可以给他分配一个GUID(全球唯一标志)做购物车ID此方法有也有一些缺陷,一是它会造成大量无效数据,大家都知道,使用购物车的人,不一定会最终结帐购买商品。
但是使用购物车就得往表(ShopingCart)里面插入相关数据,未登陆用户一离开站点,他在表中的数据就成了一堆废数据,因为他在下次登陆时,我们分配给他的是一个新的CartId购物车ID.有废数据我们就得时常来维护此表,我们可以写一个清除废数据的过程(利用字段CreateDate和CartId可以判断无效数据),人工调用运行也可以,要是想由MSSQL代我们来运行,就可以设置一个JOB,由JOB自动调用过程清楚废数据
说了缺陷,我们该说说此方式的优点了
1。
占用系统资源少,我们可以把数据库安置在一台电脑中,WEB服务器安置在另一电脑中,系统资源充分发挥
2。
购物车中数据可以得到有效保留,我们可以试想一客户在购物时,突然某其他原因(死机等原因)离开了购物站,他在购物车中数据有效保留下来,他下次登陆时购物车中还有上次保留的数据,避免用户再次选购商品的操作(此功能只对登陆用户的购物车有效),要是用会话实现购物车,所有用户一旦离开站点,他的购物车中数据全部失效
本次将以session技术、cookie技术来实现购物车
1数据库及session准备
购物车是网上书城必需的一项功能。
主要用于记录客户购买的图书编号、书名、出版社、作者、数量、单价等信息,并且应该计算出总价及打折后应付的金额,以便用户随时掌握自己的购买信息。
本次毕业设计再实现购物车时使用了session技术和数据库。
对于用户的购买信息主要用session来记录,购买结束后再一起提交到数据库中,另打折信息是由数据库统一管理的,它是和图书入库一起完成的。
这里要注意的是购物车也可以不使用session,而直接把信息写到数据库中,这样做比较简单,但由于每次选购都要将信息写入数据库中,这样将给服务器带来很大的负担。
如果有很多用户同时在购书,就很容易使服务器瘫痪。
所以基于以上考虑,我们采用session对象。
2购物车功能定义
购物车是客户在书店中实施购买活动的辅助工具,购物车性能的优劣在某种程度上也会影响购买者的购买情绪和行为。
因此在设计购物车时不仅要考虑功能的多样性也要考虑购物车的实用性。
本次对购物车的功能如下功能:
存放客户选好的图书
可以随时改变是否要购买
可以随时改变购买的数量
可以显示目前购物车中的图书的金额。
处理逻辑
为了记录下客户选购的每本书,本次采用session变量。
购买的每一类图书都由两个session变量作为一组数据存放,其中session(“bookid”&i)表示第i次购买的图书的编号,session(“bookcount”&i)表示第i次购买图书的数量。
另外session(“变量名”)<=10在程序中的含义已购买图书的种类数。
每当用户选购一本书时程序都会使session(“变量名”)自动加一,然后对新购买的图书进行判断,看看购物车中有没有相同的书,如果有则自动将其数量加一,并将新图书信息清空。
最后将购物车中的信息显示出来。
注意,在清除。
session变量前一定要先把该组内的信息赋给另一组变量,在完成了数据交换后在实施清除操作。
以下是该方法的代码:
其中h的值将从session(“变量名”)中取得。
购物车程序流程图
4.4购书结帐
购书结帐是用户在网上书城购买图书后必然要做的一件事。
目前在互联网上可实现的结账方法较多,很多银行也开办了网上银行。
一些大型的电子商务活动也可以利用网上的金融工具进行结算。
但是在目前由于技术及法律上的一些问题,网上在线结算、支付还未普及使用,因此作为网上书城这类中小企业的书款结算还不宜在网上在线进行。
目前普遍采用的是还是采用货到付款方式。
本次只是提供了几种虚假的方式并没对订单作任何处理只是能生成而已。
1)cookie信息及数据库准备购书结帐时购书者在书店中的最后一步了。
为了将图书送到客户手中,必须要求客户输入自己的信息(包括送货信息)本次在处理购书信息时采用cookie保存客户的注册信息,还有一些客户的信息在填写订单时一并完成的。
购书结帐时会涉及到多个数据表的操作,如book表、dingdaninfo表、user表。
5系统测试
5.1单元测试
测试一:
在管理员登陆时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。
具体操作:
用户名、密码、任意一项为空或者填写有误。
结果:
都出现相应的错误原因的信息提示。
结论:
要求管理员必须填写正确的用户名和密码,才能进入管理页面。
测试二:
修改本站的公告﹑返回前台,看其是否更新成功。
具体操作:
通过信息管理页面中的修改公告功能修改公告的内容,看其是否修改成功。
结果:
公告内容更新为修改后的信息。
结论:
修改公告功能正常。
测试三:
管理员删除一注册用户后,并让其登陆,看是否登陆成功。
具体操作:
管理员删除一会员表中的用户后,该用户在前台登陆。
结果:
该用户无法登陆。
结论:
用户数据删除功能正常。
测试四:
添加﹑删除一条新闻信息﹑返回前台,看其是否添加删除成功。
具体操作:
在信息管理页面中添加﹑删除一条首页新闻信息。
结果:
显示新添加的新闻信息内容、被删除的新闻没有再显示。
结论:
新闻的添加删除功能正常。
测试五:
管理员删除一图书的信息,在前台按关键字查询,看其是否能找到对应的信息。
具体操作:
在图书管理页面中的图书查看与修改页面中删除一图书的信息。
结果:
在前台搜索中,按关键字查询不到此书信息。
结论:
删除图书信息功能正常。
5.2集成测试
网站的建设基本上就算完成了,但我们发现这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感性趣,而且这种兴趣会持续一段时间。
这点启发了我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。
一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列的选项,使用户能够对站点进行一些自主的设置。
这样做能够使站点呈现一定程度的个性化,但是对用户来讲,还是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。
于是我们构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击的规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便在无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。
要实现这样的功能,离不开后台数据库的支持。
用户验证信息,收集到的用户点击信息,主题层次信息,分析得出的关联规则表等大量的数据都由数据库管理系统管理。
整个个性化页面生成系统主要由使用Dreamweaver_MX开发的关联规则采掘系统和利用IIS+ASP技术实现的个性化Web页面生成器两部分组成。
关联规则采掘系统对数据库中的历史记录进行分析,产生用户关联规则表;页面生成器则负责记录用户行为和根据关联规则表动态生成用户个性化Web页面。
二者通过数据库服务器和Web服务器连接。
本次毕业设计主要完成传统网上书城的用户注册、登陆、图书分类浏览、图书信息查询、在线购买、生成订单、后台信息编辑管理等功能,以上提出的改进想法以后再去完善。
6课程设计小结
时间也过得太快了,课程设计很快就要结束了。
在这次课程设计中,在老师的指导下完成了网上书城系统的系统调研、平台论证、需求分析、总体设计、详细设计、界面设计。
其中主要的可行性分析、需求分析、总体设计,它们都是比较重要的组成部分,也是后期设计软件的基础与必备。
需求分析文档编辑的好坏直接影响整个软件设计工作。
本系统基本能够实现客户远程购书的功能,,在进一步完善的基础上,将可以投入实际的应用。
此次所作课题是网上书城,由于我的编程水平和经验不足,有些功能的实现并不完美、并不理想。
在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难程度。
通过这次毕业设计,使我对电子商务网站的开发有了一定的了解。
对软件开发方法和手段,我都有了一定的认识;丰富了我的软件开发的经验,提高了程序编写的水平。
加深理解了在课程中、书本上学到的知识和理论,并使其在实际开发中得到运用。
同时通过编写课程设计论文,掌握了软件文档的书写方法和书写格式。
附录
1.用户登录
请您登录
Subdatacheck()
dimusername
username=trim(logto.username.value)
Ifusername=EmptyThen
MsgBox"「用户名」不得为空白!
",64,"Ohno!
"
logto.username.focus
ExitSub
Endif
Iflogto.psw.value=EmptyThen
MsgBox"「密码」不得为空白!
",64,"Ohno!
"
logto.psw.focus
ExitSub
Endif
logto.submit
endsub
topMargin=0background="images/background.gif">
rel=stylesheet>
#000000"cellSpacing=0cellPadding=4width="100%" border=0>
>>欢迎您!
<%ifsession("loginname")=""then%> 请先登录! <%endif%> <%=session("loginname")%> 用户注册|用户登录|修改资料|
展开阅读全文
相关搜索
|