文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程J2EE/J2MEHibernate+Struts的J2EE应用开发
精品推荐
特别推荐
·J2EE Web开发技术期待一次新的技术变革
·J2ME程序开发初学者快速入门的九大要点
·使用技巧:J2ME中程序优化的十个小方法
·RMS从入门到精通之一
·J2EE应用程序中SQL语句的自动构造方法
·解决J2EE系统应用性能问题常用优化项目
·J2EE实用技巧:提升JSP应用程序的绝招
·J2ME内存优
·J2ME简介
·J2EE技术
热点TOP10
·FC API(JSR 75)简单讲解
·3D数学知识简介
·从自定义字节数组创建图片
·用J2ME实现简单电子邮件发送功能
·通用联接框架(GCF)连接类型使用总结
·JBoss 文档(三) JBoss和JMS
·JBoss文档(二)??JBoss开发、打包、部署
·基于J2EE的Blog平台
·MIDP终端模拟之一:一个简单的模拟器MIDlet
·MIDP终端模拟之二:高级终端模拟
·经典飞机游戏代码S60
·走进JBoss (1)
·基于MIDP1.0实现通信录
·RMS高效编程指南
·Spring 系列:当 Hibernate 遇上 Spring
·介绍J2ME可选包WMA(JSR120)
·J2ME联网中采用序列化机制
·Spring 系列:Spring JMS 消息处理
·JBOSS4数据源配置大全
·J2ME可选包—PIM介绍

Hibernate+Struts的J2EE应用开发

日期:2007年8月21日 作者: 查看:[大字体 中字体 小字体]


  摘 要 本文分析了Hibernate和Struts的机制,提出了一种基于Hibernate和Struts的J2EE应用开发策略。在这种策略中,模型层用Hibernate实现,视图和控制器则用Struts框架实现。这样可大大降低代码的耦合性以及提高系统的开发效率。

  关键字 Hibernate,Struts,MVC,持久层

  引言

  随着Java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE平台得到了长足的发展。借助于J2EE规范中包含的多项技术:Enterprise JavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(jsp)、Java Message Service(JMS)等,开发出了许多应用系统。但是,在传统J2EE应用的开发过程中也出现了一些问题:1)数据模型和逻辑模型之间的矛盾。目前使用的数据库基本上都是关系型数据库,而Java本质上是一种面向对象的语言,对象在存储和读取时使用SQL和JDBC进行数据库操作,降低了编程的效率以及系统的可维护性;2)传统的J2EE应用多采用基于EJB的重量级框架,这种框架适合于开发大型企业应用,但是使用EJB容器进行开发和调试需要耗费大量时间。为了降低代码的耦合性,提高系统的开发效率,本文提出了一种基于Struts框架和Hibernate框架的J2EE应用开发策略。

  数据持久层及Hibernate

  Hibernate是一个数据持久层框架,是一种实现对象和关系之间映射(O/R Mapping)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,使用Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为Java对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化。


  用Struts实现MVC架构

  MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分。

  模型(Model)是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(View)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器(Controller)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。


  Struts框架最早是作为Apache Jakarta项目的组成部分问世运做,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts框架很好的结合了Jsp,Java Servlet,Java Bean,Taglib等技术。在Struts中,承担MVC中控制器角色的是ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充Action Form(FromBean),并传给动作类(ActionBean)。动作类访问核心商业逻辑,即访问Java Bean或调用EJB。最后动作类把控制权传给后续的JSP文件,由JSP文件生成视图。所有这些控制逻辑利用Struts-config.XML文件来配置。在Struts框架中,视图主要由JSP生成页面完成,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个Java Bean的形式存在。在Struts中,主要存在三种Bean,分别是:Action,ActionForm,EJB或者Java Bean。

  Struts框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将Hibernate引入到Struts框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。

  运用Hibernate和Struts开发J2EE应用

  1、体系结构

  图3显示了基于Hibernate和Struts开发策略的体系结构图。


  2、开发实践

  下面结合开发实践,以在J2EE应用中非常普遍的用户登录过程为例,来说明上述体系结构是如何具体运用的。登录的流程非常清晰:用户从登录页面login.jsp输入登录信息,系统对登录信息进行验证,如果正确则成功登录,否则提示相应错误信息。

  在开发过程中,使用Eclipse做为开发环境,同时加载了对Struts及Hibernate提供更好的控制和支持的第三方插件MyEclipse,Web服务器使用Tomcat,数据库选用了mysql

  首先对Hibernate进行配置,只需要对系统自动生成的hibernate.cfg.xml进行修改,配置好数据库连接的各种参数以及定义数据映射文件。由于Hibernate所带的连接池主要用于测试,性能不是很好,可以通过JNDI将其修改为使用Tomcat的连接池。配置文件代码中关键的一部分如下:

