基于JSP的商品发布与销售系统.docx
《基于JSP的商品发布与销售系统.docx》由会员分享,可在线阅读,更多相关《基于JSP的商品发布与销售系统.docx(69页珍藏版)》请在冰点文库上搜索。
基于JSP的商品发布与销售系统
基于JSP的商品发布与销售系统
摘要:
本论文对基于JSP的商品发布与销售系统的开过发过程作了详细的描述,系统用的是Jsp技术,以Oracle作为数据库进行开发的,采用了MVC设计模式,用现在比较流行的企业级开发三大框架SSH,即Struts+Spring+Hibernate进行开发,系统整体采用B2C模式。
文中着重论述了该系统的设计与实现,并对关键的技术作了较详细的介绍。
本系统共分两个部分:
前台用户部分和后台管理部分。
在前台系统中有三个模块:
包括顾客/会员登录及注册、商品展示、购买流程。
在后台系统中有五个模块:
包括商品目录管理、商品管理、订单管理、销售量统计、会员管理。
在用户注册模块中,特别加强了用户注册信息的前台验证的严格性;在商品展示中,用户可以对商品进行浏览检索,查看商品详细资料;并且规定注册成会员的用户才能对商品进行评论。
没有注册成会员只能浏览商品。
在后台系统中,系统管理员可以对已注册的用户进行管理,并对提交的订单进行处理;可以对现有的商品进行管理以及对销售量进行统计。
整个系统结构清晰、功能明确,页面风格鲜明,易操作,适合客户的需要。
使交易能够更加方便和快捷。
关键词:
B2C;Jsp;Oracle;Struts+Spring+Hibernate
TheJspgoodsbasedontheissueanddistributionsoftwarearchitecturesystem
Abstract:
ThisarticlethroughdetaileddescriptionfordevelopmentoftheJspgoodsbasedontheissueanddistributionsoftwarearchitecturesystem.ThesystemisbasedonJspandOracleDatabasedevelopmenttechnology,andthesystemusingtheMVCdesignpattern,usingthenowpopularenterprise-levelframeworkforthedevelopmentofthreeSSH,theStruts+Spring+Hibernate.Thisarticlefocusesonthedesignandimplementationofthesystem,andmadeamorecriticaltechnicaldetail.Thesystemisdividedintotwoparts:
theforegroundandthebackgroundoftheusermanagementsection.Intheforegroundsystemhasthreemodules:
includingcustomermemberloginandregistration,merchandisedisplay,thepurchaseprocess.Inthebackgroundsystemhasfivemodules:
includingcatalogmanagement,productmanagement,ordermanagement,salesstatistics,membersofmanagement.Intheuserregistrationmodule,inparticular,theuserregistrationinformationtoenhancetheprospectsofverificationrigor;inthemerchandisedisplay,theusercanbrowseandsearchforproducts,viewproductdetailsmoredetails;andrequiresuserstoregisterasamemberofthegoodsComment.Notregisteredasmemberscanonlyseetheproducts.Inthebackgroundsystem,thesystemadministratorcanmanagearegistereduser,andsubmitordersforprocessing;canbemanagedontheexistingproductsandthesalesstatistics.Theentiresystemstructureisclear,featuresaclear,distinctivestylepages,easytooperate,suitableforcustomerneeds.Sothattransactionscanbemoreconvenientandfaster.
Keywords:
B2C;Jsp;Oracle;Struts+Spring+Hibernate
目录
1系统所用的技术简述1
1.1JSP技术1
1.2SSH三大框架2
1.3Oracle简述4
1.4本章小结5
2 系统需求分析6
2.1系统背景6
2.2开发环境6
2.3可行性分析6
2.4系统的需求7
2.6本章小结11
3 系统的概要设计12
3.1基本模块设计12
3.2具体模块及其功能12
3.3系统用例图14
3.4模块设计说明15
3.5系统总架构图20
3.5系统出错处理设计20
3.6安全设计21
3.7维护设计21
3.8本章小结21
4 系统的实体关系及数据库设计22
4.1数据实体关系22
4.2利用PowerDesigner对数据库设计22
4.3数据库的设计23
4.4本章小结26
5系统展示及说明27
5.1系统代码结构27
5.2前台界面展示及说明32
5.2.1会员注册32
5.2.2会员登录35
5.2.3个人信息维护36
5.2.4商品搜索38
5.2.5商品购买39
5.2.6购物车41
5.2.7收藏夹管理43
5.2.8地址簿管理45
5.3后台展示46
5.3.1后台登录46
5.3.2编辑目录47
5.3.3编辑商品49
5.3.4订单管理52
5.3.5销售统计管理53
6 总结56
参考文献57
致谢59
1系统所用的技术简述
本章主要介绍了该系统所使用的技术。
其中包括J2EE的概述,以及其当下流行SSH框架的特征。
同时介绍了所使用的数据库Oracle。
1.1JSP技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
1.2SSH三大框架
框架是一个应用程序的半成品。
框架提供了可在应用程序之间共享的可覆用的公共结构。
开发者把框架融入他们自己的应用程序,并加以扩展,以满足他们特定的需要。
框架和工具包的不同之处在于,框架提供了一致的结构,而不仅仅是一组工具类。
框架其实就是一组组件,供你选用完成你自己的系统。
简单说就是使用别人搭好的舞台,你来做表演。
而且,框架一般是成熟的,不断升级的软件。
可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。
因此构件库的大规模重用也需要框架。
构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。
在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。
框架的关键还在于框架内对象间的交互模式和控制流模式。
框架比构件可定制性强。
在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。
框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。
应用框架的概念也很简单。
它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。
使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。
框架提供了所有应用期望的默认行为的类集合。
具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。
应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。
与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。
应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。
框架的力度越大,其中包含的领域知识就更加完整。
因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。
在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。
而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。
还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
所以本系统的开发,就引进了J2EE中常用的三种框架,分别是:
Struts、Spring
Hibernate。
现对以上三种框架作简要的介绍:
Struts:
Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
这个框架之所以叫“Struts”,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。
同样,软件工程师使用Struts为业务应用的每一层提供支持。
它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
Spring:
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现WriteOnce及RunAnywhere的承诺。
Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。
Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。
可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。
然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。
Spring通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
Hibernate:
Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。
它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
大多数应用程序都需要处理数据。
Java应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。
有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。
手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。
优秀的面向对象开发人员厌倦了这种重复性的劳动,他们开始采用通常的“积极”偷懒做法,即创建工具,使整个过程自动化。
对于关系数据库来说,这种努力的最大成果就是对象/关系映射(ORM)工具。
这类工具有很多,从昂贵的商业产品到内置于J2EE中的EJB标准。
然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。
由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。
这引起了一场革命,促进了轻量级解决方案的出现,而Hibernate就是这样的一个例子。
1.3Oracle简述
Oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。
不过,一般的中小型企业都比较喜欢用mysql,SQLserver等数据库系统,它的操作很简单,功能也非常齐全。
只是比较oracle数据库而言,在处理大量数据方面有些不如。
Oracle简称甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。
该公司成立于1979年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。
Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这个市场的大部分份额。
现在,他们的RDBMS被广泛应用于各种操作环境:
WindowsNT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。
事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。
由于Oracle公司的RDBMS都以Oracle为名,所以,在某种程度上Oracle己经成为了RDBMS的代名词。
Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。
因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。
Oracle数据库是基于“客户端/服务器”模式结构。
客户端应用程序执行与用户进行交互的活动。
其接收用户信息,并向“服务器端”发送请求。
服务器系统负责管理数据信息和各种操作数据的活动。
1.4本章小结
本章主要介绍了该系统所使用的技术。
其中包括J2EE的概述,以及其中当下流行SSH框架的特征。
同时介绍了所使用的数据库Oracle。
最后以软件工程的规格要求来对系统进行设计。
2 系统需求分析
根据上一章的技术简述,本章主要对该系统的做了需求分析。
其中主要有:
系统的背景,系统的开发环境,可行性分析,以及各需求的规定。
2.1系统背景
开发软件的名称:
基于JSP的商品发布与销售系统
项目的提出者:
郑艳君老师
项目的任务开发者:
潘刚刚
项目的用户:
网上购物的所有用户
2.2开发环境
本系统是在以下的环境下开发并运行的:
操作系统:
Windows7
数据库系统:
Oracle
开发工具:
MyEclipse+Tomcat
浏览器:
IE6以上
2.3可行性分析
根椐对本系统中所用到的技术架构的掌握,以及相关硬件和开发软件的支持,以计算机网络作为信息传输媒体,信息传送速度快、信息覆盖面广、成本低的特点。
因此,很多个人或企业都开始得用网络开展商务活动,可以看到,在个人或者个业进行网上商业活动时间产生的是多方面的。
但是,开发任何一个基于计算机的系统,都会受到时候和资源上的限制。
因此,对在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发风险,避免人力、财力和物力的浪费。
可行性分析与风险分析在很多主面是相互关联的,项目风险越大,开发高质量的软件的可行性就越小。
2.4系统的需求
1)购物流程
购物总流程如图
(1)所示
图1购物总流程图
2)系统模块
登录管理模块如图
(2)所示
图2登录管理模块如图
系统管理模块如图(3)所示
图3系统管理模块如图
用户管理模块如图(4)所示
图4用户管理模块图
商品管理模块如图(5)所示
图5商品管理模块图
订单管理模块如图(6)所示
图6订单管理模块图
用户模块如图(7)所示
图7用户模块图
2)对性能的规定
1)精度
查询时应保证查全率,所有相应域包含查询关键字地记录都应能查到。
查询时应保证查准率,查到地记录应与给定地单项或组合查询条件完全匹配。
2)时间特性要求
一般操作的响应时间应在1~2秒内。
对软磁盘和打印机的操作,以及数据的导入和导出也应在可接受的时间内完成。
3)输入输出要求
对于输入输出的数据进行的规定一定要严格按照用户的实际情况而进行。
这就要求在开发此软件系统时要密切地和用户单位保持联系,做好接口工作。
4)对外部接口的要求
用户界面:
采用WINDOWS的通用图形界面,对用户友好,且必须对鼠标和键盘提供支持。
界面的设计应遵循如下规则:
界面要具有一致性,界面规范应遵循MSWINDOWS软件界面元件的规范,提供简单的错误处理。
提供信息返馈,用多种信息提示用户当前软件运行状态,软件界面元件的功能。
操作可逆,其动作可以是单个的操作,或者是一个相对独立的操作序列;设计良好的联机帮助。
显示启动界面,画面简洁明快,富有现代气息,不能太过花俏。
应遵循国家关于计算机计算机词汇的标准,用词应当精练准确,没有歧义,图形的意义明朗。
5)硬件接口:
支持一般的PII或更高档的微机,笔记本电脑。
6)软件接口:
运行于WINDOWS7,且具有WIN32API地操作系统之上。
7)故障处理:
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
(8)其他专门要求
1)正确性要求发布的软件达到用户的预期目标,运行时基本无错误。
2)可靠性在一般条件下,应不出故障。
3)效率数据计算自动完成。
4)完整性当外界环境(如停电、网络病毒)干扰本系统时,系统可以自动保护原始数据的安全。
5)用性要求能尽量为用户的使用提供方便,软件的界面符行的界面流行的界面规范。
6)护性要求本软件在运行中发现错误时,能快速,准确对其进行定位,诊断和修改。
7)试性设计时尽可能减少测试本软件的各项功能所需的工作量。
8)复用性设计时采取模块化的方法进行设计,对系统的内模块接口尽可能达到高内聚,低耦合的程度,以提高各模块的复用性。
2.6本章小结
本章主要介绍了该系统的需求分析。
其中主要有:
系统的背景,系统的开发环境,可行性分析,技术的可行性,以及各需求的规定。
需求分析是设计软件的第一步,也是最重要的一步。
3 系统的概要设计
本章内容是根据上一章的系统需求对系统做了概要分析。
其中主要有:
基本模块设计,具体模块及其功能,模块设设说明,系统用例图,系统出错处理的设计,系统的安全设计,以及系统维护设计。
3.1基本模块设计
前台模块
1)会员/顾客模块
2)商品展示模块
3)购买流程模块
后台模块
1)商品目录管理模块
2)商品管理模块
3)订单管理模块
4)销售量统计模块
5)会员管理模块
3.2具体模块及其功能
商品目录管理:
增加目录、删除目录、修改目录、查询目录
商品管理:
增加商品、删除商品、修改商品、查询商品
订单管理:
根据条件查询订单、查看订单、订单审核
销售量统计:
查询销售排行和统计
会员管理:
级别设置、查询会员、删除会员
会员/顾客模块:
用户通过注册称为会员即可执行查看商品、购买操作达到网上购物目的。
商品展示模块:
管理员通过将商品展示到页面提供会员/顾客浏览。
购买流程:
一个提供给顾客/会员购买的流程。
该系统的结构图如图(8)所示:
图8系统结构图
在本软件系统的工作过程中不得不包含的人工处理过程有:
在对数据进入操作过程中,对用户权限表和角色表中的数据需要人工输入在操作的过程中,对功能的选择、控制时必须由人