admin 管理员组文章数量: 887021
2024年1月13日发(作者:网页制作源代码期末作业)
毕
业
设 计
论文题目 网上购书系统的设计与实现
中 文 摘 要
二十一世纪是网络化,信息化的时代,为了满足广大读者的需求,设计并开发了适应于当前经济环境下的,可以在实际运营中发挥作用的网上购书系统。本论文系统地阐述了整个网上书店售书系统的功能及实现。系统实现了从书籍管理,书籍分类和查询,到购物车实现,用户订单处理,管理员系统等功能。
本系统采用Java作为开发语言,使用MVC模式,运用了Javascript和Ajax对表单等进行管理。本文在介绍JSP技术的特点的基础上,并从系统需求,系统设计、代码实现、系统测试几个环节详细描述了的整个软件开发过程,最终系统运行结果表明系统设计的正确性和可靠性。
关键词: 网上书店 MVC Java 购物车
目 录
1 前言 ................................................................... 1
1.1 本系统的意义 ......................................................... 1
1.2 国内外电子政务发展比较研究 ........................................... 1
1.3 本系统主要研究内容 ................................................... 2
2 需求分析 ............................................................... 3
2.1 系统目的 ............................................................. 3
2.2 功能需求 ............................................................. 3
2.3 网上商城购书系统基本流程以及用例图 ................................... 4
3 概要设计 ............................................................... 6
3.1 组件介绍 ............................................................. 6
3.1.1 MVC架构 ............................................................ 6
3.2 功能结构图 ........................................................... 7
3.3 数据库设计与实现 ..................................................... 8
3.3.1 数据库的需求分析 ................................................... 8
3.3.2数据库关系模式设计 ................................................... 8
3.3.3 数据库关系ER图 .................................................... 9
3.3.4 数据库逻辑结构设计 ................................................ 10
3.4 系统结构设计 ........................................................ 11
3.4.1 显示层 ............................................................ 12
3.4.2 逻辑管理层 ........................................................ 12
3.4.3 数据管理层 ........................................................ 12
3.4.3.1 封装了数据库相关操作的bean() .................. 12
3.4.3.2 各个表的POJO .................................................... 12
3.4.4 Struts的由来和发展 ................................................ 14
3.4.5 JSP Model 1 与 JSP Model 2 ........................................ 14
4 详细设计 .............................................................. 15
4.1 系统各功能详细设计及实现 ............................................ 15
4.1.1 浏览者查看商品的功能 .............................................. 15
4.1.2 用户注册登录功能 .................................................. 15
4.1.3 购物车功能 ........................................................ 16
4.1.4 商品搜索功能 ...................................................... 17
4.1.5 用户下订单功能 .................................................... 17
4.1.6 管理员登录功能 .................................................... 18
4.1.7 管理员查看订单功能 ................................................ 18
4.1.8 管理员删除订单功能 ................................................ 19
4.1.9 管理员发货功能 .................................................... 19
4.2 关键类的详细解说 .................................................. 19
4.2.1 各种action与系统的关系 ........................................... 19
4.2.2 model逻辑业务操作类 ............................................... 20
4.2.3 shopcar购物车类 .................................................. 220
4.3 工具类的介绍ate ..................................... 22
4.3.1 生成订单编号 ......................................... 22
4.3.2 单例生成sessionFactory ........................... 22
4.3.3 ........................................................
22
4.3.4 过滤器的使用 ..........................................
22
5 系统实现及安装 ...................................................... 24
5.1 系统实现 .......................................................... 24
5.2 系统安装说明 ...................................................... 33
5.2.1 配置文件的介绍 .................................................... 33
5.2.1.1 ................................................ 33
5.2.1.2 ............................................... 33
5.2.1.3 ................................................. 34
5.2.1.4 ......................................................... 34
5.2.1.2 各个页面的编码 .................................................. 33
6 实现技术介绍 .......................................................... 35
6.1 Java网络编程技术 .................................................... 35
6.1.1 JAVA语言简介 ...................................................... 35
6.1.2 JAVA语言在网络上的应用 ............................................ 35
6.1.3 JSP的基础——Servlet 技术 ......................................... 35
6.2. 框架的介绍 .......................................................... 36
6.2.1 Hibernate ......................................................... 36
6.3 其他辅助语言介绍 .................................................... 36
6.3.1 Ajax的介绍 ........................................................ 36
7 系统测试 .............................................................. 38
7.1 功能测试 ............................................................ 38
7.2 可靠性测试 .......................................................... 39
8 结 论 .................................................................. 40
参 考 文 献 .............................................................. 41
英文摘要 ................................................................. 42
致 谢 ................................................. 错误!未定义书签。
仲恺农业技术学院毕业论文(设计)成绩评定表 ................. 错误!未定义书签。
1 前言
1.1 本系统的意义
现代网络发展是飞快的,电子商务技术的发展日新月异,随着计算机技术和网络技术的不断发展,电子商务受到越来越多企业、公司的重视。电子商务是Internet爆炸式发展的直接产物,是网络技术应用的全新发展方向。网上商店作为电子商务的一种基本模式,也成为了一种新的营销方式。新型的商务通信通道其优越性是显而易见的,其优点包括:大大提高了通信速度,尤其是国际范围内的通信速度。节省了潜在开支,如电子邮件节省了通信邮费,而电子数据交换则大大节省了管理和人员环节的开销。增加了客户和供货方的联系。提高了服务质量,能以一种快捷方便的方式提供企业及其产品的信息及客户所需的服务。提供了交互式的销售渠道。使商家能及时得到市场反馈,改进本身的工作。提供全天候的服务,即365天,每天24小时的服务。最重要的一点是,电子商务增强了企业的竞争力。
本论文就毕业设计的内容,系统地阐述了整个网上书店售书系统的功能及实现。实现了从商品管理,商品分类和查询,到购物车实现,用户订单处理,管理员系统。基本上实现了电子商务的功能流程,能够实现用户与商家在网上进行商品交易。本系统界面简单直观,易于操作和使用,交互性强,完全基于Internet网络。
网上书店是电子商务的典型应用。 JSP是构建电子商务系统的新兴技术,采用JSP技术,可以方便地将系统分离为三层:表示层、业务层及数据库层。表示层向客户的浏览器提供基于Web的显示页面;业务层处理客户购书过程;数据层则提供数据存储。采用这种层次结构可以提高系统的扩展性和服务器的效率,方便开发。
行业电子商务将成为下一代电子商务发展主流。中国电子商务进入迅猛发展时期的典型特征是风险资金、网站定位等将从以往的“大而全”模式转向专业细分的行业商务门户。第一代的电子商务专注于内容,第二代专注于综合性电子商务,而下一代的行业电子商务将增值内容和商务平台紧密集成,充分发挥 Internet在信息服务方面的优势,使电子商务真正进入实用阶段。
1.2 国内外电子政务发展比较研究
国内国外对于电子商务技术的发展是相当关注的,本系统实际上属于一个电子政务类的系统。随着知识经济时代的到来,使信息的基础地位在政府、教育部门等的管理中得到了充分体现,在办公方式、管理力一式等领域掀起了一股革新热潮。传统的管理模式以及组织结构的合法性根基在以“信息”为载体的“后工业化”社会中日益暴露出种 1
种弊端,一场全新的革新政府管理手段准确把握时代气息的信息化科学技术革命正在当代政府公共管理中蓬勃兴起。所以加速电子政务的建设,提高政府利用信息管理社会和为经济发展服务的能力,逐步建立利用知识和信息促进发展的模式是21世纪中国实现可持续发展,提高国家竞争力的重要条件,是中国追赶发达国家的重要途径。
据资料显示,根据联合国教科文组织在2000年对62个国家(39个发展中国家,23个发达国家)所进行的调查,89%的国家都在不同程度上着手推动电子政务的发展,并将其列为国家级的重要事项。按照联合国经济与社会事务部掌握的数据,1996年,全球只有不到50个政府部门建立了自己的网站;而到2002年,全球己经开通了5万个政府网站。事实上,电子政务己经迅速地列入了所有工业化国家的政治日程。对于正处于现代化起程中的中国而一言,不可不谓“任重道远”,既要承担工业化的任务,又要担起信息化的重任,如何合理有效地利用现代信息技术,迎接时代的挑战,已成为电子政务工程面临的又一时代主题。
目前,国外电子政务的发展与研究达到了一定的水平,特别是美、英、加等国,不仅对电子政务的发展前景规划都有相应的政策出台,而且正一步步地付诸实施。而我国的电子政务仍处在起步与尝试的阶段,法规不健全,专业人才缺乏,基础设施条件差,关于中外电子政务理论方面的研究少等一系列因素均制约着我国电子政务的发展。
1.3 本系统主要研究内容
系统为了让注册会员顾客及时买到商城上的商品,并且及时收货,专门开发了购物车模块。该模块主要实现了动态的获得用户购买的商品,这使得顾客的购物变得及时和更改都十分方便,同时实现了订单的及时更改。大大的方便了用户了解自己要购买的物品和数量。另外为了提高网站系统的实用性,让用户体验更好的购物乐趣,及时了解商场的商品情况,开发了商品的搜索模块,实现了按照书名、书名模糊查找功能,用户就可以及时的知到商城的藏书情况。另外为了方便管理员管理订单,开发了订单的管理功能,这些功能包括订单发货,订单删除,查看订单等等。管理员就更加方便的管理订单,使得用户可以更直观的了解自己的订单情况。本系统的最终目的是设计并实现一个网上商城购书系统,其具有:用户注册登录,用户购物书籍,书目检索,按书籍类型搜索书籍,购物车,订单功能,管理员登录,订单的删除,订单的发货,用户查看购物车,用户查看订单信息,用户查看订单的详细内容,管理员查看订单详细内容等功能的网上购物平台。
2
2 需求分析
2.1 系统目的
Java平台,是由SUN公司推出的新型平台。Java平台结合了许多技术,并形成了一个单一的统一标准,可以根据需要来构建应用系统。其采用的三层结构体系、分布式环境、面向对象的模块化组件设计技术可以使企业快速、高效的部署自己的应用程序。目前商业上已经有不少采用Java平台的成功例子。国内对于J2EE的应用广泛。本系统采用java技术开发,提供了商品浏览、购买商品,管理订单,商品搜索,用户注册,管理员管理等功能,系统具有健全稳定,操作简便的特点。
本系统的目的是利用java语言的方便稳定的优势开发出健壮的系统,并且利用java语言开源的各种框架(struts+hibernae)等框架,开发出达到系统的可扩展性最大化的系统。电子商务行业已经步入比以往任何时代都要发达的时代,我国应抓住这个时代加入到网上电子商务的激烈竞争中。
开发本系统的目的在于为了满足广大读者的需求,开发出适应于当前经济环境下的,可以在实际运营中发挥作用的系统,网上书店系统实现的基本功能应该包括用户注册登录,用户购物书籍,书目检索,按书籍类型搜索书籍,购物车,订单功能,管理员登录,订单的删除,订单的发货,用户查看购物车,用户查看订单信息,用户查看订单的详细内容,管理员查看订单详细内容等功能。大大的方便了商城的销售管理和购买人员的轻松购书。
2.2 功能需求
1、用户登录
用户注册后能够登录,没有登录的用户是没有购买商品的权限的,可以顾客要注册后登录,就可以进行商品的交易。
2、用户注册
实现系统用户注册。如果名字已经被注册则不能在注册(只限在同一个用户类型)。另外对电子邮箱进行判断,不能重复使用一个邮箱进行注册。高级用户和管理注册后必须通过系统管理员验证才可以使用,对密码的长度也加以限制,以确保用户的安全性。
3、查看商品
在合适的目录下可以上传文件和下载文件,并且对进行了权限控制,普通用户 3
只能上传文件,高级用户可以上传和下载文件,管理员可以上传、下载和删除文件。并对操作进行了记录,可以使用户更加方便的进行目录的查看。
在商城里有很多的商品书籍,顾客在确定要买之前是可以查看这些商品的特性,和内容简介,以确保要购买的商品的可靠性和可用性,这个功能每个顾客都可有的权限,不限于注册或限
4、商品搜索功能
主要是对书籍进行搜索,搜索条件为书籍的书名。搜索后的结果可以在网页中直接显示,并可以支持模糊搜索,可以在搜索的结果中直接购买搜索到的书籍,当然必须是在登录的前提下,方便了用户的购买,和节省了用户的时间。
5、下订单功能
已登录的用户可以根据自己的需要,在要购买的商品处把商品加入购物车后,进入结算中心,确认后,就生成订单,网络会对具体的订单发货。
6、管理员登录
订单的管理员可以登录到后台管理页面,对订单进行操作。
7、发货功能
只有管理员可以发货,管理员在发货之前可以对订单查看其具体的商品和数量,还可以查看订单的详细信息,地址,邮编等等。
8、删除订单功能
管理员可以对不合格的,存丰问题的,有可疑的订单进行删除操作,这样可以保证一些非法的手段或者不正当手法下的订单,当然一些比较旧的订单应及时的删除。
9、订单地址
用户可以根据自己的具体地址,写入自己的详细地址,以确保货物的到达的目的地,而且这个地址是可以更新的。
10、 用户删除订单
用户如果对所购买的商品不满意,或者有其他方面的改动,可以在商品没有发货之前删除订单。
2.3 网上商城购书系统基本流程以及用例图
4
2.3.1 网上商城购书系统基本流程
图 1 系统运行操作流程图
系统管理
订单管理,删除更新,发货查看
验证登录
登录页面
得到商品的
详细信息
购买商品
查看购物车,和订单
修改、删除商品等
清空购物车
退出
管理员
登录
商品搜索 商品浏览
控制面板 注销
显示主页
会员登录
2.3.3 管理员用例图
用户(管理员)
发货
图 2 管理员用例图
5
查看订单
更新订单
删除订单
2.3.2 用户用例图
图 3 用户用例图
货物查询
用户(个人会员)
购买商品
信息管理
订单查询
注册用户
登录用户
注销用户
3 概要设计
3.1 组件介绍
3.1.1 MVC架构
模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
本系统的MVC架构如下所示:
表 1 系统组成
显示层
jsp
Index_
逻辑控制层(控制器)
model
loginImp
searchImp
同上
同上
orderImp
detailImp
同上
Action
loginAction
searchAction
同上
同上
orderAction
同上
PaidcenterAction
6
数据处理层
DB
FactoryUtil
同上
同上
同上
同上
同上
同上
ManagerImp AdminloginAction 同上
RegImp RegAction 同上
addressImp AddressAction 同上
3.2 功能结构图
图3 用户可以进行查看商品、把商品加进购物车进行商品购买、填写送货地址、搜索商品、删除订单、登录和注销等功能。
图 5 用户系统使用图
图 4 表示:管理员用户除了可以进行管理员登录、查看订单、删除订单、根据订单发货、对订单进行管理。
7
图 6 管理员系统管理关系图
3.3 数据库设计与实现
3.3.1 数据库的需求分析
依据系统的处理需求,对就数据表的设计及功能如下。
A. 普通用户信息表:存放普通用户需要的基本信息。
B. 管理员信息表:存放管理员需要的基本信息。
C. 商品书籍信息表:存放商品的基本信息。
D. 商品状态信息表:存放书籍的状态的基本信息。
E. 订单地址信息表:存放各个订单通讯地址的信息。
F. 订单详细信息表:存放各个订单的详细信息
3.3.2数据库关系模式设计
8
图 7 数据库关系模式图
3.3.3数据库关系ER图
名称
密码
9
1
定单
密码
用户名
编号
顾客
1
U-S
名称N
价格
图书
类别
N
S-S
编号
订单管理员
编号
图 8 数据库关系ER图
3.3.4 数据库逻辑结构设计
表 2 管理员表
字段
id
name
code
含义
唯一编号
用户名
密码
类型
Int
varchar
varchar
长度
10
40
40
是否为空
N
N
N
备注
自动增长
表 3 用户表
字段
id
username
password
e_mail
含义
唯一编号
用户名
密码
邮箱地址
类型
Int
varchar
varchar
varchar
长度
10
40
40
50
是否为空
N
N
N
N
备注
必须为邮箱格式
表 4订单地址信息表
字段
id
truename
password
identity
Address
phone
e_mail
含义
唯一编号
用户名
密码
身份证
地址
联系电话
QQ号码
邮箱地址
类型
Int
varchar
varchar
varchar
varchar
varchar
varchar
varchar
长度
10
45
45
45
45
45
20
50
是否为空
N
N
N
N
N
N
N
N
备注
必须为邮箱格式
Postcode
Memberid
邮编
用户编号
int
Int
10
45
N
N
外键
表 5 商品信息表
字段
id
bookname
booktype
author
price
picture
intime
含义
唯一编号
书名
书的类型
作者
价钱
图片位置
入货时间
类型
Int
varchar
varchar
timestamp
double
varchar
timestamp
长度
45
45
45
9,2
45
是否为空
N
N
N
N
N
N
备注
取系统当前时间
introduce 书籍的内容
简介
text N
表 6 商品状态信息表
字段
id
Ishot
Ispro
Iswonder
Sale
含义
唯一编号
是否热门
是否专业
是否推荐
销量
类型
Int
Int
Int
Int
Int
长度
20
4
4
4
4
是否为空
N
N
N
N
N
备注
0为不热门
0为不专业
0为不推荐
已销售的数量
3.4 系统结构设计
Struts框架很好的体现了MVC的思想,而且是一个比较成熟的开源框架,故此本系统使用了Struts开源框架进行开发。
显示层是用户看到并与之交互的界面。对老式的Web应用程序来说,显示层就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在显示层中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML等一些标识语言和Web services。
逻辑控制器接受用户的输入并调用模型和显示层去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。 11
它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个显示层的视图来显示模型处理返回的数据。
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和POJO这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个显示层提供数据。由于应用于模型的代码只需写一次就可以被多个显示层重用,所以减少了代码的重复性。
系统结构图6所示:
图 9 系统结构图[10]
3.4.1 显示层
系统各个jsp页面。主要负责实现表单的接收,界面显示等。
3.4.2 逻辑管理层
主要负责表单的处理,逻辑控制,页面跳转等。主要由各个action来实现。它是一个动态action可以接收多处的请求进行逻辑处理,它与动态表单结合使用。
3.4.3 数据管理层
3.4.3.1 封装了数据库相关操作的bean()
采用了Hibernate架构下提供的数据库连接池建立与数据库的连接,在该bean中通过单例模式建立与数据库的连接的sessionfactory,同时也提供了关闭数据库连接的方法,以便于及时释放资源。
3.4.3.2 各个表的pojo
简单的Java对象(Plain Ordinary Java Objects)实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接。
12
图10 pojo功能图[8]
其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
POJO是Plain
Ordinary Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。本系统分别有,有,有,有,有 ,有, 还有等多个POJO。由于使用了hibernate框架每个POJO都有对应的hbm映射文件。以下是各个pojo类的类图。
13
图10说明“-“代表private,“+”代表public
3.4.4 Struts的由来和发展
Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts
在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。
Struts 架构一经推出,即受到 Java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具,在目前 Java Web 程序员的招聘要求中,几乎都提出了对 Struts 的要求,精通 Struts 架构已经成为 Java
Web 程序员必备的技能。
3.4.5 JSP Model 1 与 JSP Model 2
SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用并不尽如人意 。
[12] 图 11 JSP Model 1
14
图12 JSP Model 2
[12]
model2 容易使系统出现多个Controller,并且对页面导航的处理比较复杂 ,有些人觉得model2仍不够好,于是Craig R. McClanahan 2000年5月 提交了一个WEB
framework给Java Community.这就是后来的Struts。
2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一 。Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑。
4 详细设计
4.1 系统各功能详细设计及实现
4.1.1 浏览者查看商品的功能
浏览者不管有没有登录都是可以实现这个功能的,就是浏览商品,当然如果要加进自己的购物车就必须先登录,当浏览者访问资料库页面的时自动加载,请求就给indexAction截获并对请求做出响应,返回首页需要的资料和内容,并以html的格式返回给用户,indexAction里有个方法execute(),判断用户要执行的操作后指定了所需要的返回的内容,图片,资料,并把这个内容,图片,资料做一定的编码转换,根据浏览者浏览器需要的编码返回给用户,用户可以及时的了解商城的商品的详细信息。indexAction调用execute()方法返回首页需要的的资料和内容并在首页上以一定的格式显示。
4.1.2 用户注册登录
浏览者如果想要对商城上的商品进行购买,就要成为本商城的用户才有这个权限,注册成为商城的用户之后就有权限对商品进行购买下订单。
用户注册登录的顺序图如下:
15
图13 用户注册登录顺序图
4.1.3 购物车功能
购物车的实现是非常重要的,用户的购物活动离不开购物车。有了购物车用户可以随时了解自己的购物情况,察看购物的商品数量,商品的名称、价位,了解自己的购物金额,使用起来是非常方便的。购物车功能的实现,只有会员登陆后才可以使用,购物车显示的内容是会员的信息,主要是数据库的关联。通过会员的ID号与商品信息商家信息建立连接,找到相应的数据显示。并且用户可以对购物车的商品进行操作,可以添加商品,也可以添加商品的数量,还可以对商品进行删除。这个功能主要是这个类实现的,每加入一个商品,就会生成一个相应的shopcar对象。并加入到一个购物车的容器里(list),这个容器在用户注销前一直保持原有状态。下图是购物车功能的顺序图和活动图:
图14 购物车顺序图
16
图15 购物车活动图
4.1.4 商品搜索功能
商城提供按照书名搜索的搜索功能,按照用户或者浏览者输入的书名进行模糊查询,并把结果返回到上,并且已注册的用户可以对搜索出来的进行操作,查询的数据是从tb_books表里面得到的,分别对应了searchImp里的getBookList方法。商城的搜索是整个商城很重要的组成部分,用户可以根据自己的须要在商城中搜索自己关心的的商品书籍,这个模块的实现也是比较困难的,这里我所用到的技术是mysql数据库的模糊搜索。Hibernate的hql也支持模糊的搜索,流程是首先由用户输入要搜索的书籍书名的其中一个字。接着数据库会匹配输入的字并搜索相关记录。并把搜索出的结果返回,分页显示在页面上。
实现这个功能,主要是在这个类里实现,首先用户输入的关键字并提交由服务器的SearchAction接收并传递给searchImp这个类并对关键字封装成hql如:String hql="from TbBooks book where me like ?";语言由数据库进行模糊匹配,并到相关结果返回serchAction并且把返回结果加入到一容器,分页显示到页面。
4.1.5 下订单功能
用户通过注册登录可以对购物车进行操作管理,用户一次购买的商品达到了目的之后,就要下订单,下订单之前购物车会把商品的详细信息列出,物品的单价,购买的数量,总共的价钱,不需要的物品可以删除,当商品都付合顾客要求的时候,顾客就可以下订单了,下订单时首先会先到结算中心让用户确定一下订单是否付 17
合要求,确认无误后就会生成订单了。这个功能主要由OrderAction截获用户下订单的请求并调用add这个方法添加订单,add通过model里的这个类的addOrder(List
图16 下订单功能顺序图
4.1.6 管理员登录功能
首先通过点击管理员登录去到adminloginAction里面的execute方法,根据登录页面用户输入的账号和密码,判断管理员信息表里有没有这个管理员,如果有就跳转到管理订单的页面,让管理员对订单进行管理,登录页面采用了ext框架的技术来做登录,页面的美观和可扩展性增强了。
用户要先输入用户的账号和密码,用户的账号和密码会通过表单提交返回后台,这里用户的账号和密码由AdminloginAction这个servlet的ameter()这个方法截获,并把这个账号和密码通过封装成hql语句,hibernate会把hql翻译成mysql数据库可以执行的语句来执行,当然这里由的login(String
username, String code)方法来处理。
4.1.7 管理员查看订单
管理员在管理订单页面,可以实时知道地了解订单的各种情况,包括今天的新订单,已处理的订单,未处理的订单,新交易订单,未交易订单,管理员可以很清楚地知道订单的下单人,和下单人的地址,还可以查看订单的详细内容,包括订单的商品名称,编号,数量,金额等,这里用的是ext框架加载数据实现的,先把需要用到的数据保存到页面,然后加载到ext的gridpanel里就可以查看订单的详细信息。 18
下图是管理员管理订单的活动图:
图17 管理员管理订单活动图
4.1.8 管理员删除订单功能
管理员登录后,进入管理订单页面,可以很清楚的了解到订单的各种情况,对于一些比较旧的,不合法的或者是可疑的订单,可以进行删除操作,这个功能是由的del方法实现,由实体bean连接数据库删除数据并更新数据库和页面,并且在删除的时候会询问是否确定是要删除,以免错误的删除。
4.1.9 管理员发货功能
管理员登录后,进入管理订单页面,可以清楚的了解到订单的各种情况,管理员认为可以对某一订单出货的时候就可以对该订单进行发货的操作。
4.2 关键类的详细解说
4.2.1 各种action与系统的关系
下表是系统中的Action映射表。该映射决定了 Action与其他Web组件之间的关联关系。作为前后台之间桥梁,本表中指明了每个Action的入口(即调用Action的组件)及出口(即请求转发的目标组件)
19
表 9 Action映射表
Action
AddressAction
作用
订单地址
入口
各个购买面均可
各个界面均可
出口
AdminloginAction 管理员登录
BookdetailAction 商品详细信息
BuyAction
IndexAction
LoginAction
LogoffAction
RegAction
购买商品
加载首页
用户登录
退出
Ajax验证用户是
否有重复的名字
OrderAction 订单管理页面 各个界面
各个界面
各个界面
OrderdetailAction 订单详细信息
PaidcenterAction 结算中心
SearchAction
Search
ShopcarAction
搜索商品
查询文件
查看购物车
4.2.2 model逻辑业务操作类
表 10 逻辑业务操作类
method
addAddress
modAddress
getAddress
getDetail
getHotBooks
getProBooks
getTbBooks
getWonderBooks
作用
填写订单地址
修改订单地址
取得订单地址
商品详细信息
取得热闹书籍
取得专业书籍
根据id取得书籍
取得推荐书籍
20
被调用于
用户下订单
用户修改订单地址
管理员查看发货界面
查看商品信息
首页加载
首页加载
查看商品信息
首页加载
Login
getMember
管理员登录 管理员登录
根据用户名取得用户验证登录
信息
addOrder
addBookSale
Getorderid
Reg
getOrderCount
getOrderList
getAllOrder
getBookList
updataOreder
GetPosition
delOrder
comOrder
增加订单
增加书籍销量
生成订单的id号
用户注册
取得订单数目
取得订单容器
获得所有订单
返回书籍容器
订单发货
获取所在系别
删除订单
用户下订单
一本书卖掉
返回订单号
用Ajax验证用户是否重复
清算订单总量
返回订单容器
管理员管理订单
用户搜索书籍
管理员发货
在communicate中给调用
管理员删除订单
验证订单是否已成交 管理员查看订单情况
4.2.3 shopcar购物车类
表 11 购物车操作类
属性方法
Bookid(int)
Bnumber(int)
Price(double)
作用
书籍的编号
购买书的数量
书籍的价钱
属性
属性
属性
属性
属性
方法
方法
方法
说明
整型
整型
备注
金额不为整数,浮点
字符型
字符型
作为返回值
作为返回值
生成对象时不为空
生成对象时不为空
返回类型为double
设置类型为double
Bookname(String) 书籍的名称
Username(String) 用户名称
getUsername
getBookid
setBookid
getBnumber
getPrice
取得用户名
取得书籍id
设置书籍编号
返回购买的数量
方法
返回价钱
方法
setPrice(double) 设置购物车金额
方法
21
getBookname 返回所购书籍名方法
称
返回类型string
setBookname
查询文件
方法
返回类型string
4.3 工具类的介绍ate
4.3.1 生成订单编号
通过Date date=new Date()可以获得当前系统日期,不过这个日期并不是我所须要 的格式,要想得到我需要的格式还要通过SimpleDateFormat df=new
SimpleDateFormat("yyMMdd"); String nowdate=(date); 两步的格式化。就得到了年月日的最后两个数据,然后从这个格式字符后加上后缀就获得了订单的id号。
4.3.2 单例生成sessionFactory
单例模式介绍:
1.意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2. 动机
对一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印机服务程序,只应该有一个文件系统和一个窗口管理器。一个数字滤波器只能有一个A / D转换器。一个会计系统只能专用于一个公司。
我们怎么样才能保证一个类只有一个实例并且这个实例易于被访问呢?一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象。
一个更好的办法是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。这就是单例模式。
3. 适用性
在下面的情况下可以使用单例模式
• 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
22
• 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
4. 结构
图18 singleton Model[14]
在服务器启动的时候加载,用单例模式生成一个在内存区域的生成静态session以供使用。实现代码首先设置一个静态值并且这个变量private static SessionFactory
sf=null;静态的方法static{Configuration cfg=new Configuration().configure();
sf=essionFactory();}这样就在内存里生成一个类型是SessionFactory静态的变量sf。这个变量一直在缓存里,要用到的时候就可以随时在内存里取值。可以有效的减少生成对象的时间。
4.3.3
在服务器启动的时候加载,生成一个Connection类型的静态对象con,以供使用。同时提供这个对象的释放方法static void close(PreparedStatement ps,ResultSet
rs)。
4.4.4 过滤器的使用,
对发送*.do请求的request和response对象进行编码转换。
23
5 系统实现及安装
5.1 系统实现
5.1.1 首页
获取热闹书籍信息集合,只显示最热闹三条
获取推荐书籍信息集合,只显示一条信息
获取专业书籍信息集合,只显示最热力推荐的九条
搜索功能
获取分类书籍信息集合,跳转分类页面
提供各个页面的跳转连接
在本页面中,通过hot_book_list=Books()获取热门商品书籍信息集合,提交?booksid=<%=tb_()%>请求后,跳转到页面查看商品书籍。如果没登陆的想购买商品将会提示先登录。通过pro_book_list=Books(); 来获得推荐商品对象集合,通过提交?id=<%=(0).getBookname() %>请求到DetailImp 的getDetail方法进行处理。
图 20 首页界面
5.1.2 注册界面
24
1.普通用户注册后直接跳转到首页登陆
图 19 用户注册界面
5.1.3 商品书籍详细内容
获取传来的书籍编号返回集合
获取图片路径集合,以显示图片
可以在此页面进行购买的功能
权限控制,只有普通用户可以购买商品书籍,如果是没用登录的用户,想要购买书籍,就会弹出对话框说要登录
通过一个集合来记录个人的目录操作以便用户的使用
本页面用List
25
图 21 商品书籍详细页面
登录用户可以进行商品书籍的购买
图 22 资料库操作历史记录界面
5.1.4 商品书籍搜索
各个页面提供搜索方式,是按照书名的其中的关键字来搜索商品书籍,也就是支持模糊搜索。
用户不用登陆也能进行搜索
提交搜索请求后获得合适文件的集合,循环输出文件信息
点击循环输出的商品书籍名字和图片均可以查看该商品书籍的详细信息,别外提供给登录的用户可以购买商品书籍的权限,没用登录的用户会弹出提示框要求其登录。
各个页面提供商品搜索的功能,通过提交表单到SearchAction的Search方法进 26
行处理,通过getBookList(String name)方法获得集合返回到页面显示。通过提交
版权声明:本文标题:网上购书系统的设计与实现-毕业论文 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705096560h473058.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论