




已阅读5页,还剩74页未读, 继续免费阅读
(航空宇航制造工程专业论文)基于struts和hibernate技术的企业管理信息系统研究与开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学位论文 i 摘摘 要要 随着互联网和信息技术的迅猛发展,企业信息化越来越成为企业领导者所 关心的核心问题。而“软件重用性”和“框架思想”作为当代软件开发领域的 研究热点,使得软件设计者在为企业开发一个稳定的软件系统时,必须考虑选 择一个合适的框架结构,通过框架技术使系统各层之间实现松耦合,同时具备 较高的可扩展性与可维护性。 在 20 世纪 80 年代所提出的 mvc 软件设计模式,并且最近几年被 sun 公 司推荐为的 j2ee 平台的设计模式,得到了 web 应用开发者的欢迎。而目前在 企业级应用开发中比较流行的struts开源框架就是基于model 2模式的mvc思 想的典型应用。struts 可以使开发者使用统一的模式进行系统开发,简化系统 后期的维护工作量,适合于大型系统的开发。 虽然 struts 解决了视图层、业务层和控制层的分离,但是并没有为数据持 久层提供灵活的框架支持。 而 hibernate 框架就是目前 java 环境下基于 orm 思 想的应用最为广泛的持久层框架技术。 通过 hibernate 使开发人员可以使用面向 对象的思想来操作关系型数据库的各类数据, 同时 hibernate 还提供了灵活的事 务处理和查询机制。通过以上两个框架的整合应用,可以形成一个灵活、松耦 合和易于扩展维护的信息系统的完整解决方案。 本论文以江苏省科技发展有限公司的管理信息系统为项目背景,在介绍了 j2ee 体系架构以及 mvc 设计模式的基础上,研究了 struts 框架的体系架构; 通过引入对象持久化思想以及 orm 组件技术的提出, 详细研究了 hibernate 的 相关技术;通过整合 struts 和 hibernate 技术,针对江苏省科技发展有限公司 业务需求,重点进行信息系统的总体设计、系统的需求分析、数据库设计,并 描述信息系统的各模块功能。 应用论文中研究的技术开发了基于 web 的江苏科发信息系统, 通过几个月 的实际运行, 能够满足公司的业务处理要求, 提高了业务处理的速度和准确率, 取得了良好的效果。 论文的最后对系统开发中的一些体会与遇到的问题进行了总结和展望。 关键词:关键词:信息系统,j2ee,mvc 模式,struts 框架,orm 组件,hibernate 框架 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 ii abstract with the development of internet and information technology, enterprise informationization more and more becomes the core issue as the manager concerned. “software reuse” and “framework thinking” are the research hotspot in the software development domain. so the designers must choose a appropriate framework to develop a steady enterprise software system. the system would be provided with loose coupling between all layers, high expansibility and maintainability. the model-view-controller(mvc) design model was presented in the 1980s. recently it was commended to the standard design model of j2ee by the sun corporation. the struts framework based on the mvc model is popularly implemented in the enterprise application. the developers make use of the struts to realize a uniform pattern. the struts is especially used to develop a large system. though the struts has solved the model-view-controller apart, it isnt provided a flexible framework for data persistence layer. the hibernate is one of the most popular framework to be used in java, which is implemented the object-relation mapping(orm). the developers can use the oop to control all kinds of database data through hibernate. the hibernate is also provided with flexibletransaction processing and query mechanism. the research in this paper is based on the management information system for the jiangsu province science development ltd. this paper has made an in-depth study of mvc pattern and struts framework, introduces orm component technology and the hibernate framework. then this paper maked the requirement analysis, collectivity design and the database design for the information system of the company. this paper also described the function of all systems modules. this paper provides a mis of the jiangsu province science development ltd. as an entirely enterprise web application solution with struts and hibernate technology. the mis has already normally run six months and fulfilled the operation request of the company. the mis also has improved the speed and accuracy of disposing operations. at last, what has been researched is summarized, and possible extensions to the system were briefly discussed. key words: information system, j2ee, mvc model, struts framework, orm components, hibernate framework 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 vi 图表清单图表清单 第二章 struts 框架技术 图 2.1 系统开发架构发展示意图 . 5 图 2.2 j2ee 四层结构. 7 图 2.3 mvc 三组件功能关系图 . 10 图 2.4 model 1 原理图. 10 图 2.5 model 2 原理图. 11 图 2.6 struts 体系结构图. 12 表 2.1 struts 核心组件. 13 图 2.7 struts 处理流程图. 17 第三章 orm 组件技术和 hibernate 框架 图 3.1 hibernate 应用程序结构图. 21 图 3.2 hibernate 的体系结构图. 22 图 3.3 struts 和 hibernate 框架图 . 26 第四章 信息系统总体设计 图 4.1 系统数据库数据表结构图. 29 表 4.1 用户信息表 . 30 表 4.2 sign 字段值对应图. 30 表 4.3 合同基本信息字段详细介绍表. 31 表 4.4 status 字段值与合同状态信息对应表. 33 表 4.5 message 表详细信息. 33 图 4.2 系统功能结构图 . 35 图 4.3 合同业务流程图 . 36 第五章 信息系统的实现 图 5.1 dto 各层数据传输图 . 41 图 5.2 actionform 生命周期图. 42 图 5.3 系统登录界面 . 49 图 5.4 系统主界面图 . 50 图 5.5 合同清单界面 . 50 承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进 行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容外, 本学位论文的研究成果不包含任何他人享有著作权的内容。对论文所涉 及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允许 论文被查阅和借阅,可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或其他复制手段保存论文。 (保密的学位论文在解密后适用本承诺书) 作者签名: 日 期: 南京航空航天大学硕士学位论文 1 第1章 绪论 1.1 研究背景 当今时代,是一个信息化的时代,全球化已经渗入到各行各业,信息化随 着全球化的步伐越来越得到各方重视,对于企业信息化来说,企业级应用系统 的构建已经从传统的单机模式转向以网络为平台开发,这种企业级应用系统的 发展趋势要求当今的企业应用系统必然是以网络应用为基础,并根据不同企业 的内部情况在网络应用层面上加以扩展。 传统的企业级应用开发模式是基于客户机/服务器(client/server,以下简 称 c/s)系统。c/s 系统是传统的两层体系结构模型,即实现了应用层与数据 层的分离。其中,系统的应用层实现在客户端,而客户端的数据交换功能则主 要通过数据库系统,因此企业内部必须配置一个数据库服务器。虽然在这种结 构下,企业内部可以共享数据,但是,随着业务逻辑的日趋复杂,对系统的要 求更高,传统的两层结构暴露出许多缺点: (1)“胖客户机”现象:每一个客户端都要安装客户端软件,所以对客户 端电脑的要求高,当业务逻辑涉及到数据库操作的时候或者多个用户同时进行 数据库操作时, 会造成巨大的网络开销, 甚至会影响其他网络应用程序的执行。 (2) 服务器负担过重: 大数据量和多个用户并发操作将造成服务器端数据 库的瓶颈, 使数据库性能急剧下降。 每个客户端都要和数据库建立自己的连接, 而服务器端对于连接有一定的限制,为了提供更多的连接就需要增加更多的投 入。 (3) 可维护性差: 对应用程序的一个小改动都会涉及到对整个应用的重新 发布;其次,由于对重新发布的应用更新工作量大,有可能造成不同客户的应 用系统不一致的情况,可能直接导致数据不一致等严重错误。 针对 c/s 模式的种种弊端,出现了所谓的“浏览器/服务器(即 brower/server,以下简称 b/s 模式)” 1。随着 web 技术的不断发展,使得 web 应用不再局限于提供一些静态的内容、甚至也不满足于提供一些简单的动 态内容。多层体系结构正是适合 web 应用的特点而发展起来的。目前的 web 开发中最常用的就是三层结构模型,即 mvc(model-view-controller,即模型 -视图-控制器)模式,把业务逻辑与界面显示分离,由此产生了 mvc 模式的典 型系统开发结构。但是,为了提高软件开发效率和简化后期维护工作等目的, 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 2 又出现了四层体系结构模型,它从业务逻辑层中分离出了一个单独的持久层, 进行数据的持久化操作。 在 mvc 模式开发中目前最常用最成熟的就是在 apache 软件基金赞助下, 一个叫做 jakarta 的项目产物struts 框架结构2, struts 由控制器作为框架的核 心,同时框架还整合了其他一些技术去实现另外两层:视图层和模型层。在视 图层,框架可以与 jsp、xsl、xml 等表示层组件相结合;在模型层,框架可 以与 ejb、 jdbc、 orm 映射等数据访问技术相结合。 struts 是一个 “隐含支柱” 的集合,帮助开发人员将分散的资料(如数据库和页面)结合成一个整体的应 用程序。 同时在绝大多数企业级应用系统中都采用关系型数据库作为数据的持久化 操作,而开发编程人员普遍使用的却是面向对象的编程语言,如 java 等。编程 人员在与数据库进行交互过程中都普遍使用 sql(strutctured query language, 即结构化查询语言)语句,这种编程习惯的冲突对开发人员来说是不利的。于 是有人提出了 orm(object/relation mapping,即对象关系映射)思想,并根 据 orm 思想开发出了许多持久层访问技术,比如 jdbc、dao、实体 bean、 jdo 和 hibernate 等3,下面先简要介绍一下各种技术的特点: (1)jdbc:是为各种常用数据库提供无缝联接的技术。jdbc 是访问持 久层数据最原始、最直接的方法。开发人员通常以 dao 方式来把数据访问封 装起来,然后对其进行统一的调用。这种方式要求开发人员对 jdbc 的底层信 息要非常熟悉,但是不利于维护4。 (2)实体 bean(entity bean) :是 j2ee 体系中提出的持久层访问方法, 其最大的缺点在于过于笨重,持久层对内存的消耗极大,导致运行速度缓慢5。 (3)jdo(java data object) :是一个快速灵活的标准持久层框架,提供 了面向对象的持久数据存储,但由于其并未规定 orm 技术,使得其配置文件 不具备可移植性,对应用系统的部署不利6。 (4) hibernate: 是当前最炙手可热的持久层框架, 它利用一组 orm 技术, 并运用运行时的反射机制,将数据库中表结构以及表的关系完全反映到一组简 单的 java 对象中来,业务逻辑层只要对这组 pojo(简单 java 对象)操作,就 可以完成与数据库的交互工作,同时它又专门具有对持久化操作说进行的各种 优化,降低了对开发人员的要求。并且 hibernate 还提供了与 sql 十分类似的 hql 语言(hibernate 查询语言) ,它完全面向对象,十分方便开发人员进行查 询操作7。 南京航空航天大学硕士学位论文 3 1.2 研究内容 随着经济飞速发展,企业规模不断扩大,从企业管理者角度来看,要求企 业管理能够跟得上经济发展的步伐。因此要求一个软件系统必须能够在不同地 区不同部门甚至分公司之间实现分布式数据管理与传输,因此企业管理信息系 统的目标就是能够实现企业内部的及时通信。 而基于 b/s 模式的 web 应用系统 正好可以满足这样的要求8。 java 之所以能够在与微软的竞争中立于不败之地, 正是在于它在 web 应用 开发方面的强大优势,而 j2ee 正是一种利用 java2 平台来简化与企业解决方 案的开发、部署和管理相关问题的体系结构,提供了一个企业级的计算模型和 运行环境,用户开发和部署多层体系的应用。目前,作为在中国发展最快的技 术应用框架,j2ee 已经被广泛认可,并且在许多大中型企业或政府部门的管理 系统中得到广泛应用与实施910。而最近几年 mvc 模式思想被提出并被引入 到 sun 公司的 j2ee 平台, 并且在开源社区中出现了 struts、 hibernate 等优秀框 架结构并得到广泛的使用。 论文以作者参与的江苏省科技发展有限公司(以下简称:江苏科发)的管理 信息系统等项目开发工作为背景,探讨研究利用这些开源框架在企业管理信息 系统中的应用。 1.3 研究意义 在江苏科发项目开发过程中, 项目组选择 struts 和 hibernate 这两种开源框 架来搭建系统架构。其开发意义在于:首先,提供免费、开源、有丰富的帮助 文档和稳定的开发背景;其次,便于实现系统的大规模开发、管理以及扩展。 由于系统层次之间松散耦合,在开发过程中,层与层之间的工作几乎是完全独 立的,而不同的业务逻辑基于模块进行开发,所以便于团队开发;第三,提高 了系统的重用性和可维护性。基于这种架构的 web 应用是基于模块的,表示层 和业务逻辑分离,业务逻辑层与持久层分离;第四,良好的设计思想。struts 是基于 mvc 的框架,很好地把业务逻辑和表示层分离;hibernate 是一个小巧 的实现对象关映射思想的工具,把面向对象的设计开发思想与关系数据库联系 起来。 当然,基于这两种框架进行开发也有各自的缺点,如:在 struts 中,action 映射非常复杂11;hibernate 的对象、关系之间的映射工作量很大;两者的配置 文件都很复杂等等。但是,这些所谓的缺点同时也体现除了它们的灵活之处。 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 4 因为它们把系统各层进行了完全分离,因此易于重用和扩展。基于这两个框架 的 j2ee 架构开发简洁、结构清晰,有很好的可扩展性和可维护性,非常适于 面向对象和管理信息系统的设计与开发。 尤其随着 internet 及全球信息网应用的快速发展,对 web 的应用不再仅仅 要求具有发布静态信息的简单功能,同时要求具有实时动态处理交互信息的能 力,而且这些要求还在不断的变化和提高,即使利用最先进的软件平台 j2ee, 开发这样的应用仍然是个难题,在以前的 j2ee 开发中比较常用的是 ejb(全 称是 enterprise javabeans)技术,由于其较差的耦合性,以及在开发与维护上 的种种劣势,在中小型企业管理系统开发中没有得到广泛应用。而 struts 和 hibernate这 两 种 开 源 框 架 的 出 现 很 好 地 解 决 了 这 些 问 题 , 而 struts+hibernate+tomcat 已经成为进行中小型企业 web 系统开发的首选。 1.4 论文结构 第一章:对本文所要研究课题的研究目的及研究意义作了简要的阐述,并 且说明了课题研究的主要内容。 第二章:简要介绍了 j2ee 软件架构体系以及常用的框架与技术,并在此 基础上详细介绍了基于 mvc 模式的开源框架 struts,包括 struts 的体系结构与 核心组件,最后简要说明了 struts 的工作原理。 第三章:首先简要介绍了对象持久化以及持久层的概念,然后根据这些提 出了面向持久层的 hibernate 框架技术,并介绍了它的体系结构和工作原理。 第四章:主要介绍了基于前面介绍的几种技术进行信息系统的总体设计, 包括系统的需求分析,数据库设计以及系统各个模块功能的概述。 第五章:使用第二章介绍的 struts 框架对系统进行改造升级,同时使用第 三章介绍的 hibernate 框架技术实现对数据的持久化改造。 最后简要介绍了系统 开发中一些关键技术。 第六章:总结与展望,对前面所作的研究工作进行总结,并对基于 struts 和 hibernate 技术的企业管理信息系统框架开发进行展望。 南京航空航天大学硕士学位论文 5 第2章 struts 框架技术 本章将对 struts 框架技术进行详细研究与探索。为了开发出一个良好的管 理信息系统,必须选择一个良好的框架,而目前流行的 apache 下的 struts 框架 12则是开发企业级管理系统的首选。而要介绍 struts 技术首先必须了解软件层 次架构的发展变化以及基于这种架构变化的j2ee技术以及j2ee所包括的一些 主要技术。 2.1 j2ee 概论 2.1.1 软件层次架构的发展 传统的应用系统开发采用的是两层体系结果模型,即应用层与数据层的分 离,但是随着互联网的迅猛发展,两层结构模型已经不能满足开发的需求,出 现了三层结构模型,把业务逻辑与界面显示分离,由此产生了 mvc 模式的典 型系统开发结构13。但是,为了提高软件开发效率和简化后期维护等目的,又 出现了四层体系结构模型,它从业务逻辑层中分离出了一个单独的持久层,进 行数据的持久化操作。体系模型的变化如图 2.1: 应用层表示层表示层 业务逻辑层 持久层 数据层 数据层 业务逻辑层 数据层 图 2.1 系统开发架构发展示意图 2.1.2 j2ee 概述 j2ee 是 java 2 platform enterprise edition 的缩写,它是由 sun 公司提出的一 种分布式的企业应用开发的技术架构,是建立在 java 2 平台上的企业级应用的 解决方案。目前,java 2 平台有 3 个版本,它们是适用于小型设备和智能卡的 java 2 平台micro 版 (j2me) 、 适用于桌面系统开发的java 2 平台标准版 (j2se) 、 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 6 适用于创建服务器应用程序和服务的 java 2 平台企业版(j2ee)。j2ee 技术的 基础就是核心 java 2 平台的标准版, j2ee 不仅巩固了标准版中的许多优点,例 如“一次编写、随处运行”的特性、方便存取数据库的 jdbc api、corba 技 术以及能够在 internet 应用中保护数据的安全模式等等,同时还提供了对 ejb (enterprise javabeans)、java servlet api、jsp(java serve pages)以及 xml 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市 场时间的体系结构14。 j2ee 技术与传统的企业应用解决方案相比具有以下优势: (1)平台独立性:基于 j2ee 平台的产品几乎能够在任何操作系统和硬件 配置上运行, 现有的操作系统和硬件也可以继续使用。 正是有了这个优势, j2ee 架构可以充分利用企业原有的软硬件资源,并继续发挥发挥它们的作用,这样 就避免了资源的浪费和重复的投资。 (2)开发的高效性:j2ee 提供一系列的常用框架和标准组件完成一系列 通用任务的开发。这样开发人员可以把精力集中在具体的商业逻辑上,从而大 大缩短了开发时间,显著提高了开发效率。 (3)可伸缩性:j2ee 平台的应用程序可被部署到各种操作系统上,而且 允许多台服务器集成部署。j2ee 提供了更为广泛的负载平衡策略,能消除系统 运行中的瓶颈,例如可以部署到与大型机系统或是数千个服务器的集成部署, 这样就实现了可高度伸缩的系统。 (4) 安全稳定性: 由于服务器端平台必须支持全天候运转以满足客户需要, 并且必须部署到可靠的操作环境中,并且它们必须支持长期的可用性,而对于 j2ee 来说这些都不是问题。j2ee 不但可以部署在 windows 环境中,客户也可 选择其他健壮性能更好的操作系统如:sun solaris、ibmos 等15。 根据目前市场上企业级应用开发的现状, j2ee 已经成为企业级开发的工业 标准和首选平台。 2.1.3 j2ee 体系架构 j2ee 是多层的分布式应用模型,应用逻辑根据功能划分为不同的组件, 各个应用组件根据他们所在的层分布在不同的机器上(也可以放在同一台机器 上)。在传统 c/s 模式中,客户端担当了过多的角色而显得比较臃肿,而且在 这种模式下,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不 理想,而且经常基于某种专有的协议(通常是某种数据库协议),使得重用业 务逻辑和界面逻辑非常困难,后期维护与开发比较困难。现在 j2ee 的多层企 业级应用模型将两层模型中的不同层面切分成许多层。一个多层化应用能够为 南京航空航天大学硕士学位论文 7 不同的每种服务提供一个独立的层, 而根据各个独立的层进行系统的架构开发, 则可以实现系统较高的耦合性。图 2.2 是 j2ee 典型的四层结构图: 浏览器浏览器 http html xml applet 客户层客户层clientweb表示层业务逻辑层企业信息系统层表示层业务逻辑层企业信息系统层 eis 应用客户端 ( 应用客户端 (applicatio nclient) 应用客户端 容器 ( ) 应用客户端 容器 (applicatio nclient container) 客户机客户机 web容器容器 jsp servlet xml javamail servlet j2ee platform ejb容器容器 ejb jms jta jdbc jndi jacc jaas j2ee platform j2ee服务器服务器 数据库数据库 数据库数据库 eis服务器服务器 图 2.2 j2ee 四层结构 (1)客户层组件:j2ee 应用程序可以是基于 web 方式,也可以是基于传 统桌面应用方式。 (2)web 表示层组件:web 表示层位于 j2ee 服务器中,主要由 web 容 器进行管理,可以是 jsp 页面或 servlets。而按照 j2ee 规范,静态的 html 页 面和 applets 不算是 web 层组件。 (3)业务层组件:业务层逻辑由 ejb 容器来管理,主要由运行在业务层 上的 enterprise bean 进行处理。并发送到 eis 层进行储存,这个过程也可以逆 向进行。而往往经常由图 3 所示的几个服务(如 jdbc、jndi 等)协作完成。 (4)企业信息系统层:企业信息系统层处理企业信息系统软件包括企业 基础建设系统例如企业资源计划(erp) ,大型机事务处理,数据库系统和其它 的遗留信息系统。 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 8 2.1.4 j2ee 主要技术 根据前面的介绍,以四层架构为基础介绍一些 j2ee 的常用技术: (1)servlet:servlet 是 java 平台上的 cgi(即 common gate interface) 技术。servlet 在服务器端运行,动态地生成 web 页面。与传统的 cgi 和许多 其它类似 cgi 的技术相比,java servlet 具有更高的效率并更容易使用。对于 servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支 持并发访问的。 (2)jsp:jsp(java server page)是一种实现普通静态 html 和动态页面输 出混合编码的技术。从这一点来看,非常类似 asp、php 等技术。借助形式上 的内容和外观表现的分离,web 页面制作的任务可以比较方便地划分给页面设 计人员和程序员,并方便地通过 jsp 来合成。在运行时态,jsp 将会被首先转 换成 servlet,并以 servlet 的形态编译运行,因此它的效率和功能与 servlet 相 比没有差别,一样具有很高的效率1617。 (3)ejb:ejb 定义了一组可重用的组件:enterprise javabeans。开发人 员可以利用这些组件,像搭积木一样建立分布式应用。在装配组件时,所有的 enterprise beans都需要配置到ejb服务器(一般的weblogic、 websphere等j2ee 应用服务器都是 ejb 服务器)中。 ejb 服务器作为容器和低层平台的桥梁管理着 ejb 容器, 并向该容器提供访问系统服务的能力。 所有的 ejb 实例都运行在 ejb 容器中。ejb 容器提供了系统级的服务,控制了 ejb 的生命周期。ejb 容器为 它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术 环节,简化了商业逻辑的开发。按照功能与系统开发中的角色不同,ejb 可以 分为三种18:session bean(会话 bean) 、entity bean(实体 bean)和 message-driven bean(消息驱动 bean) 。 (4)jdbc:jdbc(java database connection,java 数据库连接)api 是一个 标准 sql(structured query language,结构化查询语言)数据库访问接口,它使 数据库开发人员能够用标准 java api 编写数据库应用程序。jdbc api 主要用 来连接数据库和直接调用 sql 命令执行各种 sql 语句。利用 jdbc api 可以 执行一般的 sql 语句、动态 sql 语句及带 in 和 out 参数的存储过程。java 中的 jdbc 相当与 microsoft 平台中的 odbc (open database connectivity)。 (5)jms:jms(java message service,java 消息服务)是一组 java 应用接 口,它提供创建、发送、接收、读取消息的服务19。jms api 定义了一组公共 的应用程序接口和相应语法,使得 java 应用能够和各种消息中间件进行通信。 通过使用 jms api,开发人员无需掌握不同消息产品的使用方法,也可以使用 南京航空航天大学硕士学位论文 9 统一的 jms api 来操纵各种消息中间件。 (6) jndi: 在 j2ee 体系中, 使用 jndi (java naming and directory interface) 定位各种对象,这些对象包括 ejb、数据库驱动、jdbc 数据源及消息连接等。 jndi api 为应用程序提供了一个统一的接口来完成标准的目录操作, 如通过对 象属性来查找和定位该对象20。 (7) jta: jta(java transaction api)提供了j2ee中处理事务的标准接口21, 它支持事务的开始、回滚和提交。同时在一般的 j2ee 平台上,总提供一个 jts(java transaction service)作为标准的事务处理服务,开发人员可以使用 jta 来使用 jts。 (8) jacc: jacc(java authorization service provider contract for containers) 在 j2ee 应用服务器和特定的授权认证服务器之间定义了一个连接的协约22, 以便将各种授权认证服务器插入到 j2ee 产品中去。 2.2 mvc 模式概述 2.2.1 mvc 模式概述 mvc(model-view-controller,即模型视图控制器)是上个世纪八十 年代伴随着 smalltalk 语言出现的一种软件设计模式,在 b/s 架构的软件开发 中,是目前应用开发中的一种非常先进的设计思想23,在许多方面都己经被广 泛使用24。 基于 mvc 模式的应用系统总是由三部分构成, event (事件) 导致 controller 改变 model 或 view,或者同时改变两者。只要 controller 改变了 model 的数据 或者属性,所有依赖的 view 都会自动更新。类似的,只要 controller 改变了 view, view 会从潜在的 model 中获取数据来刷新自己。 而 mvc 三组件之间关 系与功能联系如下图 2.3 所示: 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 10 controller 定义应用程序行为 用户动作映射成model更新 选择相应的view view 解释model model更新请求 发送用户输入给controller 允许controller选择view model 封装应用程序状态 相应状态查询 应用程序功能 通知view改变 view选择 用户请求 状态改变 通知改变 状态查询 图 2.3 mvc 三组件功能关系图 2.2.2 两种 web 应用开发模式 虽然 mvc 设计模式很早就出现了, 但在应用的开发中引入却是举步维艰。 这是因为应用系统的开发具有一些鲜明的特点:其一是客户机与服务器间是无 状态连接,http 的底层是 tcp/ip 协议,而 tcp/ip 是一种无状态连接协议, 这种无状态使得模型很难更改通知视图,为了使视图能同步表达模型的状态, 客户端必须不断向服务器进行查询,这样会加剧服务器端的负担;另一个特点 是传统的设计方式即页面到页面方式将数据显示、业务逻辑、流程控制和数据 持久性处理等模块耦合在一个代码模块中,采用这种模型在开发中容易产生很 多问题如开发分工维护困难、逻辑复杂、高耦合度等。 为了解决以上问题,sun 公司先后制定了 jsp model 1 和 jsp model 2 两种 规范25,虽然 model1 在一定程度上实现了 mvc,但是它的运用并不理想,直 到基于 j2ee 的 model 2 问世才得以改观。 browers jsp javabean eisapplication server database request response 2 1 4 3a 3b 图 2.4 model 1 原理图 model 1 又叫做以 jsp 为中心的设计模式,主要技术是 jsp+javabean 技术 26。其原理图如图 2.4 所示,它实现了页面表现和业务逻辑相分离,然而使用 南京航空航天大学硕士学位论文 11 这种方式就要在页面上使用大量的 java 代码,当需要处理的业务逻辑很复杂 时, 这种情况会变得非常糟糕, 大量嵌入式代码使整个页面程序变得异常复杂, 所以不能满足大型企业应用的开发需要。针对 model 1 的弊端与不足,sun 公 司又提出了基于 mvc 模式的 model 2 模型规范。 model 2 原理图如图 2-5 所示, browers controller (servlet) eis resourcesweb/application server database request response view (jsp) model (javabean) 数据设定 数据交换 图 2.5 model 2 原理图 model 2 引入了“控制器”这个概念,控制器一般由 servlet 来担任,客户 端的请求不直接送给一个处理业务逻辑的 jsp 页面,而是送给这个控制器,再 由控制器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的 jsp 页面。这个 servlet 控制器成为处理前后端的中枢,一方面为输入数据的验 证或者用户身份认证等提供了一个合适的切入点;另一方面也提供了业务逻辑 从 jsp 文件剥离的可能。业务逻辑从 jsp 页面分离后,jsp 文件蜕变成一个单 纯完成显示任务的东西,这就是常说的 view,而独立出来的事务逻辑变成人们 常说的 model, 再加上控制器 controller 本身, 就构成了 mvc 模式。 实践证明, mvc 模式为大型企业级应用程序的开发及维护提供了巨大的便利27。 2.3 struts 体系结构 本节主要对 struts 框架技术进行介绍。虽然 model2 在一定程度上实现了 mvc,但它的应用并不尽如人意。model2 容易使系统出现多个 controller,并 且对页面导航的处理比较复杂。于是在 apache 软件基金赞助下,一个叫做 jakarta 的项目计算得以开展28,项目的创立者希望通过对该项目的研究,为开 发人员提供一个 mvc 模式的应用框架,struts 正是这个项目的产物。 struts 是一个 web framework,它继承了 mvc 的各项特性。它将 mvc 模 式所具有的“分离业务逻辑和显示逻辑”29的能力发挥到了极致,完全实现了 model 2,并很好的帮助 java 开发人员开发 web 层30。 基于 struts 和 hibernate 技术的企业管理信息系统研究与开发 12 2.3.1 struts 体系架构 struts 是由一组相互协作的类(组件),servlet 以及 jsp 标签组成,基于 struts 框架的 web 应用程序符合 model2 标准设计,体现了此模式的“业务逻 辑与表现逻辑分离”的特征。 struts 由控制器作为框架的核心,同时框架还整合了其他一些技术去实现 另外两层:视图层和模型层。在视图层,框架可以与 jsp、xsl、xml 等表示 层组件相结合;在模型层,框架可以与 ejb、jdbc、orm 映射等数据访问技 术相结合。struts 是一个“隐含支柱”的集合,帮助开发人员将分散的材料(如 数据库和页面)结合成一个整体的应用程序。 struts 框架作为 mvc model2 设计模式的成功应用框架,它的底层机制就 是 mvc 模型,所以从 mvc 的角度去分析 s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车自动驾驶技术对车险行业的影响与市场反应研究报告
- 建筑施工安全管理信息化在智能建造中的应用研究2025年报告
- 2025年中国高温羊毛行业市场分析及投资价值评估前景预测报告
- 功能性饮料在2025年健身APP运动数据挖掘与市场推广策略
- 本课综合与测试说课稿小学综合实践活动六年级上册沪科黔科版
- 远程医疗助力偏远地区医疗服务体系整体效能提升报告
- 2025年中国高纯羟基化单壁碳纳米管行业市场分析及投资价值评估前景预测报告
- 2025年中国高纯度硒行业市场分析及投资价值评估前景预测报告
- 2025年中国高玻纤块状模塑料行业市场分析及投资价值评估前景预测报告
- 第5节 激光与全息照相说课稿高中物理鲁科版2019选择性必修 第一册-鲁科版2019
- 2025年大连理工大学专职辅导员招聘考试参考题库及答案解析
- 人教版(2024)八年级上册英语Unit 4 Amazing Plants and Animals 教案
- 物流企业安全领导小组及职责2025
- 高盛-大中华区科技行业:台湾ODM评级调整;首次覆盖AI交换机神达锐捷评为买入紫光评为中性;下调和硕至卖出(摘要)
- 全科医师外科规培体系
- 《建筑设备自动化》课件-第6章 换热站与供暖系统的控制与管理
- 国家科技基础资源调查专项2025项目重要支持方向
- 留置导尿考试试题及答案
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- 卡尔曼(Kalman)滤波课件
- 《中国少数民族音乐》教学设计
评论
0/150
提交评论