<hibernate-configuration><session-factory>
<property name="connection.datasource">java:comp/env/jdbc/ sysdb </property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect </property>
<mapping resource="User.hbm.xml"/>
</session-factory></hibernate-configuration>

  其次是生成持久化类,实际上,由于使用了Hibernate,持久化类以及对持久化对象的映射定义均可以借助于系统中的向导自动生成。持久化对象的映射定义放到了User.hbm.xml中。部分代码如下:

<class name=”User” table=”tUser”>
<id name=”UserID” column=”User_ID” type=”java.lang.Integer”>
<generator class=”native”></id>
<property name=”UserName” column=”User_Name” type=”java.lang.String”>
…..</class>

  再次,使用Struts框架来实现逻辑控制,利用系统提供的向导可以生成视图及控制器。具体的配置在Struts-config.xml文件中。相关代码如下:

<form-beans>
<form bean name=”LoginForm” type=”com.LoginForm”>
</form-beans>
<action-mappings>
<action attribute=”LoginForm” input=”Login.jsp” path=”/DoLogin”
….
</action>
</action-mappings>

  输入页面Login.jsp将用户填写的登录信息提交给控制器DoLogin进行处理,控制器调用由Hibernate定义好的持久化类User从数据库中读取相应信息进行验证。操作完成后将提示信息展示在表示层中。DoLogin中使用语句User u1=UserDAO.findbyname(username)得到User对象,然后就可以进行登录信息的验证。

  从整个开发过程可以看出,程序员除了利用向导对有关的配置文件进行修改,只须编写少量代码即可完成登录模块的编码。开发完成的模块符合MVC框架的要求,质量比较高,易于修改和维护。

  总结与展望

  Hibernate是一个功能强大、高性能、非常流行的ORM工具,它推动了基于普通Java对象模型、用于映射底层数据结构的持久对象的开发,能够提供高级数据查询和检索服务。Struts是一个优秀的基于J2EE平台的MVC框架,它简化了WEB层的开发,实现了应用程序的显示逻辑和业务逻辑的分离。将这两种技术结合起来开发J2EE应用,能极大的提高开发效率,使系统具有更好的可维护性和可扩展性。这种开发策略正逐渐被众多程序员所接受,在实际开发中得到广泛的应用。

(出处:清风下载学院






上一篇:基于OpenGL的三维曲面数据场动态显示

下一篇:高手教你如何针对DDOS部署防御措施

Hibernate+Struts的J2EE应用开发 相关文章:
·各种文件后缀名字及打开方式大全
·破解windowsXP,window2000的开机密码
·三步搞定XP开机时DLL文件出错提示
·EXE文件打不开——恢复EXE文件关联
·MyEclipse+struts+Hibernate配置开发
·开3389最简单得方法
·从零开始学黑客:网络黑客新手入门指南
·Wap开发FAQ大全
·Windows XP系统应用技巧之安装与开关机篇
·B/S开发常用JavaScript技术
Hibernate+Struts的J2EE应用开发 相关软件:
·孙鑫VC++从入门到精通开发详解视频教程FLASH版
·开锁大全 压缩版JPG版
·中国少年儿童智力开发百科全书(上中下)高清PDF全彩图书
·嵌入式系统应用开发技术 wmv 视频教程
·《从零开始学英语》8CDBT下载
·全脑开发大师IQ EQ MQ
·开动大脑
·从零开始学英语8CD完全版
·Delphi应用程序开发精彩实例
·心扉为你开

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn