基于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语句,从而使数据持久层得到了极大的简化。

用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框架的模型层中,使用它来进行数据封装和映射,提供持久化的支持。

时间: 2024-12-04 23:23:12

基于Hibernate和Struts的J2EE应用开发的相关文章

针对SaaS应用程序的基于Hibernate框架的数据库分片

针对 SaaS 应用程序的基于 Hibernate 框架的数据库分片 SaaS 正在改变设计.构建.部署和操作应用程序的方式.开发一个 SaaS 应用程序与开发一个通用企业应用程序之间的关键区别在于,SaaS 应用程序必须是多租户的.其他关键 SaaS 需求,比如安全性.定制.面向服务的架构(SOA)和集成,也影响 SaaS 应用程序架构. 多租户是指应用程序在单一代码库内寄存多个承租者并共享数据库等架构的能力.有多种设计选项可启用多租户数据架构 - 每个承租者的专用数据库.每个承租者的共享数据

【超全整理】J2EE集成开发环境MyEclipse使用心得汇总

一.首先我们为什么需要MyEclipse? 下面允许我做一些简要的介绍: 应该大家都知道另一个MyEclipse的近亲--Eclipse的优点:免费.程序代码排版功能.有中文汉化包.可增设许多功能强大的外挂.支持多种操作系统(Windows. Linux.Solaris.Mac OSX)等等. 而 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发.发布

ejb-请问基于Java EE的构件规范设计开发构件,指的是使用EJB框架开发构件吗?

问题描述 请问基于Java EE的构件规范设计开发构件,指的是使用EJB框架开发构件吗? 我现在要完成的任务是开发一个可重用构件,这个构件要实现的功能是系统中一个数据处理模块.要求在Java EE 支撑平台下开发.我现在不太能理解这个构件的开发过程.查了资料得知javabean和ejb都可以用Java语言开发组件.javabean比较简单是一般和JSP配合的,开发比较小型的组件使用的.EJB更为复杂功能也全面,但是我的这个系统不是分布式的,也不需要与服务器进行交互.用EJB开发是不是有些不机智?

应届毕业生在企业erp与j2ee软件开发之间如何选择?

问题描述 个人背景A掌握的技能:jsp,servlet,spring,struts,Hibernate能够使用ssh集成框架开发一些简单的信息系统.B本人所学专业介绍:信息管理与信息系统是一个比较综合的专业,有一半的经济管理类的课程,一半的软件开发类的课程.C自我评价:逻辑思维能力强,在信息系统开发中有较强的创造力.编程能力突出.学习能力好:当前的选择:如果有两个选择:一个是去海马参与企业erp的开发,可能是签约三年:另一个是到福建新大陆软件公司做j2ee程序员.个人的分析:1.我觉得对于我来说

renren-security v2.1.0 发布,J2EE 快速开发平台

renren-security是一款基于代码生成器的J2EE快速开发平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展,方便二次开发! v2.1版本更新日志: 1. 新增XSS过滤,自动过滤request.json非法数据 新增SQL注入过滤 AdminLTE升级到2.3.11 Vue升级到2.2.6 修复Firefox不兼容BUG 修复时间不能排序BUG 修复事务失效BUG 取消jquery全局设置application/json 具有如下特点 轻量级的权限系统,只涉及Spring.Sh

使用struts 2框架进行开发总是失败。

问题描述 使用struts 2框架进行开发总是失败. J2EE新手,看相关书籍练习,但是web项目无法成功显示.求解答. 总是显示description The requested resource is not available. 出错信息: 严重: Exception starting filter struts 2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils at com.opensymphon

快速搭建J2EE网站开发环境

中介交易 SEO诊断 淘宝客 云主机 技术大厅 现在主流的网站开发可以分为PHP.JSP.ASP.NET三种,当然还有ASP等,而从网站的可扩展性和性能上来讲,JSP与PHP相比较,前者更具有一些优势.很多人想开发自己的一套基于J2EE的Web项目,往往会把JAVA WEB应用程序看得有种深不可测或者说有很大技术障碍的感觉,接着就会遇到各种开发工具.开发技术的问题,在还没有完全摸清其技术路线的时候就选择放弃了基于JAVA的网站开发.这里给大家介绍一种可以快速进入J2EE项目开发的放假,结合企业级

使用struts,ibaits和JSTL开发简便通用的文件上传系统

js|上传 使用struts,ibaits和JSTL开发简便通用的文件上传系统文件上传也是一个老生常谈的问题了.struts提供了很方便的文件上传组件,利用struts,很容易开发文件上传的系统.本文结合ibatis和JSTL开发一个简便而通用的文件上传系统.通过本文,你可以学到如何在struts里配置文件上传功能.struts1.1的动态form配置和使用.如果简单的使用ibatis,如果简单使用的JSTL. 首先我们要在struts-config里加上一句,来指定临时目录以及限制大小. <c

strutsjava-谁有struts 基础案例与开发详解 源码?

问题描述 谁有struts 基础案例与开发详解 源码? 谁有 struts 基础案例与开发详解 源码 ,丛书主编:张孝祥 徐明华 跪求