本文分析了Hibernate+Struts的机制,提出了一种基于Hibernate+Struts的J2EE应用开发策略。这种策略可大大降低代码的耦合性以及提高系统的开发效率。

跟着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句子,从而使数据耐久层得到了极大的简化。
Hibernate+Struts的J2EE使用开发(struts+hibernate+spring)  Hibernate+Struts J2EE应用开发 第1张

  用Struts完结MVC架构

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

  模型(Model)是软件所处理问题逻辑在独立于外在显现内容和方法情况下的内涵笼统,封装了问题的中心数据、逻辑和功用的核算联络,独立于详细的界面表达和I/O操作。视图(View)把表明模型数据及逻辑联络和状况的信息及特定方法展现给用户。它从模型取得显现信息,关于相同的信息可以有多个不同的显现方法或视图。操控器(Controller)是处理用户与软件的交互操作的,其责任是操控供给模型中任何改变的传达,保证用户界面于模型间的对应联络;它承受用户的输入,将输入反馈给模型,从而完结对模型的核算操控,是使模型和视图和谐作业的部件。一般一个视图对应一个操控器。模型、视图与操控器的别离,使得一个模型可以具有多个显现视图。假如用户经过某个视图的操控器改变了模型的数据,一切其它依赖于这些数据的视图都应反映到这些改变。因而,不管何时发生了何种数据改变,操控器都会将改变告知一切的视图,导致显现的更新。这实践上是一种模型的改变-传达机制。

Hibernate+Struts的J2EE使用开发(struts+hibernate+spring)  Hibernate+Struts J2EE应用开发 第2张


  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开发战略的体系结构图。

Hibernate+Struts的J2EE使用开发(struts+hibernate+spring)  Hibernate+Struts J2EE应用开发 第3张

  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运用开发,能极大的进步开发功率,使体系具有更好的可保护性和可扩展性。这种开发战略正逐步被很多程序员所承受,在实践开发中得到广泛的运用。

【修改引荐】

  1. 高手Java中心技能学习笔记
  2. 告知你怎样学Java才是硬道理
  3. 怎么获取Sun推出的Java认证
  4. 一起学习Java环境变量
  5. JAVA环境变量的设置
转载请说明出处
知优网 » Hibernate+Struts的J2EE使用开发(struts+hibernate+spring)

发表评论

您需要后才能发表评论