基于JSP网上书店系统的设计与实现.docx

上传人:b****7 文档编号:11427273 上传时间:2023-03-01 格式:DOCX 页数:36 大小:1.32MB
下载 相关 举报
基于JSP网上书店系统的设计与实现.docx_第1页
第1页 / 共36页
基于JSP网上书店系统的设计与实现.docx_第2页
第2页 / 共36页
基于JSP网上书店系统的设计与实现.docx_第3页
第3页 / 共36页
基于JSP网上书店系统的设计与实现.docx_第4页
第4页 / 共36页
基于JSP网上书店系统的设计与实现.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

基于JSP网上书店系统的设计与实现.docx

《基于JSP网上书店系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于JSP网上书店系统的设计与实现.docx(36页珍藏版)》请在冰豆网上搜索。

基于JSP网上书店系统的设计与实现.docx

基于JSP网上书店系统的设计与实现

基于JSP网上书店系统的设计与实现

概要

随着Internet技术的发展,人们的日常生活已经离不开网络。

未来社会人们的生活和工作将越来越依赖于数字技术的发展,越来越数字化、网络化、电子化、虚拟化。

Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,甚至社会的价值观也会发生某种变化。

本设计尝试用JAVA在网络上架构一个网上书店管理系统,以达到对网上书店的各项基本管理。

本文从理论和实践两个角度出发,对一个网上书店管理系统进行设计与实现分析。

关键词:

网上书店管理JAVA

前言

传统书店分布广泛,在市场有很多传统书店。

这类书店占据了87%以上的图书市场;由于电子商务的迅速发展,网上书店国内目前并不少见,在google搜索引擎中输入“网上书店”搜索就有8970000项结果。

但是因为信誉度的问题,只有当当、卓越少数几家网上书店真正实现全国范围的网上售书。

因此,如果顾客想通过网络购书通常只有两种选择,当当、卓越或者是本地的网上书店;而其他购书方式,这类购书方式主要以出版社和书友会邮购为主,大约占据市场份额的7%。

邮购通常是向出版社或者书友会,优点是图书种类齐全,缺点是速度慢,而且提高了购书成本。

学校团购优点是因为集体购买可能图书的价格会较低,缺点是缺少自主性。

传统书店分布广泛,符合顾客传统的消费习惯,信任度较高。

但是对购买者来说需要花费很多交通以及挑选的时间,加上需要固定店铺,成本高,图书价格较高,另外如果店铺规模较小,书籍种类不能保证。

这样就促使网上书店越来越成为可能。

网上购书,具有价格低廉、高效、方便、种类齐全的特点,同时对于经营企业来说,由于不需要店铺,从而把成本降到了最低。

但是传统的网上购书网站,使用的是快递和邮递相结合的方式送书,当顾客距离不在同一城市时,不可避免地继承了传统邮购方式的种种缺点。

 

第1章概述

1-1开发背景

网上商城类似于现实世界当中的商店,差别是利用电子商务的各种手段,达成从买到卖的过程的虚拟商店,从而减少中间环节,消除运输成本和代理中间的差价,造就对普通消费,和加大市场流通带来巨大的发展空间。

尽能的还消费者以利益,带动公司发展和企业腾飞,引导国民经济稳定快速发展,推动国内生产总值。

且具有如下优势:

★永不关门:

每天24小时,每周7天。

都可以进行商品的浏览与购买,工作时间可以随时与客服进行交流,解决购物中遇到的困难。

★信息量大:

更多的了解,增加了您的选择空间。

★客户无限:

全球的任何人都可以通过Internet访问您的商店,不受空间限制。

★服务优质:

网上商店,不但可以完成普通商店可以进行的所有交易,同时它还可以通过多媒体技术为用户提供更加全面的商品信息。

★成本低廉:

由于省去了店面费用,所以总体的成本降低很多,所以表现在消费品上的价格也会相对传统店面便宜很多。

同时因为是大批量取货后分销的形式,所以价格优势比较明显。

而网上书城则顾名思义,是网站式购书平台。

提供高质量,更快捷,更方便的购书方式。

网上书城不仅可用于图书的在线销售、下载,也有音碟、影碟的在线销售,版权交易、图书馆的采购、团购等功能的实现,你可以在线分享你喜欢的图书、音像、图书资讯等给你的好友。

而且网站式的书城对图书的管理更加合理化,信息化。

售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。

我国的网上书店虽然从数量上取得了一定的进展,但从售量而言却不尽人意,目前,国内尚无一家在网上零售领域形成绝对领先优势的网上书店。

发展比较好的寥寥无几,比较成功的有当当书店()。

1-2JAVA简介

它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。

由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。

就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。

Java编程语言的风格十分接近C、C++语言。

Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。

它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。

不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。

但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。

与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。

全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。

“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。

这与微软公司所倡导的注重精英和封闭式的模式完全不同。

Sun公司对Java编程语言的解释是:

Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

Java平台是基于Java语言的平台。

这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。

1-3SQL简介

SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。

它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。

它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。

结构化查询语言(StructuredQueryLanguage)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。

SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。

如今无论是像Oracle、Sybase、DB2、Informix、SQLServer这些大型的数据库管理系统,还是像VisualFoxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。

美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。

ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。

ANSI同时也是ISO和InternationalElectrotechnicalCommission(IEC)的成员之一。

ANSI发布与国际标准组织相应的美国标准。

1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。

ANSI随之发布的相应标准是ANSISQL-92。

ANSISQL-92有时被称为ANSISQL。

尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循ANSISQL标准。

SQLServer使用ANSISQL-92的扩展集,称为T-SQL,其遵循ANSI制定的SQL-92标准。

SQL语言包含3个部分:

数据定义语言DataDefinitionLanguage(DDL),定义:

definition/例如:

CREATE、DROP、ALTER等语句。

数据操作语言DataManipulationLanguage(DML),操作:

make/例如:

INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。

数据控制语言DataControllingLanguage(DCL),控制:

control/例如:

GRANT、REVOKE、COMMIT、ROLLBACK等语句。

SQL语言包括三种主要程序设计语言类别的语句:

数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。

SQL是用于访问和处理数据库的标准的计算机语言。

第2章需求分析

2-1在Windows平台下配置JSP运行环境

  为了使系统能够正常运行JSP和相关程序,必须先配置好能够使用JSP的WEB服务器。

各种能使用Servlet技术的WEB服务器中,运用得最多的是Tomcat服务器,如果仅是为了用于测试程序,Tomcat的配置则显得太复杂了,本文推荐使用Resin服务器,Resin据称是最快的Servlet运行平台,不过限于单站点,对传统的一些网关支持不是很好,因此对于商业网站而言,不是最好的选择,不过如果仅是为了测试Servlet,这个Resin的安装可谓有点傻瓜化。

  Resin比较新的版本是3.x,但目前实际用的2.x版本的比较多,Resin可到官方站点下载:

如果你的电脑上已装好JDK,直接把下载的resin包解压到D:

盘根目录解压后即D:

\resin-2.1.13为服务器的目录,把本文的源程序jspweb文件夹也放在D:

盘根目录,即是D:

\jspweb为网站根目录,打开D:

\resin-2.1.13\conf\resin.conf(是一份XML形式的配置文件),找到doc这里改为D:

\jspweb,然后运行D:

\resin-2.1.13\bin\httpd.exe,在浏览器输入http:

//localhost:

8080/j1.jsp,看到了“我是JSP!

”的字样了吧,你的Servlet服务器就这样配置成功了,为了能编译Servlet类,还需要做的事情是:

把D:

\resin-2.1.13\lib加入到windows的CLASSPATH的环境变量中。

2-2JSP、ASP和PHP技术之比较

JSP与ASP、PHP技术都是目前网上最流行的在服务器端运行的脚本技术,JSP能用JavaBeans技术封装,达到商业逻辑的目的,ASP对应之的是COM组件,因此两者都能用于开发商业逻辑,PHP则更像于一个纯脚本,仅适合于普通的网站开发,而不能用作商业逻辑而被冠以“PersonHomePage”的名称,这是最贴切不过的了。

JSP与ASP相比,JSP具有跨平台、安全、强大的可伸缩性的特点,而果硬要挑一些毛病,JSP相对别的脚本更加难掌握,因为精通JSP必须精通Java语言,对于中小型项目,我们要考虑开发人员、开发速度、开发成本等问题,在这方面ASP和PHP会比JSP更容易胜出。

值得一提的是,ASP的最新版本ASP.NET与原来的ASP性质完全是不同的,它和JSP一样,都是一种编译性的脚本,本身完全与强大的Net框架结合,完美的支持Xml的各种应用,与昔日的ASP不可同日而语,但是无论是ASP还是ASP.NET,它都摆脱不了Windows平台本身,这是ASP一个致命的缺点。

2-3JSP语法基础

2-3-1嵌入了JAVA语言的HTML文件

把下面网页保存为:

j1.jsp

这就成了一个最简单的JSP页面了,其中

是声明输出的文件类型为text/html,字符编码是gb2312,在JSP中里的内容表示的是JSP编译时的一些选项或向客户端发送的头信息的JSP指令,里的内容就是Java语言,如果有必要,更改适当设定,还可以使用javascript作为脚本,不过实际应用中很少有人这样做。

2-3-2request、out&response--与访问者的交互

接收客户端的请求和向客户端返回信息是动态网页最常做的事情,在JSP中,主要通过request、response、out三大对象实现这些功能。

request对象的作用是接收用户通过URL或通过表单向发服务器发送请求信息和与用户计算机相关的一些信息。

response对象用于网页传回用户端的回应。

out用于传送回应的输出,即向客户端返回信息。

把上面的例子稍作修改:

  

保存为j2.jsp在浏览器上输入:

“http:

//localhost:

8080/j1.jps?

msg=我是JSP”看一下效果,这和j1.jsp的结果一样吧?

但它输出的是客户端返回的信息,这在意义上完全不同于前者。

2-3-3session--保持访问者的会话状态

会话状态维持是Web应用开发者必须面对的问题。

有多种方法可以用来解决这个问题,如使用Cookies、隐藏的表单输入域,或直接将状态信息附加到URL中。

JavaServlet提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息,JSP也内置了这个对象。

Session最基本的用法是:

创建一个会话session.putValue("名称","值");

获得一个会话的值session.getValue("名称");

2-3-4JSP其它基本内置对象

JSP有九大内置对象,除了上述四种以外,还包括:

pageContext网页的属性是在这里管理

applicationServlet正在执行的内容

configServlet的构架部件

pageJSP网页本身

exception针对错误网页,未捕捉的例外

这些基本的内置对象是构成JSP页面的重要因子。

 

第3章详细设计

本系统采用三层架构设计,它的工作原理如图3-1所示。

图3-1三层架构模型

采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。

3.1数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。

合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

3.1.1数据库需求分析

针对一般在线书店的需求,得出如下需求信息。

▪用户分为游客和已注册用户。

▪订单分为单张详细订单和总订单。

▪一个用户可以购买多本图书。

▪一个用户对应一张订单。

▪一个列表对应多张订单。

针对本系统功能分析,总结出如下的需求信息。

▪用户,包括数据项:

用户ID、用户名、密码。

▪图书,包括数据项:

图书编号、图书名、价格、图书介绍。

▪订单列表,包括数据项:

订单编号、图书编号、购书数量。

▪订单,包括数据项:

订单编号、用户编号、下单时间。

从本系统中规划出的实体有:

用户实体、图书实体、订单实体、订单列表实体。

订购

用户

订单列表

订单

图书

实体之间关系的E-R图如图3-5所示。

11N

 

N

图3-5实体关系E-R图

用户信息实体的E-R图如图3-6所示。

图书实体的E-R图如图3-7所示。

订单实体的E-R图如图3-8所示。

订单列表实体的E-R图如图3-9所示。

图书

图书编号

图书名称

分类编号

封面

图3-6图书实体E-R图

用户

用户名

密码

用户编号

E-mail

图3-7用户实体E-R图

订单

订单编号

用户编号

图书编号

订购数量

图3-8订单实体E-R图

订单列表

订单号

用户编号

图书编号

是否付款

图3-9订单列表实体E-R图

3.1.2数据库逻辑结构设计

在线书店数据库中各个表的设计结果如下面的标和所示。

表3.1为图书信息列表book。

表3.1图书信息表book

字段名

数据类型

长度

允许空

说明

ID

int

4

自动编号,主键

bookname

int

4

书名

bookclass

varchar

255

图书类别

author

varchar

100

yes

图书作者

publish

float

8

yes

出版社

bookNo

varchar

100

yes

书号

Content

text

16

