




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)基于Struts和Hibernate技术的森林资源管理系统研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 森林资源是林业生产的物质基础,森林资源信息管理是林业的基础管理,而目前我 国林业部门在管理上大多采取传统的手工管理方法,但随着网络的发展和数据的迅速膨 胀,这种手工的管理方法已经很难满足现今森林资源管理的需要,因此为了能够更好地 管理森林资源,建立一个实用的、完善的森林资源信息管理系统是非常必要的。 本课题主要基于导师主持的黑龙江省科技攻关项目“面向数字林业应用软件的研 究”,研究的主要目标就是研究设计出一个基于b s 体系的,使用户可在线交互操作 的、高效率的森林资源管理信息系统。 本系统是本文主要以j 2 e e 平台的多层体系结构为依据,结合目前流行的s t r u t s 框 架使系统具有了m v c 三层结构,并将h i b e r n a t e 数据持久技术集成应用到s t r u t s 框架中 作为了数据持久层,使系统具有网络平台无关性、极易扩展性等特点此外系统还综合 运用g i s 技术,使用g i s 技术实现了森林资源变化可视化的管理。 本论文在开发过程中结合了林业资源自身的特点,并且遵照林业特定的规律来进行 开发,开发出的森林资源管理系统,从根本上改变了传统的森林资源管理的模式,提高 了森林资源管理的效率和技术水平,实现了森林资源管理的信息化,实现了森林资源管 理从静态管理到基于g i s 特征的动态综合管理,同时由于本系统是基于b s 体系的,也 解决了基层林业单位的实际管理需要,具有很强的实用性。 关键词b s ;森林资源:森林资源管理系统 a b s t r a c t f o r e s tf c s o u l c ci sm a t e r i a lb a s eo ff o r e s t r yp r o d u c t i o n ,t h ei n f o r m a t i o nm a n a g e m e n t i sab a s l em a n a g e m e n to ft l a cf o r e s t r y b u tt h ep r e s e n to u rc o u n t r yf o r e s t r yd e p a r t m e n tm o s t l y a d o p t sm a n u a lm a n a g e m e n ti nt r a d i t i o n a l l y w i t ht h en e t w o r kd e v e l o p m e n ta n d d a t ar a p i d i n f l a t i o n , t h i sm a n a g e m e n ti sn o tf i tt h el l c c c s s a r y s oi no r d e rt om a n a g et l a ef o r e s tl t c s o u l c c b e t t e r , i ti sl l l c c e s s a r yt h a t 眦s e t 叩au s e f u la n dp e r f e c tf o r e s tl r 酷o u l c cm a n a g c m c n ts y s t e m t h i st o p i ci sm a i n l yo ft h ei - i e i l o n g j i a n gp r o v i n c es c i e n c ea n dt e e l m o l o g ya t t a c kp r o j e c t w l a i e l a m a n a g e sb a s e d o n s u p e r v i s o r ”f a c e t l a cd i g i t a lf o r e s t r ya p p l i c a t i o ns o f t w a r e r e s e a r c h , a n dt h er e s e a r c he s s e n t i a lt a r g e ti st h er e s e a r c hd e s i g n so n eb a s e do i lt h eb ss y s t e m , c a u s e st h el 鳓t ob ep o s s i b l eo , l i n ca l t e r n a t e l yt oo p c r a t e ,t h eh i g he f f i e i c n e yf o r e s tl c s o l l l r c l 嚣 m a n a g e m e n t i n f o r m a t i o l ls y s t m t h es y s t e mo ff o r e s tr e s o u r c cm a n a g e m e n ti n f o r m a t i o ns y s t e mi sw c ba p p l i c a t i o nb a s e d o l lj 2 e e , w h i c ha p p l i e sp o p u l a rs t r u t st om a k ei th 州ct l a r e el a y so fm v ca n di n t e g r a t e st h e m i d d l e - o b j e x tt e c h n o l o g yo fi t i b c m a t ea sd a t ap e r s i s t e n tl a y si n t os t r u t s t h es y s t e mh a st h e f c a t t t r e so ft l a ci n d 叩c n d c mo fn e t w o r kp l a t f o r m , c h a r a c t e r i s t i c , e x t r e m e l ye a s ye x t e n s i o na n d s oo n i na d d i t i o nt h es y s t c ma l s os y n t h e s i z e su t i l i z e st h eg i st c e l m o l o g y , u s e dt h e ( 3 i s t e e l m o l o g yt o 瞄d _ i z et l a cf o r e s tl e s o u l c t 强c h a n g ev i s u a l i z a t i o nm a n a g e m e n t t h ep a p e ru n i f i e df o r e s t r yr e 5 0 u l c l 眵o w nc h a r a c t e r i s t i ca n dd c v e l o p m e n to nt h ef o r c s l r y s p c d r u l e ,s oi te l a a g e st h et r a d i t i o n a lf o r e s t ”嘴i n f o r m a t i o nm a n a g e m e n tm o d e , i m p r o v e st l a ec f f i e i e n e yo ft h ei n f o r m a t i o nm a n a g e m e n to ff o r e s t 斟粥f v 鹤a n de n g i n e e r i n g l e v e la n dr c a l i t 燃t h ea u t o m a t i o nm a n a g e m e n to i lf o r e s tl - e s o u l c l e :i n f o r m a t i o n , r e a l i z e s 岫 f o r e s tl c s o u r c 鹤m a n a g c m e a tf r o mt h es t a t i cs t a t et od y n a m i cs y n t h e s i sm a n a g e m e n tb a s e do l l t h eg i s s i m u l t a n e o u s l yt h i ss y s t e mi sb a s e do l l 她b ss y s t e m , s ot h es y s t mh a ss o l v e dt l a c a c t u a ln e e do ff o r 酷 t r y sb u r e a u t h es y s t e mha sf i l ev e r ys l 】r o n gu s a b i l i t y k e 眄o r d l sb s ;f o r e s tr e s o u r c e ;f o r e s tl l 目l o l l t l l c en a n a l g e l a e n ts y s t e m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得盎i 盐些盘堂或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均己在论文中作了明确的说明并表示谢意。 学位论文作者签名: 峪镌艉签字日期:d 叼年月。乜日 i 学位论文版权使用授权书 本学位论文作者完全了解 盎韭盎些盘堂有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查 阅和借阅。本人授权壅i 坠盎些盘堂可以将学位论文的全部或部分内容编入有 关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后适用本授权书) 学位敝储躲删翩虢渺 签字日期:扣稗d 月渺日 | 学位论文作者毕业后去向: 工作单位:哼脑弛 通讯地址: 签字日期:扣_ 年月砂汨 | 宁矽夕罗口哆 邮编: 7 i 绪论 1 绪论 对森林资源进行科学的管理,是保持森林资源持久发展的重要前提。但长久以来, 黑龙江省大部分的林业局都是使用传统人工的方式管理。这样的管理方式不但效率低, 保密性差,而且时间一长还会产生大量的冗余文件和数据,给查找、更新和维护工作带 来很大的困难。鉴于此,笔者设计了基于b s 模式的森林资源管理系统。 1 1 森林资源管理综述 1 1 1 森林资源和森林资源信息 森林资源是包括林木、林地及所在空间范围肉一切植物、动物、微生物,以及这些 生命体赖以生存并对其有重要影响的自然环境在内的总称森林资源具有一定的结构, 即水平结构、垂直结构和时间结构。反映并描述这些结构的内容构成森林资源的空间特 征和属性特征网。 森林资源信息是一种表达和控制森林资源运行状态和方式的数据。是经过整理、加 工,用来描述森林资源运动方式的统计汇总数据。它提供管理人员使用这些经过加工过 的有用数据,来控制管理森林资源的运动状态和方式。它具有信息的普遍性、绝对性和 信息的相对性、特殊性 1 1 2 森林资源管理的特点 森林资源信息管理是对森林资源信息在社会实践活动过程中的管理。它是利用各种 方法与手段,运用计划、组织、指挥、控制和协调的管理职能,对信息进行收集、储存 和处理并提供服务的过程,以有效地利用人r 财、物,控制森林资源按预定目标发展的 活动。与其他行业信息化管理相比,森林资源信息管理有它自有特点l i 】: 1 生长周期长。森林生长缓慢,这就要求对数据的保存要更加稳定,数据保存位 置与地点的分布要更加合理,便于长时间的保存。 2 数据类型复杂。林业管理数据不仅会涉及到几何属性数据,包括空问数据、图 像和图形。还涉及到非几何属性的数据,包括定性和定量的自然资源、经济等方面的知 识。 3 数据量大据初步统计,一个森林经营管理活动的最基本单位,即小班的森林 资源调查数据可多达几十项,一个较大的国有林场小班数量可达几千个,再加上经济、 环境及社会等方面的信息,其数量相当可观,作为空间信息的图像,其数据量就更加庞 大。 4 森林资源数据是处于变化之中与其它行业不同,林木是处于生长中,每一年 的数据都会因其生长而发生变化,加之诸如病害、虫害、森林火灾等一些天然因素和人 为破坏等因素,所以森林资源数据不能以静止的观点来分析。 东北林业大学硕士学位论文 5 森林资源数据的获取时间较集中,我国现行的林业调查方法。使得对森林资源 数据的采集有很强的阶段性,如二类调查分五年一次,一类调查一年一次等。 6 森林资源数据使用单位分散,且众多实际生产单位无数据维护能力,仅能在需 要时查询数据,基层的林业单位不适合配置大型数据库系统。而且基层单位无能力管 理,但基层单位却很需要这些数据来指导生产。 因此,在进行林业信息化建设时,一定要结合林业资源自身的特点,按照林业自身 的,实际情况出发,用林业特定的规律来指导实践,森林资源信息具有地理信息的特 征,使整个系统与林业的实际特点相结合,更好的发挥它应有的作用。 1 1 3 森林资源管理的现状 森林资源管理系统是为森林资源管理工作而服务的管理系统,它是森林资源管理的 重要组成部分,是实现现代化管理的重要手段,它由从事信息处理工作的部门、人员、 设备和森林资源信息等要素组成,它象人体的神经系统一样,渗透到森林资源管理的每 一个部门,而且协调和支配着每个部门,形成一个有机的整体,最终实现森林资源管理 的目标。随着森林资源管理的理念、技术和方法的不断更新及计算机软硬件技术的发 展,森林资源管理信息系统的内容与功能也在不断地完善和更新。 半个多世纪以来,随着计算机软硬件技术的发展,森林资源管理也发生巨大的变 化。 外国发达国家软硬件技术先进,各技术整合工作做得比较好,各种软件产品的质量 和功能都比较强,可视化经营软件比较先进。例如:美国农业部下属的美国林业学会及 美国华盛顿大学的森林资源管理学院研制的一系列森林资源经营管理软件。加拿大有关 森林资源经营管理的软件开发机构及软件产品,g e n u sr m t 公司研发的系列软件,法国 a m a p 实验室开发的软件( c a p s i s ,a m a p si m p ) ,德国的b w i n p r o 软件等。 我国有关森林资源管理信息的软件水平与发达国家存在很大的差距,虽然随着计算 机以及数据库技术的发展,全国各地林业部门都已经建立各自的森林资源信息管理系 统。但是,过去十几年中建立的数据库或信息系统。没有得到有效维护和及时更新,不 能在实际工作中充分发挥其应有作用。早期系统软件单项开发,集成化程度局限于研究 单位的经济利益的驱使,各种系统软件单项开发,导致就事论事,受短期效益影响的现 象存在林业系统,目前尚未建立自己的整体网络系统,大多数的森林资源管理系统只是 单机或局域网系统,在网络应用软件方面发展水平不高也不系统。森林资源管理系统在 功能上单一、共享性差,在使用上,信息资源不能共享,信息内容与形式过于单一,上 下层之间缺乏信息交流,各信息用户界面风格不一,操作复杂,这样造成了森林资源信 息分散,形成信息孤立,信息共享难以实现。 为了克服以上不足,有效的利用森林资源信息和现有的系统,在最大范围内实现森 林资源信息的共享和森林资源的统一管理,必须建立基于b s 体系,功能完善、共享性 好、界面统一、操作简单、实用性高的森林资源管理系统。 i 绪论 1 2 研究意义 目前大多数森林资源管理软件都是基于c s ( 客户端,服务器) 体系结构的。即客户 端提供用户界面、运行逻辑、处理应用,典型服务器接受客户端数据处理语句并对数据 库进行处理,然后返回处理结果。这种方式给人们带来了相当的灵活性。但也有一个很 大的缺点。就是一旦客户的业务逻辑有所改变的话,便引起应用程序的修改以及后台数 据的修改,将所有程序模块都重新修改、编译、连接的工作量是相当大的。另外,传统 的c s 结构的软件需要针对不同的操作系统开发不同版本的软件,由于产品的更新换代 十分快,代价高而且效率低,己经不能再适应现今工作的需要。鉴于此我们在设计时采 用的是b s ( 浏览器服务器) 体系结构。 在b s 体系结构中,用户通过浏览器向分布在网络上的服务器发出请求,服务器对 浏览器的请求进行处理,将用户所需信息返回到浏览器。这种结构简化了客户机的上 作,客户机上只需配置少量的客户端软件。对数据库的访问和应用程序的执行将在服务 器上完成。这种体系结构不仅把客户机从沉重的负担和对性能的提高中解放出来,也把 技术维护人员从繁重的维护升级上作中解脱出来 笔者开发的森林资源管理系统就是一个基于这种b s 体系结构的、具有良好的可维 护性和扩充性的系统森林资源管理系统。使用本系统不仅可以使从事森林资源管理从传 统的手工管理手段中解放出来,同时也提高了森林资源管理的准确性和及时性。使得森 林资源管理由静态转变为动态的管理 1 3 本文研究方法 本课题以b 娼结构下w e b 应用的开发模式为研究的基本出发点,全面基于j 2 e e 多层体系结构,以j 2 e e 的经典分层为基础,在深入剖析开源框架s t r u t s 和h i b e r n a t e 数 据持久技术的基础上,将它们进行有效的整合,设计出了一个足够灵活、松散耦合、可 扩展且高效的开发框架。在开发过程中,严格按照统一软件开发过程,对森林资源管理 系统的项目需求进行分析,然后构建其业务模型。最后在基于上述开发框架上进行编 码,最终设计出一套高效的森林资源管理系统 1 4 研究主要内容 本课题来源于导师主持的黑龙江省科技攻关项目“面向数字林业应用软件的研 究”,合同号为g c 0 4 a 1 0 8 。论文主要解决当前林业局在进行森林资源管理时诸多不合 理、不科学的现象,主要实现森林资源管理的自动化、科学化,提高森林资源管理工作 效率。在开发过程中,主要是基于j 2 e e 平台,s t r u t s 框架和h i b e r n a t e 数据持久技术并 结合g i s 技术,设计一个基于b s 体系的、用户可在线交互操作的森林资源管理信息系 统 本文组织结构如下: 第一章介绍森林资源管理的特点研究现状,研究意义,研究的主要内容 东北林业大学硕士学位论文 第二章介绍了本系统使用的相关技术 第三章介绍了本系统的系统设计 第四章介绍了本系统的实现 第五章结论 2 1j 2 e e 2 实现技术 2 1 1j 2 e e 概念 j 2 e e 是一种利用j a v a 2 平台来简化企业解决方案的开发、部署和管理相关的复杂问 题的体系结构。j 2 e e 技术的基础就是核心j a v a 台或j a v a2 平台的标准版,j 2 e e 不仅巩 固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的 j d b ca p i 、c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等,同时还 提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) ,j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及 x m l 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场 时间的体系结构 2 1 。2j 2 e e 体系结构 j 2 e e 是一种技术规范,它给开发人员提供了一种工作和运行平台,它定义了整个 标准的应用开发体系结构和一个部署环境。在这个体系结构中,应用开发者的注意力集 中在业务逻辑的开发上,一切与基础结构服务相关的服务( 事物、安全和传输) 及底层 分配问题都由应用程序容器或者服务器来处理。这样,j 2 e e 应用程序开发人员可以集 中考虑应用程序的业务逻辑和表示逻辑等,而把所有与基础结构相关的编程交给运行环 境( 容器或者服务器) 实现。j 2 e e 的体系结构如图2 l 所示: 客户层 s i , 层e i s ; ;一j 东北林业大学硕士学位论文 图2 - 1j 2 e e 体系结构图 1 客户层,客户层直接与用户交互。j 2 e e 支持多种客户端,它既可以是通过 i n t e m e t 访问的w e b 浏览器客户端。也可以是通过其他网络系统运行的瘦客户端。 2 w e b 层,w e b 层是为基于w e b 的应用程序服务的,j 2 e ew e b 层组件可以由j s p 页面、基于w e b 的a p p l e t 以及显示h t m l 页面的s e r v l e t 组成。就像客户层一样,w e b 层可能包含一个j a v a b e a n 来管理用户输入,并将输入发送给在业务层中运行的e j b 来 处理。 3 业务层,业务层通常被称作f _ 2 b 层。运行在业务层的e n t e r p r i s ej a v ab e a n 组件 封装了业务逻辑,完成企业计算。这一层提供了多个层次的服务,比如事务处理、安全 性、资源连接等。e j b 层建立在一个强大分布式模式之上,程序员用这种模式编写e j b 组件,可以不关心诸如组件通信、事务处理等底层工作,而只需把注意力放在商务逻辑 的实现上。 4 企业信息系统层,企业信息系统层运行企业信息系统软件,包括企业基础信息 系统( 如e r p 系统) 、大型事务处理、数据库系统以及其他遗留信息系统等。j 2 e e 提供 了多种技术来访问这些系统,如利用j d b c 技术来访问数据库。 2 1 3j 2 e e 优势 j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的管理系统提供了良好的技术支 持: 1 提高开发效率:j 2 e e 允许把一些通用的、很繁琐的服务端任务交给中间件供应 商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时 间。 2 可移植性:j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用 程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于j 2 e e 的程序只需 开发一次就可部署到各种平台。 3 可伸缩性:j 2 e e 提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允 许多台服务器集成部署。这种部署可达数千个处理器,能够实现高度伸缩的系统。 2 2 基于m v c 的框架 j 2 e e 提供了一个很好的企业应用框架及解决方法,提供了灵活的技术选择,但它 只是一个应用开发框架,不能解决系统的所有闯题。同时,多层企业应用框架在提高了 软件的重用性和分解了问题复杂性的同时,也使得代码庞大,层与层之间的控制关系复 杂。因此,对于复杂的企业应用软件的开发来说,一个好的软件架构也是至关重要的, 是决定大型企业应用软件质量的关键因素。它使得软件开发有章可循,结构清晰,缩短 了开发周期同时能提高软件的可维护性和可扩展性。本系统采用的基于m v c 模式软件 架构。 2 2 1m v c 模式 m v c 最初是在2 0 世纪7 0 年代的x e r o x ( 施乐) p a l oa l t or e s e a r c hc e n t e rfp a r c , p a l oa l t o 研究中心) 中被开发出来的。m v c 设计模式它可以分离数据访问和数据表现, 可以开发一个具有伸缩性的、便于扩展的控制器来维护整个流程的优势,成为j 2 e e 平 台的首选。在j 2 e e 企业应用开发中,采用m v c 设计模式,能简化开发的过程,加快 开发速度,提高软件的性能和丁维护性。 m v c ( m o d e l - v i e w - c o n t r o l l e r ) 模式其核心思想是将整个程序代码分成相对独立而 又能协调工作的三个组成部分( 如图2 - 2 ) : 图2 - 2m v c 模式 控制( c o n t r o l l e r ) :可以理解为从用户接收请求,将模型与视图匹配在一起,共同完 成用户的请求。划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器, 选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任 何的数据处理。例如,用户点击一个链接,控制层接受请求后,并不处理业务信息,它 只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因 此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型( m o d e l ) :就是业务流程,状态的处理以及业务规则的制定。业务流程的处理过 程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务 模型的设计可以说是m v c 最主要的核心,必须能够满足大多数客户的需求,包括保证 应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流的协调以及在 已有应用程序中集成新的应用组件等。m v c 并没有提供模型的设计方法,而只告诉我 们应该组织管理这些模型,以便于模型的重构和提高重用性。 视图( v i e w ) :代表用户交互界面,对于w e b 应用来说,可以概括为h t m l 界 面,但有可能为) 口町m i ,x m l 和a p p l e t 。随着应用的复杂性和规模性,界面的处理也 变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计模式对于视图的处理仅 限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处 理。业务流程的处理交予模型( m o d e l ) 处理。 东北林业大学硕士学位论文 2 2 2 几种m v c 框架比较 在项目中合理的使用m v c 框架能有效提高上作效率,增强程序的可维护性和可扩 展性。 目前比较流行的是m v c 框架有w e b w o r k 、t a p e s t r y 和s t r u t s 。这几种框架各有特 点。其中w e b w o r k 虽然结构简单易予扩展、标签库易于定制、拦截器非常出色。而且 在w e b w o r k 中,每个请求对应一个a c t i o n 。s e r v l e t 容器对每个请求产生多个对象,这 样就不会有线程安全问题,而且对性能也不会有什么影响。同时它允许在处理a c t i o n 时可以通过拦截器,而且拦截器可以在配置文件中动态添加,这样a c t i o n 和拦截器之间 就可以完全解藕,更好的实现了组件化。但我们在使用它的时候有一个最大的不足是文 档示例很少、客户端验证技术不成熟,从而造成我们开发的难度。而t a p e s t r y 虽然有自 己的视图页面,通过调用组件即自接实现多个页面组合。但t a p e s t r y 也同样对我们来说 存在一个很大的不足就是文档太概念,不利于编程,学习起来困难,同样会影响我们的 开发时间。只有s t r u t s 不但包含了比较完善的标签库,而且这些标签库有比较详尽的说 明文档,使用这些标签库可以减少j s p 页面上杂乱无章的j a v a 代码,便于页面开发人 员和j a v a 开发人员的分工。而且,s t r u t s 还可以自己定义标签。此外s t r u t s 具有页面导 航功能,通过一个配置文件把握整个系统各部分的联系,使系统的脉络更加清晰,使得 后期的维护性和可扩充性非常好。 根据以上的分析我们根据我们系统本身的特点和开发周期考虑最后采用s t r u t s 框 架。下面对s t r u t s 进行详细的介绍。 2 2 3s t r u t s 框架 2 2 3 1s t r u t s 框架的体系结构 s t r u t s 是一个开源的w e b 应用框架,他继承了m v c 的各种特性,并且根据j 2 e e 的 特性作了相应的变化和扩展,图2 3 是s t r u t s 体系结构图“” 从图中看到s t r u t s 的三个部分: 1 视图 图2 - 3s t r u t s 体系结构图 2 实现技术 视图主要是由j s p 建立。s t r u t s 自身包含一组标记库,这是s u m s 重要特点之一, 灵活运用它们可以大大提高开发的效率。 2 模型 s t r u t s 中的模型由一系列的b e a n 来实现,可以自己定义业务逻辑b e a n 。s l r u t s 本身 还提供了一种非常有用的b e a n 。即f o r m b e a n ,它可以在模型和视图之间保存数据。 3 控制器 s t r u t s 中的控制器主要是它自身提供的a c f i o n s e r v l e t ,而a c t i o n s c r v l e t 的核心就是 s m n s - c o n f i g x m l 配置文件,它包含了所有页面导航的定义。a c t i o n s e r v l v t 接受请求,并 根据配置文件中的定义将控制转移到适当的a c t i o n 类。其余的控制逻辑和对模型的访问 由a c t i o n 类来完成。 2 2 3 2s t r u t s 的主要类 s t r u t s 框架中相互协作的类,主要包括a c t i o n s c r v l c t ,a c t i o n ,a c t i o n f o r m , a c t i o n m 印p i n g ,它们的调用关系如图2 4 所示 图2 - 4s t r u t s 中主要类的调用关系 s m i t s 中各个类的作用如下: 1 a c t i o n s e r v l e t 类:它是s t r u t s 的命令部分,是框架的核心。a c t i o n s c r v l c t 创建并 使用a c t i o n ,a c t i o n f o r m ,a c t i o n _ f o r w a r d 。s t r u t s 的控制器通过s t r u t s - c o n f i g x m l 文件配 置a c t i o n s e r v l e t 。将事件映射到类的一个s e r v l c t 。在创建w e b 项目时,程序员将扩展 a c t i o n 和a c t i o n f o r m 来解决特定的问题。配置文件s t n n s - n f i g x m l 告诉我们 a c t i o n s e r v l e t 如何使用这些扩展的类。 2 a c t i o n f o r m 类:它维护w e b 应用程序的会话状态。a c t i o n f o r m 是一个抽象类, 必须为每个表单输入模型创建该类的予类。输入表单中的数据能够直接从请求流中提取 出来,并封装到a c t i o n f o r m 类中,这样就省去了很多繁杂的r e q u e s t g e t p a r a m e t e r 0 调 用。 3 a c t i o n 类:它是业务逻辑的一个包装。但是a c t i o n 类要求控制应用程序的流 程,而不应该控制应用程序的逻辑。尽量将业务逻辑放在单独的包中或放在b e a n 中, 这样可以提供更大的灵活性和可复用性 4 a c t i o n m a p p i n g 类:它包含有关特定事件如何被映射到特定a c t i o n 类的信息。 东北林业大学硕士学位论文 输入事件通常在唧请求表单中发生,s c r v l e t 容器将 册请求转换为 h t t p s e r v l e t r e q u e s t 。控制器查看输入事件,并将请求分派绘某个a c t i o n 类。s t r u t s - c o n i i g x m l 确定控制器调用哪个a c t i o n 类。s t r u t s c o n f i g x a l l 中的配置信息就转换成一组 a c t i o n m a p p i n g ,将其放入a c t i o n m a p p i n g s 容器中a c t i o n s e r v l v t 通过e x c u t e 方法将 a c t i o n m a p p i n g 传递给a c t i o n 类。这样就使a c t i o n 可访问用于控制流程的信息 2 2 3 3s t r u t s 的运作 首先是控制器组件接收到一个来自用户的 r r r p 请求时( 通常是一个后缀为+ d o 的 请求) ,先开始查找针对这个请求的动作映射,然后再检查是否曾经创建过相应的动作 对象( a c t i o n 实例) ,如果没有,则调用a c t i o n m a p p i n g 生成一个动作对象,控制组件 会保存这个动作对象供以后使用。接着调用a c t i o n m a p p i n g 的方法得到a c t i o n f o r m 对 象。然后把这个a c t i o n f o r m 对象当作参数传递给动作对象的e x e c u t e 方法。这个方法结 束后会返回给控制组件一个a c t i o n f o r w a r d 对象。控制组件从这个对象中获取下一个视 图的路径或重定向属性。如果为重定向属性,则调用h t t p s c r v l e t r e s p o n s e 的方法显示下 一视图,否则相继调用r c q u e s t d i s p a t c h c r ,s e r v l e t c o n t c x t 续传h t t p ,请求到下一个视 图。当动作对象运行e x c u t e 0 方法时,可能出现错误信息。动作对象可以保存这些错误 信息到一个a c t i o n e r r o r 对象中,再调用自身的s a v e e r r o r s o 方法把这个错误保存到 r e q u e s t 对象的属性中。接着动作对象调用a c t i o n m a p p i n g 对象的g c t l n p u t o 方法从动作 映射中获取i n p u t 参数,也就是产生输入的视图,并以这个i n p u t 为参数生成一个 a c t i o n f o r w a r d 对象返回。这个i n p u t 参数的j s p 中一般由 标签读取这些错 误信息并显示在页面上。 2 3 持久层 通过前面的介绍我们可以看出s r u t s 能够简化w e b 层的开发,实现应用程序的视图 显示和业务逻辑的分离,使应用程序更加容易维护,但对复杂的持久层操作没有提供良 好的支持。而在我们这个系统涉及到大量的信息的存储和查询,所有的应用程序都需要 和关系数据库打频繁的打交道。而由于关系数据库与j a v a 对象在结构上有着本质的区 剐,而这种类型上的不匹配给应用开发带来了很大的难度,经过研究我们将h i b e r n a t e 数据持久技术集成应用到s t r u t s 框架中来降低业务模型部分的开发难度。通过持久层的 方法来实现关系数据库和面向对象之间的映射,使应用程序和数据库中的数据相隔离, 从而提高系统的维护性和可移植性。 2 3 1 持久层概念 持久层是应用程序与数据库的隔离层,它封装了应用程序与数据库交互的底层细 节,当应用程序需要与数据库交互时,只需要给对象发送相应的消息就可以了,无需关 心如何连接具体的数据库系统、如何实现数据的读取和保存、如何实现对象的属性和数 据字段之间的映射等持久性对象的实现细节问题。侧如发送保存对象的消息 0 b j e c t s a v e o ,就可把持久对象o b j e c t 的数据保存到数据库中。这样,应用程序开发人 2 实现技术 员即可以使用和管理面向对象的数据,又不必关心数据存储的底层实现细节。持久层实 现的另一个主要功能是封装变化,它允许数据库管理员移动数据表、重命名表、重命名 表的属性及重组表,这时通过修改0 rm a p p m g 的关系就可保持持久对象的独立性,从 而使应用程序远离了数据库变更所带来的影响,即实现应用程序与数据库的松散藕合, 保持了应用程序的独立性。 2 3 2 持久层主要实现技术的比较 现今的应用系统设计中,m v c 作为主流系统架构模式之一,贯穿了整个设计流 程。m v c 中的m ,也就是所谓的m o d e l ,则可以说是与业务逻辑和数据逻辑关联最为 紧密的部分。而持久层作为m o d e l 层面中的主要组成,其设计的优劣势必对系统的整体 表现产生至关重要的影响。因此如何实现持久层管理,十分重要。 目前j a v a 有很多技术,如e j b ,j d o ,h i b e r n a t e 来完成持久层管理。e j b 是通过 e n t i t yb e a n s 来对数据进行持久化。全面采用e n t i t yb e a n s 的缺点是要需要花费很大的精 力去理解f 2 b 规范,而且在采用e j b 之前还需要熟练掌握它的a p i 。另外,需要知道除 了e j b - j a r x m l 以外的每一个容器全部专有的部署描述符,而且很多商业e j b 容器的性 能和技术支持不太好。j d o 没有一个好的开源免费实现而且j d o 也不是一个轻量级封 装,它建立的持久层框架,很不完善,感觉比较笨重另外j d o 的标准还很不完善以 及严重的产品分裂问题,使得很多操作方式很是烦琐。而h i b e r n a t e 与e j b 和j d o 相比 有很大的不同,它不需要任何容器,提供简单易用并符合o d m g 3 - s t y l e 的a p i ,也弥补 了j d o 的很多缺点。它能透明地提供对象与关系数据库的映射,以统一的接口方式支 持多种数据库,有缓存机制,是开源免费的,是轻量级封装的,h i b e r n a t e 作为一个成熟且强 大的持久层框架实现,集诸多持久层设计思想之大成。 最后在比较当今主要的持久层实现技术之后我们决定采用h i b e r n a t e 数据持久技术 建立本系统的数据持久层。下面对h i b e r n a t e 数据持久技术进行详细的介绍。 2 3 3h i b e r a n t e 数据持久技术 2 。3 3 1h i b e r n a t e 概述 在传统的数据库编程中,开发人员要面对大量重复性代码的编写,以实现对不同数 据表中数据的获取,并将获取到的记录数据封装成对象,在处理完成之后,如果需要进 行对象状态的存取,需要将对象中的数据拆卸成数据库记录中的对应字段的值,然后向 数据库中进行存储。 这种工作方式显然没有实现真正意义上数据存取阶段的面向对象虽然数据存取过 程中的工作步骤是基本固定的,但是由于操作的数据表中字段列数据的不同,使得开发 人员必须要不厌其烦地书写相应的实体类对应的封装处理过程 而在h i b e r n a t e 中,类似这种重复性高、工作量大、但是又必须保证高质量的体力 活,全部由h i b e r n a t e 接管过去。 如图( 2 - 5 ) 所示的h i b e r n a t e 基本工作示意图中可以看出:h i b e r n a t e 作为数据库和 东北林业大学硕士学位论文 j a v a 应用中对应实体类之间的数据持久层的支持,实现了实体类和数据库中对应数据表 之问的对应和沟通。 h i b e r n a t e 本质上是一个面向j a v a 开发环境的对象,关系数据库映射工具。在 h i b e r n a t e 之前,开发人员要将面向对象的软件和关系数据库结合在一起,往往会很麻 烦a 而借助于h i b e r n a t e 对象,关系数据库映射( o b j e c f f r e l a t i o n a lm a p p i n g ( o r m ) ) 技 术,可以非常轻松地将以面向对象思想封装的对象的各个状态映射到基于s q l 的关系 模型数据结构中去。 i j 。v a 应用 hh q t 语w 卜一 j 一8 鬻卜- 图2 - 5h i b e n m t e 工作示意图 2 - 3 3 2h i b e r n a t e 体系结构 h i b e r n a t e 的体系结构如下图4 - 2 所示: a p p l i c a t i o n ,竺竺竺竺2 、 l 脚慨il m a p p i n g x m l i 二二互 图2 - 5h i b e r n a t e 体系结构 应用程序通过h i b e r n a t e 与数据库发生关系,对数据进行操作。而h i b e r n a t e 自身通 过p r o p e r t i e s 和类的映射文件( m a p p i n gx m l ) 将类映射到数据库的进行的。 2 3 3 3h i b e r n a t e 编程接口 1 。c o n f i g u r a t i o n 接口: 2 实现技术 c o n f i g u r a t i o n 用来配置和引导h i b e r n a t e 。h i b e r n a t e 应用程序通过c o n f i g u r a t i o n 实 倒来指定对象一关系映射文件的位置和h i b e r n a t e 的特定属性,然后创建s e s s i o n f a c t o r y ( 会话工厂) 实例 2 s c s s i o n f a c t o r y 接口: s e s s i o n f a c t o r y 负责建s e s s i o n 实例。我们可以通过c o n f i g u r a t i o n 实例构造 s e s s i o n f a c t o r y c o n f i g u r a t i o nc o n f i g = n e wc o n f i g r a t i o n o c o n f i g o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论