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

Qq

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 shopcar)方法对数据库进行操作完成的。

图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 bookList=new ArrayList();获取书籍集合,用int book_id=f(ameter("id"));获取书籍编号和用HttpSession session=sion();ribute("book", book);把得到的书籍集合存放入session的book属性里,如果session里有book这个属性的话,就会对session的这个book属性进行更新,如果这个session里没有这个book属性的话,就会新增加这个属性,以方便在这个页面加载数据的时候可以在session里找到session这个属性。这个属性与打开的浏览器相关。

25

图 21 商品书籍详细页面

登录用户可以进行商品书籍的购买

图 22 资料库操作历史记录界面

5.1.4 商品书籍搜索

 各个页面提供搜索方式,是按照书名的其中的关键字来搜索商品书籍,也就是支持模糊搜索。

 用户不用登陆也能进行搜索

 提交搜索请求后获得合适文件的集合,循环输出文件信息

 点击循环输出的商品书籍名字和图片均可以查看该商品书籍的详细信息,别外提供给登录的用户可以购买商品书籍的权限,没用登录的用户会弹出提示框要求其登录。

各个页面提供商品搜索的功能,通过提交表单到SearchAction的Search方法进 26

行处理,通过getBookList(String name)方法获得集合返回到页面显示。通过提交

name="search"action="?command=search"method="post">到SearchAction的search方法来加载用户指定要查看和落实的商品书籍该对应商品书籍中有一个关键字与传到action里的关键字是致的。通过提交这个的商品书籍关键字就可以返回这个商品书籍的集合对象,在页面中对这个集合进行属性的读取,就可加载到要显示的页面上。分页显示的功能直接写在页面里面,通过int pagesize=10;来设定每页显示的数目,修改此值可以更改每页显示的数目,默认是10条。

图 23文件搜索界面

5.1.5 用户购买

 购买商品书籍,要求用户登陆

 没有登录的用户,没有购买商品书籍这个功能

 购买后加入到用户的购物车

 已经在购物车里的商品书籍,每点击一次购买,就会在原来的商品书籍数量上加多一个数量,金额也会相应增加

本页面实现了购买功能,要求必须要先用户登陆就可以使用这个权限。通过提交?order=<%=() %>到BuyAction的execute方法,处理完后跳转返回到原页面。在action通过(shopCar);ribute("shopcar",

shopcarList);把用户购买的商品书籍加入到用户的购物车里,只要进入购物车里就可

以看到用户所购买的商品,数量和金额系统会计算出来显示在页面上。

27

图 24购物车页面

5.1.6 结算中心

 本功能提供用户下订单的功能,在下订单前必先要填好订单的发货地址和联系方式。

 必有是已经注册并且是已经登录的用户才有该项服务,最重要的是购物车里一定要有一定数量的商品

 通过提交表单请求来达到实现下订单的功能

 可以查看订单的情况

 可以修改用户的订单地址

 可以删除自己的订单不过是在没发货之前

本页面提供用户可以对购物车里的商品进行购买下订单的功能,用户确定要购买购物车里的商品书籍,能过点击图片进入结算中心,能过提交表单到PaidcenterAction的address可以进入页面,输入订单的地址,如果已经输入过订单地址的用户可以根据需要修改或者不修改订单的地址。填写好地址后通过提交?command=add的请求到orderAction的addorder方法进行处理,通过调用的addOrder(List shopcar)方法把商品添加到订单的

order表里面。通过Hibernate的session连接数据池,对数据库进行写操作把订单加进orderdetail表里去,系统通过调用的addOrder(List

shopcar)这个方法把订单用(order)方法把订单填写到orderdetail表,以实现用户下订单的功能。

28

图 25结算中心页面

5.1.7 管理员登录

 管理员账号和密码的验证

 Js验证填写是否为空

 验证后判断其是否为管理员并跳转

本页面是提供管理员登录的功能。通过提交的请求,并被adminloginaction获得登录的请求并对传递的账号和密码作出判断和验证。点击登录发送请求到adminloginaction,通过execute()处理并且String

username=(String)ameter("name");Stringcode=(String)ameter("code");获得管理员的账号和密码并在请求到的login(String username, String code)方法在manager表判断有没有这个管理员存在,根据传递过去的id和密码在数据库中匹配相应的数据。

29

图 26 管理员登录界面

5.1.8 管理员管理订单页面

 获取系统所有订单列表集合

 循环输出所有用户订单的集合,

 此页面是管理员才可以进入的管理订单页面,保证安全是一定要做到的,特别是用过滤器来验证进入人员是否是管理员,必须是管理员才可以访问此页面,否则跳转到页面。

 Ext框架的外观显示

本页面通过获得所有用户订单的集合,然后循环输出。管理员可以通过提交?command=del请求到orderaction的del方法后,根据传递过去的id进行订单的删除操作。管理员如果要把旧的订单删除掉就可以先把要删除的订单选中然后点击删除按钮就可以把要删除的订单从数据库中清除,这个功能主要是由业务处理层的这个类的delOrder(String orderid)方法处理,会根据传递进来的订单编号做出处理,相应的如果管理员要发货做法也是差不多的,先要选中要发货的订单,每个订单都可以看到用户订单的状态的,包括已处理,未处理,已交易,未交易等,管理员要选中未处理的订单,然后点击发货按钮,这时会弹出对话框要管理员确认是否要发货当前选中的订单,如果选择是js就会返回后台执行发货操作,如果选择否则返回原页面。

30

图 27管理员管理订单界面

5.2.9 查看订单详细信息

图 28查看订单详细信息界面

5.1.10 发货功能

31

图 29发货功能界面

5.1.11 删除订单

管理员可以删除订单。

图 30 管理员删除订单界面

32

5.2 系统安装说明

5.2.1 配置文件的介绍

5.2.1.1

请按照安装的环境进行配置。解析如下:

type="tailAction">(对于这样的请求都会被 BookdetailAction这个Servlet截获,并做出处理)

path="/" redirect="true" />(跳转的名称是book_detail,在action里rward("book_detail"),就可以跳转到,这里是直接跳转,把redirect改为false是页面后缀不变传递参数是可以用false。)

type=".

ShopcarAction">(这里有个parameter参数,是为了减少action的数量而设的一个参数,有效减少action,对于这样的请求都会被ShopcarAction这个Servlet截获,并做出处理)

path="/" redirect="true" />(跳转的名称是shopcar,在action里rward("shopcar"),就可以跳转到,这里是直接跳转,把redirect改为false是页面后缀不变传递参数是可以用false。)

5.2.1.2

请按照安装的环境进行配置。解析如下:

jdbc:mysql://localhost:3306/

db_shop(使用的数据库名字,默认是使用mysql数据库,如果要使用其他数据库必须修改驱动名称和导入相应的包)

root(数据库根目录名)

wu8368197(数据库密码)

(mysql驱动名称)

33

mysql

true(true表示在控制台显示数据库操作的记录,建议取消,会加重服务器的负荷)

true(格式化数据库操作的记录,show_sql必须为true才有效)

5.2.1.3

1.

数据库中的tb_books表映射成TbBooks类,并且tb_books表所在的数据库名称为db_shop映射成包下的TbBooks类。

2.

这个表的主键名称是id映射成TbBooks这个类的id属性并且类型是integer,主键的生成策略和数据库中所设一样,都是自动增长的。

5.2.1.4

的介绍,它是WEB工程的描述文件,例如WEB工程所用到的Servlet、Filter、Tablib等等等等都在这个里面进行描述,WEB工程启动的时候会在这个里面找到具体所用到的类的路径,由此进行加载。 是JSP的一个配置文件

如果要使用Servlet的话 要指明Servlet的路径。凡事以.xml 结尾的文件,都是XML语言文件。它是一种标记语言。 WEB-INF 下的文件中,定义了xml的版本号,如version="1.0" ,所使用的国际标准码,如encoding="ISO-8859-1" 。 还有Tomcat 的版本以及一些初始,登陆信息.该文件位于应用的WEB-INF目录下面就是web应用的描述跟部署者。deployment descriptor.