yes

内容介绍

price

tinyint

1

yes

价格

Amount

int

4

yes

总数量

Leav_number

int

4

yes

库存量

picture

int

4

yes

封面

reg_time

datetime

8

yes

入库时间

表3.2为用户信息列表shop_user。

表3.2用户信息表shop_user

字段名

数据类型

长度

允许空

说明

ID

int

4

自动编号,会员编号

username

varchar

4

no

用户名

password

varchar

100

no

密码

Names

int

4

yes

会员级别

Sex

varchar

50

yes

名字

Addr

varchar

50

yes

地址

Phone

varchar

25

yes

电话

Post

varchar

25

yes

邮编

Email

varchar

25

yes

邮箱

Retime

datetime

8

yes

注册时间

RegIpAddr

varchar

20

yes

注册ip

 

表3.3为订单表,记录订单信息orders。

表3.3订单信息表orders

字段名

数据类型

长度

允许空

说明

ID

int

4

yes

自动编号,订单编号

order_id

int

4

yes

会员编号

user_id

int

4

yes

图书编号

quantity

int

4

yes

订购数量

submit_time

datetime

8

yes

提交订单时间

consignmentTime

datetime

8

yes

交货时间

totalprice

float

8

yes

总价

content

varchar

20

yes

备注

ipAddr

varchar

20

yes

用户ip

isPayoff

int

11

yes

是否付款

isSale

int

11

yes

是否发货

表3.4为订单列表,记录订单列表信息allorder。

表3.4订单列表allorder

字段名

数据类型

长度

允许空

说明

ID

int

4

自动编号,卡类型编号

orderID

int

11

yes

订单号

BookNo

int

11

yes

书号

Amount

int

11

yes

数量

表3.5书店管理员信息表,记录管理员信息bookadmin。

表3.5管理员信息表bookadmin

字段名

数据类型

长度

允许空

说明

AdminUser

varchar

20

管理员用户名

AdminPass

varchar

50

yes

管理员密码

表3.6图书分类信息表,记录图书分类信息bookclass。

表3.6图书分类表bookclass

字段名

数据类型

长度

允许空

说明

ID

int

4

自动编号,卡类型编号

Classname

varchar

30

yes

图书类别

第4章详细设计

4.1系统概述

4.1.1用户界面部分

图书选购(可按分类查找图书,或者通过关键字进行查询)。

购物车功能。

查看图书详细信息。

用户注册。

用户登录。

查看用户的订单信息。

修改用户个人信息。

4.1.2管理界面部分

现有图书管理:

修改,删除,查看。

用户管理:

查看,修改,删除。

订单管理:

查看订单清单,更新订单付款,出货状态,删除订单。

添加新图书。

添加图书分类。

4.2详细代码及说明

4.2.1实现bookshop.run包

1:

login.java

这是一个以客户为中心的交易平台,只有成为了系统的合法用户才能够使用这个系统,因此需要检验每个用户的合法性,管理用户登录的login.java正是要完成这样的功能。

类中定义了个private属性和他们对应的setX()/getX()方法和默认构造函数和execute()getSql()操作。

private属性分别是:

    privateStringusername;//登录用户名

privateStringpasswd;//登录密码

privatebooleanisadmin;//是否管理员登录

privatelonguserid=0;//用户ID号

 重要操作:

主要介绍execute()

execute()操作

功能:

从数据库中查询用户信息。

返回值:

boolean型,如果取值成功返回true,否则,返回false。

设计思路:

获得数据库连接对象Connection对象,ResultSet对象和Statement对象――》调用getSql()方法获得sql语句――》执行sql语句。

程序主干部分代码:

       publicbooleanexecute()throwsException{

………

try{

     con=DataBase.getConnection();

     stmt=con.createStatement();

     rs=stmt.executeQuery(getSql());

  }catch(Exceptione){

       e.printStackTrace();

    }

while(rs.next()){

if(!

isadmin)

{

userid=rs.getLong("id");

}

flag=true;

}

………}

2:

op_book.java

该类主要负责图书的管理,包括图书的修改,查询,删除和添加等。

op_book类有以下属性:

   privatebookabooks=newbook();//新的图书类

privatejavax.servlet.http.HttpServletRequestrequest;//建立页面请求

privatebooleansqlflag=true;/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1