本文主要向您展示如何使用Hibernate Struts实现J2EE应用开发,简单易懂,组织清晰,希望能帮您解决疑惑。让边肖带领大家学习学习《如何使用Hibernate Struts实现J2EE应用开发》一文。
数据持久层及Hibernate
Hibernate是一个数据持久层框架,是实现对象和关系之间O/R映射的工具。Hibernate用轻量级对象封装了JDBC,这样程序员就可以利用对象编程的思想来操作数据库。它不仅提供了从Java类到数据表的映射,还提供了数据查询和恢复机制。与使用JDBC和SQL操作数据库相比,使用Hibernate可以大大提高实现效率。Hibernate框架以配置文件的形式定义了Java对象和数据表之间的映射关系。同时,它在更深层次上将数据表之间的关系解释为Java对象之间的继承和包含。利用HQL语句以对象的形式描述复杂的关系算法,大大简化了数据的查询,加快了开发效率。Hibernate中有一个简单直观的API,用来查询数据库所表示的对象。要创建或修改这些对象,只需在程序中与它们交互,并告诉Hibernate保存它们。这样,封装持久化操作的大量业务逻辑不再需要编写繁琐的JDBC语句,从而大大简化了数据持久层。
用Struts实现MVC架构
模型-视图-控制器是由Trygve Reenskaug提出的。它最早应用于SmallTalk-80环境,是许多交互和界面系统的基础。根据界面设计可变性的需求,MVC将交互系统的组件分为三部分:模型、视图和控制器。
模型是由软件处理的问题逻辑的内部抽象,独立于外部显示的内容和形式。它封装了问题的核心数据、逻辑和功能之间的计算关系,独立于具体的接口表达式和I/O操作。视图向用户显示表示模型数据、逻辑关系和状态的信息和特定表单。它从模型中获取显示信息,同一信息可以有多种不同的显示形式或视图。控制器处理用户和软件之间的交互操作,其职责是控制所提供模型中任何变化的传播,并确保用户界面和模型之间的一致性;它接受用户的输入,将输入反馈给模型,进而实现模型的计算控制。它是使模型和视图和谐工作的组件。通常一个视图对应一个控制器。模型、视图和控制器的分离使模型能够有多个显示视图。如果用户通过某个视图的控制器更改了模型的数据,则依赖于这些数据的所有其他视图都应该反映这些更改。因此,每当有任何数据变化时,控制器将通知所有视图该变化,导致显示的更新。这实际上是一种模型变化传播机制。
Struts框架最初是作为Apache雅加达项目的一部分投入运行的。它继承了MVC的特点,并根据J2EE的特点做了相应的改变和扩展。Struts框架结合了Jsp、Java Servlet、Java Bean、Taglib等技术。在Struts中,ActionServlet扮演着MVC中控制器的角色。ActionServlet是一个通用的控制组件。这个控制组件为处理发送到Struts的所有HTTP请求提供了入口点。它拦截这些请求并将其分发到相应的动作类(这些动作类是动作类的子类)。此外,控制组件还负责用相应的请求参数填充动作表单(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+Struts实现J2EE应用开发”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136809.html