5.2.2 各个页面的编码

本系统每个页面采用的编码均是utf-8,需要把数据库的编码设置为utf-8,否则会出现乱码。

34

6 实现技术介绍

6.1 Java网络编程技术

6.1.1 JAVA语言简介

Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在WEB方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务及电子政务项目的必然选择。

6.1.2 JAVA语言在网络上的应用

Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用

Java中相应的方法(method)获取该对象所代表的资源。

6.1.3 JSP的基础——Servlet 技术

Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java

Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet 35

也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。

6.2. 框架的介绍

6.2.1 Hibernate

hibernate是一个开放源码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的试用对象编程思维来操纵数据库。hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的WEB应用中使用,最具革命意义的是,hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

优点:hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

缺点:它会限制所使用的对象模型。(例如,一个持久性类不能映射到多个表)其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate 还是以其强大的发展动力减轻了这些风险。其他的开源持久性框架也有一些,不过都没有 Hibernate 这样有市场冲击力。

6.3 其他辅助语言介绍

6.3.1 Ajax的介绍

发展史,该技术在1998年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软Exchange

Server,并且迅速地成为了Internet Explorer 4.0的一部分。部分观察家认为,Outlook

Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊。但是,2005年初,许多事件使得Ajax被大众所接受。Google在它著名的交互应用程序中使用了异步通讯,如Google讨论组、Google地图、Google搜索建议、Gmail等。Ajax这个词由《Ajax: A New Approach to Web

Applications》一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对Mozilla/Gecko的支持使得该技术走向成熟,变得更为易用。

优点和缺点,使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。 36

这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。

Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。

对应用Ajax最主要的批评就是,它可能破坏浏览器后退按钮的正常行为。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)

一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。

进行Ajax开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应 ,没有恰当的预读数据 ,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不欲看到的,也是他们无法理解的[8]。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax; 用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事; Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等; 对串流媒体的支持没有FLASH、Java Applet好。

37

7 系统测试

7.1 功能测试

表 11 功能测试

测试的页面

测试的功能

热门书籍显示

推荐书籍显示

专业书籍显示

浏览详细信息

登录用户购买

书籍内容显示

书籍价钱显示

书籍图片显示

书籍搜索

分页显示

购买搜索书籍

浏览下一页

用户登录

验证用户

加入所买商品

添加新书籍

删除书籍

增加商品数量

显示书籍价钱

管理员登录

验证登录

用户下订单

填写订单地址

删除订单

测试结果 备注

成功

成功

成功

成功

成功

成功

成功

38

测试用例

普通用户,普通用户,普通用户

普通用户,登录用户,

普通用户

普通用户

普通用户

普通用户,普通用户,登录用户,

普通用户

普通用户,普通用户,管理员

登录用户,登录用户,登录用户,

登录用户,

登录用户

管理员 ,管理员

登录用户,登录用户,登录用户

查看订单

删除订单

订单发货

更新订单

成功

管理员 ,管理员 ,管理员 ,

管理员

用户注册

Ajax验证

成功

普通用户,

7.2 可靠性测试

表 12 可靠性测试

测试的页面 测试方法 处理方法 是否能执行

测试用例

Index_ 输入空字符串

Javascript表单处理

Javascript表单处理

Javascript表单处理

成功 普通用户,

输入空字符串留空

成功 管理员

密码不一致

输入空字符串

成功 普通用户,高级用户,管理员

直接访问页面

Session维持用户的权限

成功 普通用户,高级用户,管理员

输入空字符串,数字,特殊字符等

输入重复的名字

Javascript表单处理

Ajax数据预处理

成功 普通用户,高级用户,管理员

39

8 结 论

