基于struts的网上书店.docx
《基于struts的网上书店.docx》由会员分享,可在线阅读,更多相关《基于struts的网上书店.docx(46页珍藏版)》请在冰点文库上搜索。
基于struts的网上书店
大连民族学院本科毕业设计(论文)
基于struts的网上书店
学院(系):
计算机科学与工程学院
专业:
软件工程
学生姓名:
学号:
指导教师:
评阅教师:
完成日期:
大连民族学院
摘要
伴随着Internet的发展,网络购物中心作为电子商务的一种形式正义其高效,低成本的优势,逐步成为新兴的经营模式和理念,人们渴望能够充分享受到网络所带来的更加多的便利。
网络购物正适应了当今社会的快节奏的生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。
本系统是尝试使用struts技术在网络上架构一个动态的在线图书网站,他是在XP系统下,以MicrosoftSQLServer2005为数据库开发平台,tomcat网络信息服务作为应用服务器,myeclipse6.5为开发工具,采用struts技术开发的网上书店系统。
它分为前台和后台两个部分,前台部分有用户使用,主要包括用户注册,图书查询,留言,订单生成,购物车等;后台部分由管理员使用,主要包括商品管理,处理订单,用户管理,公告管理,留言管理等功能。
建立后的网站系统设计简洁,操作容易,是一个动态的,交互式的,具有图书提供,系统管理等功能的电子商务网站。
难点在于对购物车的设计,准确记录顾客的购物需求,以及对不同顾客不同的信息记录。
该系统调试和运行一切正常,可以初步的进行实际应用。
关键词:
图书;在线销售;订单处理;
Abstract
AlongwiththedevelopmentofInternet,networkshoppingmalljusticeasaformofe-commerceefficiency,low-costadvantagehasgraduallybecomeanewbusinessmodelandphilosophy,peopleareeagertobeabletofullyenjoythenetworkmoreandmoreconvenient.Onlineshoppingisbeingadaptedtothefast-pacedlifeoftoday'ssociety,sothatcustomerscanenjoyconvenientandeasywaytopurchasetheirfavoriteproducts.
Thissystemistotrytousethestrutsonthenetworkstructureisadynamiconlinebooksite,heisintheXPsystem,MicrosoftSQLServer2005databasedevelopmentplatformtomcatnetworkinformationservicesastheapplicationserver,myeclipse6.5developmenttools.strutstechnologydevelopment,onlinebookstores.Itisdividedintoforegroundandbackgroundintwoparts,thefrontpartofusers,includinguserregistration,booksearch,message,ordergeneration,shoppingcart,etc.;backgroundinpartbyanadministrator,includingcommoditymanagement,processingorders,usermanagement,announcement,messagemanagementfunctions.Aftertheestablishmentofsitesystemdesignissimple,easytooperate,isadynamic,interactive,withbooks,systemmanagementfunctionsofe-commercewebsite.Thedifficultyliesinthedesignoftheshoppingcart,accuraterecordsoftheircustomers'shoppingneeds,anddifferentfordifferentcustomerinformationrecord.Thesystemdebuggingandrunningeverythingisnormal,caninitiallyforpracticalapplication
KeyWords:
Books;onlinesales;orderprocessing;
目录
摘要I
AbstractII
1引言1
1.1网上书店现状分析1
1.2编写目的1
2开发框架SSH介绍2
2.1SSH简介2
2.2系统的基本业务流程2
2.3SSH分类介绍2
2.3.1Struts2
2.3.2Spring3
2.3.3Hibernat3
3可行性分析5
3.1业务流程图5
3.2经济可行性6
3.3技术可行性6
4需求分析8
4.1系统的需求分析8
4.2数据流图9
4.2.1系统总数据流图9
4.2.2数据字典10
5总体设计18
5.1系统模块总体设计18
5.1.1前台系统功能模块18
5.1.2后台系统功能模块19
5.2数据库总体设计19
5.2.1数据库概述20
5.2.2数据分析20
5.2.3数据库的详细设计20
6详细设计与实现25
6.1系统运行平台及开发工具25
6.2系统首页设计25
6.3系统前台设计26
6.3.1用户维护模块26
6.3.2图书展示模块29
6.3.3购物车模块29
6.3.4订单生成模块30
6.3.5查看订单模块31
6.3.6公告浏览模块32
6.3.7客户留言32
6.4系统后台设计33
6.4.1基本信息管理33
6.4.2订单信息管理34
6.4.3图书信息管理35
6.4.4公告信息管理36
6.4.5留言信息管理37
7主要异常与解决38
结论39
参考文献40
致谢41
1引言
1.1网上书店现状分析
随着Internet的发展,网上购物已经成为21世纪网络发展的主流,网上购物也成为了一种购物时尚。
卓越亚马逊,当当网已经成为了广大消费者日常生活中非常重要的一部分。
在网上书店买书,可以查到很多图书的信息,因为网上书店是一个网站,它有它独特的售书方式和功能。
如用户注册,会员功能等。
有的还设置的积分,达到一定积分时自动成为高级会员,高级会员会有优惠和特别的服务,还有就是支付方式了,一般网上书店都有三种类型的支付方式:
汇款,在线支付,其它方式。
其中在线支付只要到支付平台开户后,将所获开户信息填入即可。
当在网上书店购买书后,用户有够图书都有记录,方便查询。
网络技术的发展和普及使得网上书店成为一种高质量,更快捷,更方便的购书方式,也逐渐成为更多消费者购书的首选。
1.2编写目的
网上购书的网站繁多,大多也就都比较成熟。
但是对于网站内部是如何运行的,特别是信息,数据是如何处理的还是不得而知,对电子商务实现的过程还是一知半解。
本课题是从理论和实践的角度出发,通过设计和实现一个基于Struts的网上书店,对电子商务以及所设计的Struts及衍生的SSH框架进行深入的探讨。
通过设计这样一个网上书店,让自己积累一定的电子商务网站开发知识以及STRUTS的知识,了解了SSH框架开发机理,为以后设计和实现更为复杂的系统做技术上的铺垫。
2开发框架SSH介绍
本系统采用了SSH框架进行开发,相对于传统的MVC,结构搭建更加清晰,可复用性更好,维护也更方便。
2.1SSH简介
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层,Hibernate框架对持久层提供支持,业务层用Spring支持,在Struts框架的模型部分。
具体做法是:
用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,使用Struts作为系统的整体基础架构,负责MVC的分离,利用最后由Spring完成业务逻辑。
2.2系统的基本业务流程
在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型组件和该组件的协作对象数据处理组件完成业务逻辑。
在表示层中,首先通过JSP页面实现交互界面,负责传送请求和接收响应,然后Struts根据配置文件将ActionServlet接收到的Request委派给相应的Action处理。
而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
2.3SSH分类介绍
2.3.1Struts
Struts对Model,View和Controller都提供了对应的组件。
ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求,并将处理结果返回给JSP页面显示。
Model部分:
由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分:
该部分采用JSP实现。
Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。
Controller组件:
该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。
该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。
系统核心控制器,对应上图的ActionServlet。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。
对应Action部分。
2.3.2Spring
Spring是为了解决企业应用开发的复杂性而创建的。
然而,Spring的用途不仅限于服务器端的开发。
目的:
解决企业应用开发的复杂性
轻量——从大小与开销两方面而言Spring都是轻量的。
Spring所需的处理开销也是微不足道的。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型,你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责其它的系统级关注点,例如日志或事务支持。
Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架——Spring可以将简单的组件配置、组合成为复杂的应用。
在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。
Spring也提供了很多基础功能,将应用逻辑的开发留给了你。
2.3.3Hibernat
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最意义的是,Hibernate可以完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:
Session、SessionFactory、Transaction、Query和Configuration。
在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
Query和Criteria接口:
负责执行各种数据库查询。
它可以使HQL语言或SQL语句两种表达方式。
SessionFactory接口:
负责初始化Hibernate。
它充当数据存储源的代理,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
Configuration接口:
负责配置并启动Hibernate,创建SessionFactory对象。
在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
Transaction接口:
负责事务相关的操作。
它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
Session接口:
负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。
Hibernate的session不同于JSP应用中的HttpSession。
这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
3可行性分析
从销售方面来讲,不仅给图书企业增加了一个新的销售渠道,而且方便了顾客购买与了解公司的图书及新的销售方向。
网络平台已经成为企业经营管理中不可忽视的一个重要的方面,拥有一个全面的、功能强大的、操作简单的在线销售系统网站,已经成为企业营销发展的一个必然趋势。
图书在线销售系统网站的建立,从图书企业宣传方面来讲,不仅扩大了企业知名度,还更直观地展示出企业的数码产品。
拥有一个B2C的图书在线销售系统网站,已经成为图书企业网络销售进程中的一个重要环节。
3.1业务流程图
系统业务流图描述如下
(1)用户注册:
为了统一管理,网上书店规定只有合法用户才能购买图书,所以要想购买图书的新用户必须进行注册,为了能及时发货给用户以及随时联系用户,系统需要记录每一位用户的详细信息。
(2)用户登录:
判断用户是否为合法用户,只有合法用户才能购买图书。
(3)修改个人信息:
更改资料。
(4)搜索:
用户能方便直接找到他们。
(5)查看图书详细情况:
查看图书的详细资料,。
(6)购物车功能:
保存用户购买信息。
(7)查看用户的订单信息:
查看用户购买了什么图书。
(8)统计信息:
查看用户购买图书的记录
系统业务流图如图3-1所示。
图3-1系统业务流图
新系统的目标确定后,可以从经济可行性、技术可行性和运行可行性三个方面对能否实现新系统目标进行可行性分析。
3.2经济可行性
图书属于折扣大利润丰厚的商品,而且网上书店不需要门面等成本开销,选择图书做本购物系统的主打商品,大大降低其价格。
加之传递方便、耐存储,故网上卖书具有比传统书店更大的成本优势。
有较大的客户群,存在很大的市场。
3.3技术可行性
根据该系统目标来衡量所需的技术是否具备,一般可从硬软件的性能要求、环境条件、操作人员水平和数量等方面去考虑和分析。
考虑到系统实施的可行性,在软件方面选择了如今较流行的MyEclipse6.0工具来进行开发管理平台的设计,使用SQLserver2005数据库存储数据。
在硬件方面,则选择空间较大,硬件的配置越高,系统的开发与运行会更流畅。
考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。
在软件方面,由于MyEclipse6.5和SQLserver2005是两个非常成熟的开发工具,无论在安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。
4需求分析
4.1系统的需求分析
经过对各大图书购物网站的考察、分析,要求本系统具有以下功能
(1)统一友好的操作界面,保证系统的易用性,方便用户的操作;
(2)具备图书信息的展示功能,方便浏览者对图书信息进行浏览与比较;
(3)规范的图书分类,方便浏览者分类查找图书;
(4)完善的购物车功能与用户结账功能;
(5)设置网站公告信息模块,使浏览者能够及时了解网站的各项动态变化,及销售的新品、特价活动等信息;
(6)图书销售排行功能;
(7)订单信息查询功能、图书产品信息查询功能;
(8)全面的后台管理功能,以方便管理员对网站信息进行更新与管理。
4.2数据流图
4.2.1系统总数据流图
图4-1 系统总数据数据流图
订单数据流图
图3-2 订单数据流图
信息维护数据流图
图4-3 基本信息维护数据流图数据流图
4.2.2数据字典
数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。
(1)数据项定义
如表4-1所示。
表4-1系统数据项定义
序号
名称
别名
类型
长度(字符)
I01-01
goods_id
图书编号
Int
4
I01-02
goods_name
图书名称
varchar
50
I01-03
goods_miaoshu
图书描述
varchar
5000
I01-04
goods_pic
存放图书图片
Varchar
50
I01-06
goods_shichangjia
图书市场价
int
4
I01-07
goods_tejia
图书特价
int
4
I01-08
goods_isnottejia
普通商品
varchar
50
I01-09
goods_catelog_id
图书种类号
int
4
I01-10
catelog_id
种类编号
Int
4
I01-11
catelog_name
种类名称
Varchar
50
I01-12
catelog_miaoshu
种类描述
Varchar
5000
I01-13
order_id
订单ID
Int
4
I01-14
order_bianhao
订单编号
Varchar
50
I01-15
order_date
订单生成日期
varchar
50
I01-16
order_zhuangtai
订单状态
varchar
50
I01-17
order_jine
总的消费金额
Int
4
I01-18
order_songhuodizhi
送货地址
Varchar
50
I01-19
order_fukuangfangshi
付款方式
Varchar
50
I01-20
order_user_id
用户ID
Int
4
I01-21
orderItem_id
订单明细编号
Int
4
I01-22
order_id
订单编号
Int
4
I01-23
goods_id
商品编号
Int
4
I01-24
goods_quantity
购买数量
Int
4
I01-25
user_id
用户ID
Int
4
I01-26
user_name
用户名
Varchar
50
I01-27
user_pw
用户密码
Varchar
50
I01-28
user_realname
真实姓名
Varchar
50
I01-29
user_address
住址
Varchar
50
I01-30
user_sex
性别
Varchar
50
I01-31
user_tel
联系电话
Varchar
50
I01-32
user_email
用户邮箱
Varchar
50
I01-33
user_qq
用户QQ
Varchar
50
I01-34
userId
管理员ID
int
4
I01-35
userName
管理员名称
Varchar
50
I01-36
userPw
管理员密码
Varchar
50
I01-37
gonggao_id
公告编号
Int
4
I01-38
gonggao_title
公告标题
Varchar
50
I01-39
gonggao_content
公告内容
Varchar
5000
I01-40
gonggao_data
公告创建时间
Varchar
50
I01-41
gonggao_fabuzhe
发布人
Varchar
50
I01-42
liuyan_id
留言id
Int
4
I01-43
liuyan_title
标题
Varchar
50
I01-44
liuyan_content
内容
Varchar
5000
I01-45
liuyan_date
时间
Varchar
50
I01-46
liuyan_user
客户
Varchar
50
(2)数据流定义
数据流编号:
D1-01
数据流名称:
图书信息维护
数据流来源:
管理员
数据流去向:
P1
数据流组成:
I01-01+I01-02+I01-03+I01-04+I01-05+I01-06+I01-07+I01-08+I01-09
数据流编号:
D1-02
数据流名称:
管理图书操作
数据流来源:
F1、P1
数据流去向:
P1、F1
数据流组成:
I01-01+I01-02+I01-03+I01-04+I01-05+I01-06+I01-07+I01-08+I01-09
数据流编号:
D2-01
数据流名称:
订单操作
数据流来源:
管理员
数据流去向:
P2
数据流组成:
I01-13+I01-14+I01-15+I01-16+I01-17+I01-18+I01-19+I01-20+I01-21+I01-22+I01-23+I01-24
数据流编号:
D2-02
数据流名称:
订单信息
数据流来源:
F2、P2
数据流去向:
P2、F2
数据流组成:
I01-13+I01-14+I01-15+I01-16+I01-17+I01-18+I01-19+I01-20+I01-21+I0