第26卷 第4期
2008年12月         贵 州 科 学
GU IZHO U SC IENC E           Vol
.26,No .4Dec .2008
收稿日期6
作者简介申赤兵,(5),男,硕士,主要从事电子、自动化、计算机、网络和软件的教学、研究以及产品开发基于MVC 模式的网上书店的设计与实现
申赤兵
(贵州财经学院,贵州 贵阳 550004)
摘 要 Struts 框架和H i bernate 技术是J2EE 的轻量级实现.本文介绍了使用Struts 和Hibernate 技术设
计和实现在线书店的电子商务系统.给出了系统的结构、功能、实现过程和数据库设计.并对其中的关键
技术进行了分析和详细说明.
关键词:MVC;Struts;H iberna t e;对象/关系数据库映射
中图分类号 TP393.02  文献标识码 A   文章编号 1003-6563(2008)04-0049-04
THE DES IGN AN D REAL IZAT I O N O F O N 2L INE B OO KSTO RE
BASED O N M C V M OD EL
SHEN Chi -bing
(Guizhou College of Finance and Econom i c s,Guiyang,G uizh ou 550004)
ABSTRAC T  The Struts fra m e and H iberna t e technology is t he light we ig h t realizati on of J2EE.This pape r in 2
troducs the desi gn and rea lizati on of the on 2li ne bookstore ’s e lectronic co mm erce syste m by u sing the Struts
fram e and Hibernate t echn o l ogy .The paper discusses the system structure,func ti ons,realizati on and da tabase
de sign of the s ystem.The paper ana l yzes and ex p lains the essenti a l technologi e s in de t a il .
KEY W O RD S  MVC;Struts;H ibe rna t e;ORM
0 前言
随着网络技术的快速发展,传统商务模式正在不断地被电子商务所取代.从阿里巴巴到EBAY 、淘宝,商务进程里面的各个细节都通过计算机软件系统来实现.电子商务不断地将市场进行立体拓展和细化.在线书店系统利用电子商务的优势同现有销售管理模式和流通渠道相结合,使得传统图书的销售获得了新的商机,扩大了市场,极大的为消费者提供了便利.
1 系统开发平台
本系统是一个多层次的B /S 结构,根据MVC 模式,采用Java W eb 的Struts 框架和Hibernate 技术来实现系统的表示层、业务逻辑层和数据层:2008-01-1:198-.
.
1.1 MVC 模式MVC 是一种设计模式,是Model 2Vie w 2Contr oller 的缩写.它把应用程序分为3个部分,模型、视图和控制器.模型代表了应用程序的核心功能,负责处理用户的数据,实现业务逻辑.同时,
模型还为视图的显示提供数据,并可被多个视图所共用.视图主要指与用户交互的界面,也即应用程序的外观.视图可以接收用户的输入,但并不包括任何实际的业务处理,它只是把数据转交给控制器.同时,视图还负责展现模型传递给用户的数据,当后台模型更新数据时,视图也随之更新它的显示.控制器负责接收用户的请求和数据,接着它会做出判断将请求和数据交给哪一个模型来处理,最后调用视图来显示模型返回的数据.
1.2 S tr u ts 框架、H ibe rna te
Struts 是一套优秀的MVC 框架软件.它的目标是将W eb 程序的表示层、控制层和后台功能层进行分离,使设计者能将更多的精力投入后台的业务逻辑设计,而不是底层的W eb 基础架构.
Struts 框架的基本模型如图1所示
:
图1 S tru ts 框架模型
F i g .1 S truts fram e m ode
  H ibernate 是一个面向Java 环境的对象/关系数据库映射工具.它对JDBC 进行了轻量级的对象封装,使设计者可以使用对象编程思想来操纵数据库,相当于EJB 的轻量级实现.
1.3 Ec li p se 工具
Ecli p se 是一个开放源代码的基于Java 的整合型可扩展开发平台.在该平台上可以开发EJB 组件、Java 程序、W eb 项目等不同类型的应用.该平台最大的优点在于拥有大量的功能、效率出的工具集.开发者可以方便灵活地使用这些工具集,满足其特定需求.
2 系统功能描述
对匿名浏览者,系统提供了浏览和查询书籍的功能.注册用户属于会员,区别于系统管理员.当以这两种不同的方式登录系统后,系统给出的功能和界面不同.系统管理员拥有全部的操作功能.
2.1 会员
作为本系统的会员有如下功能:A 按书籍的不用专业类别浏览书籍名称.通过书籍名称可以链接到书籍的详细信息.B 可以按专业类别、书名、作者、译者、出版社、是否有商品等条目进行单独或者组合查询.通过查询到的书名可以链接到书籍的详细信息.C 可以对书籍发表评论查看其它会员对该书的所有评论.D 购物车功能.这也是系统的主要功能.要实现的是临时存放会员选购的书籍信息.会员在进行浏览的时候,把满意的书籍放进自己的购物车里.购物车会给出采购书籍的清单.会员还应该能对购物车中所购的商品进行删除或更改,并能了解目前需要支付多少资金,因此,购物系统可以自动对所购商品进行价格统计.此外,会员还可以更改所购买商品的数量,也可以像在商场里买东西一样,能一次性的将车内所有商品放回原处,即清空购物车购物结束后,进入结算中心,填写支付、配送方式最后确认并提交订单积分功能会员成功购买的书籍越多,积分越多当到达一定的积分数值之后,系统会提高会员的级别(共5级)会员级别越高,
5贵 州 科 学                26卷 
...E ...
系统打折的幅度越大.
2.2 系统管理员系统管理员除拥有以上会员功能外,还有:A 查看用户列表.B 查看缺货.可看到所有读者登记的缺货信息,及时反馈给书店的管理人员,补充货源.C 管理会员评论.D 发布新书.E 发布特价书籍.
网页设计淘宝购物车代码
F 处理订单.其系统功能模块图如图2所示
.
图2 系统管理员功能模块
Fig .2 S ystem m ana ge r ’s func ti o n m o ld
3 系统实现
在本系统开发中,首先用JSP 技术结合Str uts 强大的标签库来实现表示层.业务层由Str uts 的控制组件ActionSe r vlet 、Action 2Mapping 及Action 和业务逻辑类Java B ean 来实现.这些Java B ean 里封装了与H ibernate 的交互关系类.业务层通过数据转换和访问层来实现与数据库资源的交流,这一部分工作由H iberna te 来做.在业务逻辑类里直接对对象进行操作,Hibernate 将在Java 类里使用的HQ L 语句转换为S QL 语句,利用JD 2BC 完成对最低层关系数据库的数据增、删、改等操作.
3.1 控制器的实现
系统采用了ActionSe r vlet 和Acti on 来作为控制器组件Servlet .所有用户请求都由ActionServle t 收,然后根据用户请求的不用样式到Struts 2config .x m l 文件中查相应的控制器,也就是Ac tion.Acti on 执行具体的控制器功能,并且调用相应的后台模型完成业务逻辑,返回一个Ac tionFor ward 对象,该对象包含了在Struts 2config .xm l 中设定的转发的关键字属性.当A cti onServlet 对象接收到该对象后,会自动进行分析,并根据Struts 2config .x m l 中的配置信息将请求转发,这种转发可能是到另一个Action,也可能是JSP 页面.当转给Ac 2ti on 时,系统再进行其它的业务逻辑处理;当转给JSP 页面时,本次请求过程结束,并将结果发往用户.
3.2 视图的实现
系统中使用JSP 作为主要的视图工具.除了基本的JST L 标记外,使用了大量的Struts 框架定义的标记来
实现视图开发.当用户通过表单向控制器组件Ser vlet 发送数据时使用了ActionFor m 组件,该组件也被归于视图层.ActionFor m 的作用就是将用户提交的数据封装成一个B ean 对象,除了基本的get /set 方法外,它还提供了数据的初始化和验证方法.所以本系统并没有通过Javasc ri p t 对表单数据进行校验,一方面减少了JSP 页面的代码,降低了页面逻辑的复杂性,另一个方面可以充分发挥服务器的性能,缩短了客户端浏览器对静态页面的解释执行的时间.界面通过D reamweave r 8.0使用Struts 标签库+ht m l +css +JSP 设计完成.
33 模型的实现
S 是一个表示层框架,并没有包含实际的模型层实现在软件系统中,将实现业务实体和业务逻辑的B 或者B 组件归并为模型,这样模型层就包含了数据库层和持久化层本系统将作为持1
5 4期           申赤兵:基于MVC 模式的网上书店的设计与实现
.truts .Java ean EJ .H ibernate
久化中间件引入到Str uts 框架中,从而实现系统的Struts 模型层细化,分为模型层、持久化层和数据库层.设计时,首先把表单对象的信息封装为VO (Value Object ).VO 是一组值对象,包含了一些属性、ge t/set 方法、rese t 方法和validate 方法.其次,采用了DAO 设计模式和抽象工厂设计模式,完成了D AO
工厂和H ibernate 数据库操作的具体实现.最后,利用了H ibernate 的配置文件完成从应用程序到数据库的映射.在该设计中,VO 的信息封装体现了面向对象设计编程思想;DAO 的设计模式和抽象工厂模式减弱了上层调用和具体实现之间的耦合;H ibernate 配置实现了数据库高移植性,只需要改变H iberna te 配置文件,不用修改程序设计就可以完成不同数据库之间的更换.
本系统中编写的JavaBean 分为两类,一类是用于存储值对象的Bean 以及对应数据库表的Java B ean (该Java Bean 用来为H ibernate 持久化对象提供服务,例如:用户信息userI nf o,图书分类的信息bookCatalog,书籍的详细信息bookI nf o,订单信息orderI nfo ).
另一类是处理业务逻辑的动作类.
这些Java B ean 构成整个在线书店系统的业务逻辑层.Acti onServlet 可以直接向模型发出请求,一些逻辑请求经过处理后返回JSP,可以实现代码的重复利用,大大地简化了代码,且易维护.在对一些功能作改动时只需要改动JavaBean,不需要改动所有设计到此功能的Ac tionSe r vlet 或JSP .
4 数据库设计
本系统采用的是S QLse r ver2000服务器版作为底层关系数据库.该数据库用户界面优秀,功能全面、强大,日志功能完善,稳定,安全,是现代电子商务应用中比较好的数据库产品.系统主要有如下数据表:
会员信息表user_inf o :记录注册会员的详细信息;书籍分类信息表book_catal og:记录书籍的专业分类;书籍详细信息表book_info:记录每种书的详细信息;订单信息表order_inf o:记录每笔订单的详细信息;评论主题表comment_title:记录对某种书的评论主题;评论详细信息表comment_detail:记录每个评论主题的子评论1
5 结束语
随着W eb 应用系统的不断发展,如何构建一个好的W eb 应用程序将关系到整个系统的应用效果.MVC 的设计模式很好地将W eb 系统划分为3层,使界面开发人员和程序设计人员能够高效地结合在一起.基于MVC 设计模式的Struts 框架,使W eb 应用程序在一种较为规范的控制下进行设计,提高了软件的重用性及可扩展性.本文将Struts 框架、H ibe r na te 技术应用到在线书店的电子商务设计开发中,大大缩短了开发周期,同时极大的提高了软件的模块化和可移植性.
参考文献
[1] 邱哲,等1Struts Web 设计与开发大全[M ].北京:清华大学出版社,20061
[2] 邓正宏,等.面向对象技术[M ].北京:国防工业出版社,20041
[3] (美)M arkW utka 著,程显华等译.JSP 和Se rvle t 程序设计使用专辑[M ].北京:机械工业出版社,20
021
[4] (美)Joe W alnes 等,著,甄山,甄镭译.Jav a 开放源码编程[M ].北京:电子工业出版社,20051
[5] 赵杰,等.S QL Server 数据库管理、设计与实现教程[M ].北京:清华大学出版社,20041
[6] 廖若雪.JSP 高级编程[M ].北京:机械工业出版社,20011
[7] 何东钢,郭显久,等.利用Struts 框架实现的电子商务模拟运作系统[J ].沈阳农业大学学报,2005,36(3):382~3841
[] 王郑霞,肖来胜基于S 的电子商务系统的设计与实现[]网络通讯与安全6,31
[] 杨勇,韩莉英基于MV 模式的S 框架在电子商务系统中的应用[]计算机应用研究6,5~365125贵 州 科 学                26卷 8.truts J ..2002:29.C truts J ..200:100129

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。