本课题对网上书店系统进行分析与设计,实现如下功能:用户注册登录,用户购物书籍,书目检索,按书籍类型搜索书籍,购物车,订单功能,管理员登录,订单的删除,订单的发货,用户查看购物车,用户查看订单信息,用户查看订单的详细内容,管理员查看订单详细内容等功能。本系统基本完成满足广大读者的需求,开发出适应于当前经济环境下的,可以在实际运营中发挥作用的系统。

以往的课程设计是用已经学过的课程内容进行个人的设计来反映对所学知识的掌握程度,这次毕业设计我们选择的是用JSP构建一个购书网站。JSP不是我们的必修课程,在整个设计过程中,我们查阅了大量的专业书籍,也得到了一些专业人员及指导老师的指导和支持。

PHP,ASP,JSP是制作网站最常用的几大技术,而SUN公司最后推出的JSP是在JAVA基础上推出的,它继承了JAVA的众多优点,也能解决其他技术不能解决的一些问题,所以说它可以说是当今最流行最有前景的技术之一,这次对JSP的学习对我将来的学习工作都是很有帮助的。

在设计过程中出现了不少的问题,比如动态效果设计的编程,数据库的设计,动态库的生成,以及网站网页的制作,还有最运行环境的配置,尤其是运行环境的配置总是出现问题,很多脚本程序运行不了,网站很多网页动态效果出不来。最后请教了一些有经验的老师,最终这些问题得以解决。我们的网上购书系统基本完成,就是网页制作的不够美观,数据库连接方面还是经常出现一些问题,在以后的时间里我们会继续努力把自己的设计改进到理想状态。

40

参 考 文 献

[1] 汪孝宜.JSP数据库开发实例精粹[M].北京:电子工业出版社,2005.1.

[2] Eckel,B(美).Java编程思想[M].北京:机械工业出版社,2005.5 .

[3] 印昊.JAVA与面向对象程序设计[M]. 北京:高等教育出版社,2004.4.

[4] 思志学.自己动手写Struts[M].北京:电子工业出版社,2007.7.

[5] 袁海燕.JAVA应用程序设计100例 [M].北京:人民邮电出版社,2005.5.

[6] 薛为民. JAVA应用教程[M].北京:北交大出版社,2005.9.

[7] 耿祥义. Java课程设计[M].北京:清华大学出版社,2004.02.

[8] ]刘晓华.精通Java核心技术[M]. 北京:电子工业出版社,2004年.

[9] 姜利群.JAVA网络编程实例教程[M]. 北京:北交大出版社,2005.1.

[10]Horstmann,C.S.(美)JAVA2 [M].北京:机械工业出版社,2006.3.

[11]McConnell,S.(美)CODE COMPLETE[M].北京:电子工业出版社,2006.3.

[12]Simmons.R.(美)Hardcore Java[M].美国:O’Reilly Media,Inc,2004.

[13] 王珊, 陈红.数据库系统原理教程[M].北京:高等教育出版社,2004.

[14]李华飚.JAVA中间件开发技术[M].北京:中国水利电力出版社,2005.

[15] 萨师煊. 数据库系统概论[M].北京:清华大学出版社,2005.

41

Design and Realization of On-Line Book Shopping System

Wu Jian Qiang

(Department of computer science and engineering, ZhongKai University of Agriculture

&Technology, GuangZhou,200510225)

Abstract: The twenty-first century is a network-based, information-based era, in order

to meet the needs of readers, designed and developed to adapt to the current economic

environment may play a role in the actual operation of the online book system. This paper

systematically expounds the books of the online bookstore and the realization of the function

of the system. Systems management from books, book classification and inquiries, to cart the

realization, the user order processing, system administrator functions.

The system uses Java as the development of language, the use of MVC pattern, use of

Javascript and Ajax and so on to form the management. JSP technology introduced in this

paper based on the characteristics and needs from the system, system design, code, system

testing is described in detail several aspects of the entire software development process, the

final system design results show that the accuracy and reliability.

Keywords: Online bookstore; Model-View-Controller; JAVA; Shopping Car;

42


本文标签: 订单 用户 系统 商品 书籍