付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要:基于使用单一框架构建企业级应用时存在拓展性差,结构复杂的问题,给出使用Struts结合Hibernate开源框架进行整合开发的实例,同时探讨如何配置和灵活应用Struts和Hibernate框架,充分发挥两者的优势,构建结构清晰、具备强大扩展性和维护性的J2EE应用。
关键字:HibernateStrutsMVCJ2EE
Abstract:TosolvetheproblemssuchaspoorexpansibilityanddifficultworkdivisioninbuildingWebapplication,thereisabestpracticeofhowtocombineanddeployHibernate/logistics/andStrutsframework.ThecombinationofusingthemcouldconstructastandardJ2EEWebapplicationandalsoimprovethedevelopmentefficiencygreatly.
Keywords:Hibernate,Struts,MVC,J2EE
1Hibernate的数据持久化技术
Hibernate是一个开放源代码的O/RMapping(对象关系映射架构),它对JDBC进行了轻量级的对象封装,使JAVA程序员可以方便地使用对象编程思维来操纵数据库。Hibernate的目标是简化开发者通常的数据持久化编程任务,它可以把对象模型表示的对象映射到关系型数据库中,同时提供了数据查询和获取的方法,以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
通过使用Hibernate可以轻松解决开发者在使用传统的CMP以及JDBC和DAO(DateAccessObject)技术开发持久层时遇到的困难,即很难把关系表记录完整地映射到持久对象的关系上来,主要体现在多表的关系无法直接映射到对持久对象的映射上来。
2基于MVC模式的Web框架Struts的应用
2.1Struts的框架结构Struts是基于模型(Model)、视图(View)、控制器(Controller)的MVC模式应用架构,MVC减弱了业务逻辑接口和数据接口之间的耦合,常被用来帮助开发者控制设计变化。在Struts框架中,Model代表的是应用的业务逻辑,通过JavaBean、EJB组件实现;View是应用的表示层,由JSP页面产生;Controller是提供应用的处理过程控制,一般是Servlet。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,组件之间可以进行交互和重用。这种组件化的优点更易于实现对大规模系统的开发和管理。
2.2应用Struts的作用及优势Struts清晰地划分了控制部分,事物逻辑和外观视图,让开发者遵循一个统一的模式进行设计编码,简化了系统后期维护的工作量,尤其是当其他开发者接受项目的时候,这种优势体现的更加明显。
Struts给开发者提供了良好的页面导航功能,开发者可以通过配置文件struts-config.xml把握整个系统得体系结构,同时,Struts对Taglib标签库进行了扩展,使之功能更为强大。使用Taglib可以简化JSP页面的开发,使得JSP包含最少的代码,同时也使开发者可以更方便灵活地在Struts中控制程序的流程。
3Ejb在开发中的作用
EJB在EJB容器中运行,运行时环境由服务器建立。虽然EJB容器对开发还不是透明的,但其为运行其中的EJB提供项事务处理等的系统级服务。这些服务可以快速的建立和部署企EJB,而这些EJB正是构成和新业务处理的J2EE应用。EJB就是一个应用中封装了商务逻辑的服务器端组件。这些商务逻辑是实现应用程序目标的代码。
EJB分为两种类型:SessionBean和EntityBean。
SessionBean表现连接到J2EE服务器的一个单独的客户端。客户端通过调用会话Bean的方法来访问部署在服务器上的应用程序。会话Bean完成客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。
EntityBean描述一个持久存储备的商业对象。商业对象的例子如:消费者,订单和产品等。在J2EESDK中持久存储设备是一个关系型数据库。最典型的情况是一个EntityBean有一个在底层数据库中与之相对应的表,而EntityBean的每一个实例对应表中的一行数据。EntityEJB使得程序员对二维关系数据库的存取对象化了,程序员可以使用Set或者Get等面向对象的方法来操纵关系数据库的数据。
4用Struts实现逻辑控制
下图是系统与AppServer关系图系统通过Struts实现了Web层MVC,通过Web层代理访问EJB层,客户端提交数据以后封装在DTO进行传输,数据传输到Severlet后通过DAO接口转换到模块层。DAO中主要实现一些堆数据的方法。模块层中主要由EJB构成,EJB又封装了Hibernate,在Hibernate中实现对数据库的具体操作。
DTO把多个数据封装成一个对象提交,提高了传输效率。
DAO接口减少了数据之间的耦合性,整个系统如上图所示是由各个模块组成,在修改某个后,其他模块不需要改动。
Struts实质上就是在JSPModel的基础上实现的一个MVC框架。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现。
4.1视图视图由一组JSP文件构成。JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或客户化标签。
4.2模型模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。
4.3控制器控制器由ActionServlet类和Action类来实现。ActionServlet类是Struts框架中的核心组件。ActionServlet主要负责接收HTTP请求信息,根据配置文件strutsconfig.xml的配置信息,把请求转发给适当的Action对象。如果该Action对象不存在,ActionServlet会先创建这个Action对象。Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。当ActionServlet控制器收到用户请求后,把请求转发到一个Ac-tion实例。如果这个实例不存在,控制器会首先创建它,然后调用这个Action实例的execute()方法。Action的execute()方法返回ActionForward对象,封装了把用户请求再转发给其它Web组件的信息。用户定义自己的Action类,即Action基类的子类时,必须覆盖execute()方法。在Action基类中该方法返回null。
4.4Struts的工作流程对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从strutsconfig.xml文件中读取配置信息,把它们存放到各种配置对象中。当Ac-tionServlet接收到一个客户请求时,将执行如下流程:
(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
(3)根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。
(4)如果Actionform的validate()返回null或返回一个不包含ActionMessage的ActionForm对象,就表示表单验证成功。
(5)ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
(6)Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
(7)ActionForward对象指向的JSP组件生成动态网页,返回给客户。对于流程4)如果ActionForm的validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给你好用户提交表单的JSP组件,在这种情况下,不会再创建Action对象并调用Action的execute()方法。
5搭建数据库系统
5.1登陆数据库在win2000服务中启动监听服务,打开数据库,连接身份选择sysdba用户名:system密码:manager5.2导入数据库第一步:impfile=D:\ocean.dmpfromuser=jiaxuemingtouser=ocean第二步:用户名设置为ocean(新建数据库的用户名)密码自己定义。
5.3Weblogic配置第一步:登陆:http://localhost:7001/console/Id:systemPwd:12345678第二步:JDBC->connctionType->数据库名->数据库驱动->oracle’sDriver(thin)第三步:DataSourcesJndiName:ocean\ocean\classes\hibernate.cfg.xml第四步:修改C:
\bea\use_projects\domains\mydomain\startWeblogic.cmd的path路径就可以在IE中运行http://localhost:7001/OceanWebApp/logistics//menu/default.htm6结束语本文作者的创新点:完成后的系统为一个可部署到J2EE应用服务器上的Web应用,用户界面为Html形式。整个系统构架在Struts之上,通过Struts实现Web层的MVC框架。业务操作放到SessionBean中,SessionBean作为SessionFacade访问底层的EntityBean。
通过项目的实现可以得出以下几点结论:1)因为Hibernate是开源的,具有丰富的文档支持,而且对持久层进行了封装,不用程序员去写SQL代码,因此采用Hibernate进行数据持久层的设计能够完整地对多表间的关系进行影射,所以能够极大地提高数据访问的效率,改善系统性能;2)同时借用Struts架构可以搭建一个更成熟的符合MVC规范的J2EE架构,而且使数据的安全性在原有数据库安全性的基础上得到进一步的提高。
参考文献[1]宋秀琴,侯殿昆。基于Struts和Hibernate的Web应用的构建。[J]微计算机信息,2005,11-3[2]夏昕,曹晓钢。深入浅出HIBERNATE[M]。北京:电子工业出版社,2005[3]孙卫琴。精通STRUTS:基于MVC的JavaWeb设计与开发[M],北京:电子工业出版社,2004。
[4]TURNERJ,BEDELLK.STRUTSKickStart中文版[M]。孙勇译。北京:电子工业出版社,2004。本文由无忧论文网物流管理论文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年服装理论模拟试卷(含答案)
- 家用电冰箱制造工发展趋势测试考核试卷含答案
- 液状化妆品制造工安全生产能力考核试卷含答案
- 2026年防疫中心模拟试卷(含答案)
- 2026年初级会计职称会计实务频模拟试卷(含答案)
- 拖拉机电器装试工岗前岗位适应能力考核试卷含答案
- 2026年当归钓鱼测模拟试题(含答案)
- 2026年超声诊断部分模拟试题(含答案)
- 2026年CAAC无人机考试复习模拟试题(含答案)
- 公共营养师-膳食营养指导与疾病预防基础辅导练习题及答案详解
- IEC 60945-2024 中文版(海上导航和无线电通信设备及系统 电磁兼容性要求)
- FMS考试题目及参考答案
- 金刚石刀具 CVD 涂层技术创新总结报告
- 2026新质生产力应届人才供需洞察报告-final
- 基于核心素养的初中英语八年级上册第五单元整体教学设计(导学案)
- (正式版)DB31 672-2013 《额定电压10kV和35kV电力电缆单位产品能源消耗限额》
- 小学二年级科学课程全套教案
- 保安公司上墙工作制度
- 2025内蒙古鄂尔多斯市国有资产投资控股集团有限公司招聘32人笔试历年常考点试题专练附带答案详解2套试卷
- 2025年物流运输作业指导书
- 2026年四川省成都市职业技能认定考评员考核试题及答案(完整版)
评论
0/150
提交评论