毕业论文JAVAWeb方向.docx
《毕业论文JAVAWeb方向.docx》由会员分享,可在线阅读,更多相关《毕业论文JAVAWeb方向.docx(43页珍藏版)》请在冰豆网上搜索。
毕业论文JAVAWeb方向
毕业论文(JAVA-Web方向)
基于SSH电子商城的课程设计
课程名称
:
基于SSH电子商城
课程代码
:
题目
:
基于SSH电子商城
年级/专业/班
:
学生姓名
:
学号
:
指导老师
:
开题时间
:
年月日
完成时间
:
年月日
摘要电子商务是利用电子信息技术和网络技术进行商务活动的一种先进手段。
随着网络经济的迅猛发展,电子商务作为网络化的新型经济活动,逐渐成为主要发达国家增强综合竞争实力,赢得全球资源配置优势的有效手段。
计算机和网络技术的应用推进了信息社会的进程,而电子商务则造就了全新的经济运行方式,将给社会经济带来重大的变革。
电子商务为中小型企业的经营和管理打开新的局面。
网络购物作为电子商务一个重要的应用,在新的贸易经济体制中占据了重要的位置,对未来的电子商务的发展发挥着主导作用,越来越受到人们的重视。
首先,本文简述了电子商务,尤其是网络购物发展现状,并根据一小型服装企业实际需求提出了构建基于SSH(Struts+Spring+Hibernate)整合框架的电子商务系统的项目计划。
其次,深入研究了轻量级JavaEE应用体系结构。
对所选框架分别进行分析和研究。
Struts是一个实现了MVC模式的经典的框架;Hibernate是轻量级JavaEE应用的持久层解决方案,以面向对象的方式提供了持久化类到数据表之间的映射,是优秀的ORM框架;Spring为企业应用提供了轻量级的解决方案:
它的Ioc容器,AOP思想,以它为核心,整合持久层框架和WebMVC框架。
通过三个框架的整合,可以构建可扩展、可复用、可移植、可维护的软件系统!
最后,在此基础上,严格按照软件开发规范设计本电子商务系统,对系统进行详细的需求分析、体系架构设计、概要设计及详细设计。
最终实现了一个网上购物系统,系统分为前台和后台,前台主要功能包括注册和登录、商品浏览、个人信息管理、购物车、我的订单和网上支付,后台主要功能包括管理员信息管理、用户信息管理、商品管理、商品分类管理、订单管理。
通过实践,很好的整合了这三个框架,并将其应用到实际的项目中,达到了预期效果,体现了较高的研究价值和应用价值。
此外,本电子商务系统的成
功的研发,不仅为中小型企业未来的运营模式提供一个示范,而且值得更多的传统企业关注和借鉴。
关键词:
电子商务,Struts,Hibernate,Spring,JavaEE,框架
AbstractE-commerceisanadvancedbusinessactivitythroughelectronicinformationtechnologyandnetworktechnology.Withtheswiftdevelopmentofcybereconomy,E-commerce,asabrand-newnewnetworkeconomicactivitywhichisbecomingalleffectivemeansofenhancingcomprehensivecompetitiveedgeandgainingtheadvantageofglobalresourceallocationforthemajordevelopedcountries.Calculatorwithtechnicalapplicationinnetworkpropulsionsocialprogressininformation,buttheelectroniccommerce
throughpractice,andexpectedeffectsareachievedinapplyingthemonrealprojects.Theoverallresultsaresatisfactory.Inaddition,theSUCCESSofe,-commercesystemresearchanddevelopment,notonlyproffersashow-howforthefutureoperatingmodelofthesmallandmediumenterprises,alsoisworthnoticingandlearningbymoreandmoretraditionalenterprises.
Keywords:
E-commerce,Struts,Hibernate,Spring,JavaEE,framework
前言
21世纪是信息的世界,随着信息化的浪潮席卷全球,传统的商务模式受到巨大的冲击。
越来越多的企业和个人消费者,在Internet开放的网络环境下,一种基于浏览器---服务器应用模式,实现消费者网上购物,商户之间的网上交易和在线电子支付的新型的商业运营模式---电子商务应运而生。
目前做得比较成功的电子商务平台,国内有:
当当网,阿里巴巴,淘宝,京东商城,慧聪网等,国外有:
亚马逊,eBuy等。
电子商务在中国也发展了一段时间,目前在国内也有很多电子商务的平台,通过分析国内的电子商务网站可知,目前国内的电子商务做的都是集合型,一个平台中各个方面的商务领域似乎都有涉及到。
像比较有名的一些网购平台,如:
八点优网,邮乐网,京东商城,易百,淘宝网,拍拍网,红孩网等电子商务网站,涉及的门类都很多,而且他们都有一个共通的特点就是只有产品的展示与订购,很少有厂家企业的介绍。
目前中国能用上电子商务平台的都是一些大中型的企业,而大部分的中小型,特别是小型企业还是用着以前的生意模式,靠朋友,靠关系,靠老客户来维持企业,这种模式在过去的时代会有一定的优势,但在信息网络时代这种模式缺乏主动性,往往会使企业处在被动的状态。
像阿里巴巴这样的大型电子商务平台是能很好地帮助企业做宣传,联系客户,但是阿里巴巴基本上是面对大中型的企业,每年的管理费用都非常高,对于一些中小企业要承受一笔高的资金是很困难的。
为了能够上中小型企业特别是小型企业能够用上电子商务平台,我们特地开发此系统,使中小型企业也能做到生产,宣传,销售一条龙。
本系统采用SSH(Struts,Spring,Hibernate)框架来开发。
SSH框架是目前J2EE领域里最热门而且用得较为成熟的一套开源框架,它是基于MVC设计模式之上,在充分发挥MVC设计模式优点的同时,也创造出了自己的开发特点,降低了应用程序的耦合性,更进一步提高了应用程序的复用性、移植性、灵活性、扩展性和应用性能。
SSH是一套轻量级的开发框架,相对于EJB重量级开发框架,SSH在继承了它的优点的同时,在开发和执行效率上都有了相当程度的提高,同时对于开发者而言,它比EJB更容易学习和撑握,开发速度也更快。
目前Struts和Spring发展到2.0版本,Hibernate发展到3.0版本,SSH框架也正在不断地进行优化和升级,运行也越来越稳定。
第1章系统需求分析
1.1系统设计目的
本系统设计目的旨在建立一个以SSH框架为基础,结构灵活、可复用、可扩展,开发快速且轻量的电子商务应用平台。
系统框架和企业网站子系统为本人设计的主要目标,能够根据业务需求变化可以灵活操作系统功能模块,根据企业变化能够自由添加、修改、删除企业网站子系统是实现以上目标的关键。
1.2系统需求
1.2.1功能需求
网站前台功能
1)首页:
为企业提供一个网站首页,在上面显示网站的重要信息包括企业LOGO,用户的登录,用户的注册,一级分类显示,最新商品及热门商品显示等。
2)用户的注册:
主要针对未注册的用户,完成注册功能使用,在注册过程中,需要进行数据的前台非空校验,及使用AJAX完成用户名是否存在的异步校验。
在校验通过后即可完成注册,在后台同样需要进行数据校验及发送一封激活邮件。
3)用户的激活:
已经注册的用户,需要进入邮箱点击激活链接进行用户的激活。
4)用户的登录:
已经注册的用户,并且该用户已经激活的情况下,输入用户名和密码即可激活用户。
5)用户的退出:
针对已经登录的用户,退出该系统使用。
6)首页商品展示:
显示最新商品及热门商品。
方便用户了解最新以及最热门商品。
7)分类页面商品展示:
根据某个分类的信息去展示商品。
可以方便用户查找相应分类商品。
8)商品详情展示:
点击某个具体商品的时候,可以显示商品的详情。
以便用户可以方便的了解商品的具体信息。
9)购物车:
此功能为用户提供购物功能,用户可以根据自己需要,将自己喜欢的商品添加到购物车,也可以从购物车中移除商品,甚至清空购物车中的所有商品。
10)订单:
登录用户可以将自己喜欢商品进行购买,产生订单。
可以对自己产生的订单进行在线的付款。
以及可以根据用户信息,查询自己的订单。
网站后台功能
1)管理员登录:
管理员根据用户名和密码完成登录功能。
2)一级分类管理:
管理员可以对前台显示的一级分类进行管理包括添加,修改,删除,查询的功能操作。
3)二级分类管理:
管理员可以对前台显示的二级分类进行管理包括添加,修改,删除,查询的功能操作。
4)商品管理:
管理员可以对前台上显示的商品进行管理包括添加,修改,删除,查询的功能操作同时要可以上传商品的图片。
5)订单管理:
管理员可以对所有的用户产生的订单进行管理包括未付款的,已经付款的,已经发货的,交易完成的订单。
可以修改订单状态及异步加载订单项。
6)用户管理:
管理员可以对注册过的用户进行管理包括修改用户信息,删除用户,查询用户。
1.2.2性能需求
响应时间与内存使用量:
忽略网络环境因素、主题模板及功能插件运作的因素,以本地测试为准。
数据库安装响应:
时间2秒内,内存使用量最高上限8,000,000bytes。
前台浏览响应时间:
时间0.8秒,内存使用量最高上限9,000,000bytes。
后台操作响应时间:
时间0.9秒,内存使用量最高上限9,000,000bytes。
安全性:
后台的界面访问、路径访问、操作执行的前后,均受登陆会话管理和用户权限管理的控制。
1.3运行环境
1.3.1硬件环境
a)服务器端:
服务器端的最低配置是由建立站点所需的软件来决定的,本网络系统服务器端的最低配置如下:
处理器:
InterPentium(Celeron)42.4GHz或更高。
内存:
2G
硬盘空间:
160G
显卡:
SVGA显示适配器
b)客户端:
因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此需要的配置应该高于下面的配置:
处理器:
InterPentium(Celeron)41.6GHz或更高。
内存:
512MB
硬盘空间:
160GB
显卡:
SVGA显示适配器
1.3.2软件环境
a)服务器端:
操作系统:
WindowsNT/2000/2003
网站服务器:
Tomcat7.x+jdk7.x
数据库管理系统:
MySQL5.x
b)用户端:
操作系统:
WindowsNT/2000/2003/XPprofessional/WindowsSeven
第2章系统设计
2.1MVC模式分析
MVC是一种将应用程序的逻辑层和表现层进行分离的方法。
MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
2.1.1模型(Model)
模型是应用程序的主体部分。
模型表示业务数据。
通常来说,你的模型类将包含取出、插入、更新、删除你的数据库信息的功能。
2.1.2视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
一个视图通常是一个网页,但是在CI中,一个视图也可以是一个页面片段,如页头、页尾。
2.1.3控制器(Controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
是模型、视图以及其它任何处理HTTP请求所必须的资源之间的中介,并生成网页。
由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松耦合的构件。
本系统是在MVC模式基础上来进行分层,由于本系统开发的工具是MyEclipse,在建立工程时开发工具就已经初步把系统分成MVC三层结构。
模型层由Models层来充当,该层主要是用来存实体Bean类和Hibernate影射文件。
通过该层开发者很方便地对整个工程下的Bean进行管理,同时也非常方便地对Hibernate配置文件进行影射,极大的提高了开发的效率,同时对以后系统的维护也非常方便。
V层在本系统中主要是用来数据展示,本系统中V层主要是采用JSP技术。
通过JSP技术可以很方便地把数据展示在web浏览器上。
在JSP技术基础上,对其进行了改进,把html语言和java语言进行分离,这样既达到了解耦的目的,也使后续系统的维护变得很方便。
把流程控制都放到Action层,把业务逻辑处理放在service层中,充分利用Struts2技术,在html页面中使用Struts2标签来展示数据,尽量减少在html页面上写java语句。
C层主要是用来做流程和逻辑控制,也是整个系统的核心层。
所有进出系统的访问都要经过这一层的控制。
本系统对C层时行了一些改进,我们把控制层又细分为Action层,service层和Dao层。
Action层只管流程控制,Service层只管逻辑控制,Dao层只管与数据打交道,各施其职,每个层次只管自己的事情,这样能使整个系统的层次非常分明,不会出现功能的混淆。
让开发者和维护者在编写代码的时候非常清晰。
MVC模型优点显然,但在实际开发过程中个人对采用MVC模式有一点点看法。
马克思主义哲学告诉我们,任何事物都有它的局限性,MVC也不例外。
MVC不是万能药,它并不能医治所有的疾病,作为一名医术高超的医生应该要能对症下药。
MVC强制性地将业务逻辑层和表现层分开,在一定程度上是能很好地松耦合,但这种做法是会带来开发和运行的开销的。
首先MVC采用多分层结构,这样就给开发带来了难度,增加了开发的时间,并且如果在层次设计的时候设计得不好,反而会降低程序运行的效率。
另外多层次结构在运行的时间没有单层次结构的程序运行的速度快,采用MVC模式如果分层太多,是会降低程序运行速度。
孔子告诉我们要因材施教,我们做开发的也要因物施用,大炮有大炮的威力,小步枪有小步枪的灵活,并不是说所有的系统都要采用MVC模式来开发。
MVC模式它提出来的初衷就是为大型软件设计而提出的,它对那些需要经常复用,扩展的大型软件是非常有好处,但对于那些复用性,扩展性很少的小软件,特别是对于开发时间要求比较紧的情况下,采用MVC模式,其实不是一种明智的选择。
2.2SSH分析
SSH即Struts+Spring+Hibernate,是典型的J2EE三层结构,分为表现层、中间层和数据访问层。
三层体系将数据表现、业务逻辑和数据访问分开。
业务逻辑、数据访问、权限拦截及合法性校验等工作放在中间层处理。
客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库打交道。
2.2.1Struts2框架:
Struts2体系结构
Struts2是一个具有很好实用价值的WebMVC框架,它减少了直接运用MVC模式来开发Web应用的周期。
重要的是它是一个开源框架,方便开发者深入研究了解其机制,越来越广泛的接受和应用。
而且它提供一个好的控制器和一套定制的标签库Taglib,着力在控制器和视图上的应用,完美的体现了MVC设计思想。
提供集中统一的权限控制、国际化提示和消息、输入校验和日志记录等技术支持。
另外,它对其他技术和框架具有良好的融合性。
如能与EJB、JDBC和Hibernate等数据库访问技术相结合,利用集成技术减少数据库的工作量。
Struts2的体系结构如图所示:
Struts2核心实现:
Struts2主要是用来控制整个系统流程。
它由三个部分组成,核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。
本系统采用的核心控制器为2.3.15.3版本,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。
如果用户请求以action结尾,该请求将被转入Struts2框架处理。
Struts2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts2调用名为login的Action来处理该请求。
--Struts2的核心过滤器-->
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
拦截器也是本系统中使用的一个Struts2重要组件功能,该组件功能提供一个事件拦截的方法,让你可以对某些动作进行拦截。
例如本系统对所有后台操作都有一个检查是否登录的功能,如果没有登录则对其操作进行拦截。
publicclassPrivilegeInterceptorextendsMethodFilterInterceptor{
@Override
protectedStringdoIntercept(ActionInvocationactionInvocation)throwsException{
//获得Session中存的后台的用户:
AdminUseradminExistUser=(AdminUser)ServletActionContext
.getRequest().getSession().getAttribute("adminExistUser");
if(adminExistUser==null){
//没有登录:
ActionSupportsupport=(ActionSupport)actionInvocation.getAction();
support.addActionError("您还没有登录!
请先去登录!
");
returnsupport.LOGIN;
}else{
//已经登录
returnactionInvocation.invoke();
}
}
}
2.2.2Hibernate框架:
ORM(对象/关系数据库映射)
对象关系映射(ObjectRelationalMapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
它完成了面向对象的编程语言到关系型数据库的映射㈣。
ORM框架可以看成应用程序和数据库之间的桥梁,通过它,我们可以以面向对象的方式建模、操作,易用、易理解,同时也可以利用关系型数据库系统对数据库访问操作的一些优势。
以面向对象的方式操作持久化对象,而ORM框架负责转换成对应的SQL(结构化查询语言)操作。
Hibernate概述
Hibernate是轻量级JavaEE应用的持久层解决方案,是流行的ORM框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以面向对象的方式来操纵数据库。
Hibernate不仅管理Java类到数据库表的映射,还提供数据查询和获取数据的操作,可以减少人工使用SQL和JDBC处理数据的时间。
Hibernate体系结构
Hibernate实际上是一个提供数据库服务的中间件。
Hibernate的持久化解决方案将用户从繁琐的JDBC访问中解脱出来,底层数据库连接获取,数据访问的实现、事务控制都无须用户关心,这种体系结构,将应用层从底层的JDBC/JTAAPI中抽象出来。
Hibernate体系结构如图(注:
该图来自于Hibernate官方参考文档)所示。
Hibernate有5个核心的接口、类,如下:
(1)SessionFactory接口:
它是单个数据库映射关系经过编译后的内存镜像。
所以,SessionFactory的初始化过程比较复杂,同时也耗费大量的资源。
为了解决这个问题,Hibernate的设计人员对Hibernate采用了线程安全可以并发调用,实现SessionFactory的实例,多个线程可以并发调用,实现Hibernate实例共享。
此外,它还是生成Session的工厂。
(2)Session接口:
应用程序与持久储存层之间交互操作的一个单线程对象。
Session接口对象实例中提供了持久化操作相关的“增、删、查、改"(CRUD)方面的操作。
所有的持久化操作都是在Session的基础上完成的。
通常将每一个Session对象实例和一个数据库事务绑定。
(3)事务Transaction接口:
通过Transaction接口来达到允许应用系统通过一组一致的事务API来控制事务边界,从而可以封装系统底层的事务操作和访问的接口。
将应用系统中涉及事务功能实现代码从底层的事务具体实现的技术细节中抽象出来,最终可以达到应用系统在不同的运行环境平台和JavaEE容器之间方便的移植。
(4)Query接口:
Query接口能让开发者方便的对数据库表中的数据及与之对应的持久化对象进行查询操作,利用它可以以面向对象的方式来实现对数据库的各种查询操作。
(5)Configuration:
通过Configuration获取目前的配置(如数据源、数据库的URL、连接用户名及密码、数据库方言等)并将这些配置加载到内存中,并预启动Hibernate框架,最终达到创建SessionFactory对象的目的。
2.2.3Spring框架:
Spring框架介绍:
Spring是从实际开发中抽取出来的开源框架,为企业的开发提供一个轻量级的解决方案。
该解决方案包括:
基于Ioc(控制反转)的核心机制,以及AOP(面向切面编程)的思想,能与多种持久层技术的整合,是优秀的WebMVC框架等。
Spring致力于JavaEE应用各层的解决方案而不是仅仅专注于某一层的方案,它贯穿表现层、业务层、持久层,降低各层组件的耦合度,实现软件各层的解耦.
轻量级
划分一个应用是否属于轻量级还是重量级,主要看它使用了多少服务,使用的服务越多,容器要为普通java对象做的工作就越多,必然会影响到应用的发布时间或者是运行性能。
对于Spring容器,它提供了很多服务,但这些服务默认是关闭的,应用对需要的服务可以现用现拿。
而且,Spring是无侵入性的可扩展框架,Spring应用中的对象不依赖Spring具体的类。
Ioc(控制反转)
所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。
这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
AOP(面向切面编程)
AOP(AspectOrientProgramming),即面