Struts和Hibernate在信息共享平台中的应用与研究
梁博 川大工程硕士论文

学校办公自动化系统的设计与实现软件工程领域研究生梁博指导老师张蕾随着学校信息化进程的深入,以现代化技术为基础的变革的,学校办公进一步标准化、复杂化,学校办公工作也逐渐更加繁重和繁杂。
怎样运用网络进行学校办公已经变成了必然的选择。
本课题结合学校办公业务处理的流程,在现有学校的计算机系统网络环境的实际状况基础上,就此自动办公系统的功效和其网络运行的结构开展设计研究。
本文讲述了传统学校办公的基础上引入具有个人办公管理、公告管理、公文管理,能充分实现内部信息共享、人员协作与业务监控的学校办公自动化系统的系统架构和设计模式。
学校办公涉及部门多、业务繁杂,本系统采用J2EE作为开发平台的Struts构架和Hibernate的技术B/S模式来完成WEB 的学校办公自动化系统。
本文主要是对系统的架构选择以及设计模式来开展了研讨。
便利的用户图形接口以及java平台无关性,保证了系统的可扩展性和安全性,提升了整个系统的开发效率。
文章的末尾对课题的主要研究内容做出了总结,提出了本系统以后要继续提升和完善之处,对web版学校自动化办公系统的发展再一次进行展望。
本系统已经在学院试用运用,在试运用期间其系统的运行状况较好。
其系统方便高效操作性和跨地域性充分体现Web版的学校办公自动化系统拥有传统的办公管理无法比拟的优点;彻底改变了传统的信息管理单一性、信息封闭性完成了办公管理远程查询及远程处理功效促使学校管理水平、管理质量水平。
关键词:办公自动化MVC技术JA V A B/S 模式The Design and Implementation ofOffice Automation System for SchoolSoftware EngineeringGraduate Student:Liang Bo Adviser: Zhang LeiWith the deepening of the process of schools information technology and the modern technology-based reform, the school office system is more standardized and complex, and the school office work is gradually more arduous and complicated. It has become an inevitable choice that how to use the school office network. This topic combines with school office business process flow, and it bases on the actual situation of the school's computer system in an existing network environment to carry out studies for the effectiveness of this automated office systems and the structure of its network operations.This article describes the traditional school office system based on the introduction of system architecture and design patterns for a personal office management, bulletin management and document management, which can fully realize internal information sharing, collaboration and business personnel to monitor the school office automation system. The system uses J2EE as a development platform and Struts and Hibernate framework technology with B / S mode to complete the WEB school office automation systems because school office involving many departments and complex affairs. This article is a system architecture selection and design patterns to carry out the discussion. Convenient graphical user interface and java platform independence ensure system scalability/security, and also enhance the efficiency of the entire system development. At the end of the article, main contents of the subject make a summary that the proposed system continues to enhance and improve the future of the department, and the development of web version office automation systems is discussed further once again.The system has been applied in college as a trial. During the trial the system runs in good condition. Operability and efficiency of their systems to facilitate cross-regional schools fully reflect the Web version of office automation system has many incomparable advantages compared against traditional office management. It completely changed the traditional unity of information management, information complete closure. It supports remote queries, and remote office management treatment efficacy to promote school management level and management level of quality.Key Words: Office Automatic System MVC Java B/S mode目录1 绪论 (1)1.1系统研究背景 (1)1.2系统研究现状 (4)1.3论文主要研究内容 (6)1.4论文章节安排 (7)1.5 小结 (8)2 系统开发工具介绍 (9)2.1基于B/S的多层体系结构 (9)2.1.1C/S模式的概述和特点 (9)2.1.2 B/S模式的概述和特点 (10)2.2 J2EE架构 (11)2.3 Spring介绍 (14)2.4 Hibernate介绍 (17)2.5 J2EE的MVC系结构 (18)2.6 MySQL数据库 (19)2.7 SSH框架简介 (21)2.8小结 (21)3 系统需求分析 (22)3.1系统总体需求 (22)3.1.1 系统实现目标 (22)3.1.2 系统的业务流程 (22)3.1.3 系统总体结构 (23)3.2系统总体需求 (23)3.2.1 个人办公管理功能 (24)3.2.2 公告管理功能 (25)3.2.3 公文管理功能 (26)3.2.4 常用工具管理功能 (27)3.2.5 系统维护管理功能 (28)3.3小结 (29)4 系统设计 (30)4.1系统总体设计 (30)4.1.1 系统总体流程设计 (30)4.1.2 系统的设计原则 (31)4.2 系统功能模块设计 (31)4.2.1 登录模块的设计 (31)4.2.2 个人办公管理模块的设计 (32)4.2.3 公告管理模块的设计 (33)4.2.4 公文管理模块的设计 (34)4.2.5 常用工具管理模块的设计 (35)4.2.6 系统维护管理模块的设计 (36)4.3 数据库设计 (36)4.4小结 (39)5 系统实现 (40)5.1 数据库连接的实现 (40)5.2 登录模块的实现 (42)5.3 个人办公管理模块的实现 (43)5.4 公告管理模块的实现 (44)5.5 公文管理模块的实现 (46)5.6 常用工具管理模块的实现 (50)5.7 系统维护管理模块的实现 (52)5.8小结 (55)6 系统测试 (56)6.1 系统测试计划 (56)6.2 测试用例 (57)6.3 测试结果 (62)6.4小结 (63)7 结论 (64)参考文献 (65)作者在读期间科研成果简介 (67)声明 (68)致谢 (69)1 绪论面对当今高效率高节奏的社会活动,社会的各个角落都要求提高运行效率,从生产到生活,从地方到国家,都要求自动化管理和自动化运营。
hibernate的基本用法

hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。
它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。
本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。
一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。
然后将解压后的文件夹添加到Java项目的构建路径中。
2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。
这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。
3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。
除此之外,还需要指定数据库的用户名和密码等信息。
4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。
我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。
这个映射文件描述了实体类与数据库表之间的对应关系。
二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。
这个类的字段通常与数据库表的列对应。
同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。
2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。
如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。
3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。
Struts和Hibernate整合框架研究与应用

第3 期
李雷孝等
Srt和 Hi rae t s u b nt 整合框架研究 与应用 e
17 8
示 , 质上 是负 责处 理系统 的业 务 逻辑 和 访 问底 层 数 据 库 。视 图 负责 接 收 客户 端 用 户 数 据 和返 回后 台 本
处理 的响应 结果 数据 给用 户 。配置 文 件 s u t t of . m 用 于定 义框 架 中各 个 对 象之 间 的关 系 , 框 r s—cn g x l i 将
架进行 应用开发实践 , 有效地解决了传统 Jv b aaWe 应用开发 中存在 的系统扩展性 差、 可维护性差等 问题 , 应用 系统正在实 际中推广使用 。
关 键 词 : rsHbra , S u , i n t 整合框架 , tt e e 教材管理
中 图分类 号 : P 1 文献 标识 码 : T 1 3 A
内蒙 古工 业 大学 学 报
J OuR NAL OF I NER MO N NGOL A I
3
UNI VERS Y Ⅱ OF ECHN0I CY r D
Vo . 9 1 2 No 3 Ol . 2 O
文章 编号 :0 1— 17 2 1 )3— 0 5— 5 10 5 6 (0 0 0 0 0 0
1 Srt 框 架 t s u
Srt 架 构是 MV t s u C设 计模 式 的一种 实现 , 它将 S r e 和 JP标记 ( e lt S v 属于 JE 2 E规范 ) 用作 实现 的一部 分 。S us 承 了 MV t t继 r C设计 模式 的各项 特性 , 并根 据 J E 2 E的特点 , 了相应 的变化 与扩 展 。 做 Srt 框架 体 系结构 如 图 1 示 。其 中 A t n rl 作 为主控 制器 由 Srt框 架本 身提供 , t s u 所 c oS v e ie t ts u 系统 所有
Struts、Spring、Hibernate三大框架的原理和优点

Struts的原理和优点.Struts工作原理MVC即Model—View—Controller的缩写,是一种常用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将Servlet和JSP 标记(属于J2EE 规范)用作实现的一部分。
Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展.Struts的工作原理,视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。
ActionServlet是一个通用的控制组件。
这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。
它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。
另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。
动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。
最后动作类把控制权传给后续的JSP 文件,后者生成视图。
所有这些控制逻辑利用Struts-config.xml文件来配置。
模型:模型以一个或多个java bean的形式存在。
这些bean分为三类:Action Form、Action、JavaBean or EJB.Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。
Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
基于Struts Hibernate Spring架构的软件开发

基于Struts Hibernate Spring架构的软件开发摘要:近年来,随着信息技术应用于各行各业,尤其是企业信息化建设的不断发展,构建了基于Web的技术系统之上。
对于当今复杂多变的市场环境,发展壮大信息技术需要考虑他的伸缩性强、扩展性好、重用性高和易维护、易管理的特点,使得Web技术发展成为现当代的热点。
Struts Hibernate Spring三大框架(SSH)主要应用于大型项目。
只有大项目才能体现出SSH的优势。
关键词:Struts Hibernate Spring 构架软件开发随着信息技术的发展需要,构建基于Web的应用系统的需求,从而使Struts Hibernate Spring结构结合,形成对Web的新应用。
1 Struts Hibernate Spring原理概述Struts就是一个MVC模式的框架,它就是将业务代码与视图代码分离,有效地优化系统结构,提高系统的扩展性,降低系统复杂度与维护难度。
Hibernate是一个对象关系数据库映射工具,通过Hibernate的使用,能够很好地解决面向对象编程语言与关系数据库一起使用可能带来的种种麻烦,使得程序设计人员可以减少对关系数据模型的依赖,致力于业务逻辑的开发。
Spring框架的使用将J2EE层次结构中的业务层分离为业务逻辑层和数据持久层,这样业务逻辑便交给Spring处理,而数据访问则交给Hibernate处理,使得层次结构更加清晰。
1.1 StrutsStruts在MVC模块中本原来就是负责将用户数据传入业务层,以及将业务层处理的结果返回给用户,此系统属于较简单Web应用,主要作用在于在用户视图中使用get,set方法来方便地获取关联对象。
1.2 SpringSpring Framework最主要的作用在于与Hibernate的无缝链接,虽然Spring 对Hibernate提供了90%以上的封装,使我们不必去关心Session 的建立,关闭,以及事务使我们能够专心的关注业务逻辑。
Eclipse+Struts+Spring+Hibernate+Mysql环境搭建及访问数据库实例

前言:这个例子的view层用到了struts,DAO层用到了hibernate,由于逻辑及其简单(只是往数据库添加一条记录),所以暂时没有用到spring。
一、使用eclipse+struts+spring+hibernate+myeclipse+mysql开发配置过程。
1.jdk的安装:安装文件:jdk-1_5_0_15-windows-i586-p.exe说明:最好用jdk1.5,可以去sun主页下载,我这里已经下了,可以提供。
注意:最好在新装系统下安装,并且此前没有装过java相关的软件,以免出现版本或者path问题。
过程:可以直接安装到c盘根目录下即可,注意要记住安装路径,以后可能会用到。
2.web应用服务器tomcat的安装:安装文件:apache-tomcat-5.5.26.exe说明:要想构建jsp应用,web应用服务器是必须要有的,asp服务器为IIS,php服务器为Apache,jsp服务器比较多有weblogic和websphere(两者是商业级的,比较强大,但要收费),tomcat和resin(免费的,比较适用中小级应用,如果是大型应用则须考虑集群)。
在这里,我选用tomcat,因为它使用较广泛,网上相关的资料也比较多。
我并没有选择最新版本,原因是次新版本往往比最新版本更加稳定。
注意:必须先装jdk,否则不能安装tomcat(原因之一是tomcat在对jsp进行编译时用到了jdk,并且jdk是tomcat正常工作的前提)。
过程:可以直接安装到c盘默认路径,选择前面安装的jdk路径,并且修改端口8080为80(tomcat默认端口为8080,而一般我们通过IE访问时端口为80,需要注意的是要保证没有其他程序已经占用80端口(比如你已经装了iis或者apache),否则tomcat不能正常启动),控制台页面的管理员admin帐号暂时不设置密码。
测试页面http://127.0.0.1,检测是否安装成功,如果进入欢迎页面就表示tomcat安装成功。
基于Spring+Struts2+Hibernate的软件行业管理系统的实现

用性 。
数据 源燧 接 池
‘ Srt2 为经典的 MVC设计模式 的一种具 体实现 , tus 作 是建 立在 当前动态 网站 设计领 域 中 J P S rl 、 ML等相关 开发 S 、 eve X t
技 术 基 础 之 上 的 一 种 主 流 开 发 架 构 。Srt tus为 W e 用 提 供 b应
射到数据库 中的数据表 , 然后通 过操作 P )0对数 据表 中的数 ( J
图 1 系 统 的整 体 架 构 方 案
了通用的框 架, 让开发人 员可 以把 主要精力集 中在业务 处理方 面 。Srt 有 自己的控 制器 , t s u 同时整 合 了模 型层 和视 图层 的技 术, 实现 了真 正的 MVC设计 模式 , 大地 节约 了开发 人员 的 极 时间。 Hient 框架 自 20 年发布 以来 , brae 01 经过 几年 的发展 已经
综
合 / 13 9
基于Srg Su2 ira 的软件行业管理系统的实现 pn+ l I+Hb nt i rs e e
谭芳芳
摘 要 :pi 、tusHient 是 近 来 在 JE 开发 中的 主 流 S r g Sr t、 brae n 2E 框 架 , 文 介 绍 了三 种框 架 的 工 作 原 理 , 将 S r g Srt2和 本 并 pi 、 tus n Hien t 三 种 框 架进 行整 合 , 计 了软 件 行 业 管 理 系 统 , 括 brae 设 包 人 员管理 、 计划管理 、 务管理 、 任 权限管理 等服务 。 关键 词 :pig Srt2 Hient; 件 行 业 管理 系统 S r ;tus ; brae软 n 中 图分 类 号 : 13 1 文 献 标 识 码 : F 2.6 A 文章 编 号 : N 3 l2 / (O O 0 —1 3 1 C 4 一 O 7F 2 l ) 3 9 —0 作 者: 湖南科技职业学院软件 学院; 湖南 , 沙,10 0 长 4 0 0
Struts和Hibernate框架在OA中的应用

科技资讯科技资讯S I N &T NOLOGY I NFORM TI ON 2008NO .07SC I ENCE &TECH NO LOG Y I NFOR M A TI O N I T 技术随着应用系统规模和复杂性的增长,人们深刻地认识到优良的开发框架不仅可以提高系统开发的效率、系统的可扩展性和易维护性。
St r ut s 框架是M VC 设计模式在J2EE 平台的上的一种具体实现,实现了多层系统间的松散耦合,提高了系统的灵活性和复用性[1]。
但St r ut s 对于模型部分的实现不太理想。
H i -ber nat e 是一个开源的O /R M appi ng 框架,对Ja va 对象持久层的轻量级封装,简化了数据持久化编程任务。
1S t r ut s 框架工作原理St r ut s 由一组相互协作的类、Ser vl et 、标记库等构成,通过自己的控制器和一些技术实现M V C 模式中的M ode l 层和Vi e w 层[2],它的原理图如图1所示[1]。
St r ut s 构架主要由三个部分组成:(1)模型:由Ja vaBea n 实现。
在A c t i on 中执行商务逻辑,返回A c t i onFor war d,由控制器转发。
Ac t i onFor m 类则把J SP 页面的f or m 域自动封装成为一个A c t i onFor m 对象。
(2)视图:用JSP 来创建。
在JSP 文件中,包含扩展自定义标签,通过这些自定义标签可以很好地和系统的模型交互,简化J SP 页面的代码,灵活运用它们可大大提高开发效率。
(3)控制器:主要组件是A ct i onSer vl et ,它主要负责接受来自客户端的请求,决定执行什么业务逻辑功能,然后将产生下一步用户界面的责任委派给一个适当的Vi ew 组件。
通过配置文件st r ut s-conf i g.xm l 中定义来进行控制转发的,主要包括一组映射,每个映射定义一个与所请求的URI 相匹配的路径和一个Ac -t i on 类的完整类名,由A ct i on 类来负责执行预期的业务逻辑,然后将控制分派给适当的V i ew 组件来创建响应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2005-05-15;修回日期:2006-01-14.资助项目:科技部国家科学数据共享工程(项目编号:2004DKA20180);南京邮电大学科研项目(项目编号:NY206039)。
作者简介:邹志强,男,博士研究生,讲师,主要研究方向:J2EE技术,组件技术,WebGIS和分布式信息共享平台。
第8卷第3期2006年9月地球信息科学GEO-INFORMATIONSCIENCEVol.8,No.3Sept.,2006Struts和Hibernate在信息共享平台中的应用与研究邹志强1,2,3,江南1,胡斌1(1中国科学院南京地理与湖泊研究所地理信息科研室,南京210008;2南京邮电大学,南京210003;中国科学院研究生院,北京100049)摘要:科学数据共享是一个重要的研究领域,但是由于缺乏足够的技术支持,导致从海量数据中找出有用信息,实现信息的完全共享还存在不足。
本文结合Struts和Hibernate技术,提出了一种信息共享平台的框架。
利用Struts优化了数据表示层和数据处理层的设计,利用Hibernate优化了共享平台的数据持久层的设计。
文章先分析了这两种技术的应用,接着重点说明了如何利用它们构建一个4层结构的共享平台,该平台可以对多种数据进行管理和分析,能在多个服务器间提取出有用的信息供用户浏览、下载和查询,从而实现了信息的共享。
关键词:信息共享;Struts;Hibernate;WebGIS1引言科学数据作为信息的重要内容之一,不仅具有明显的潜在价值,而且具有可开发价值的资源属性,但是这些共享数据的类型多种多样,空间数据、属性数据、遥感数据等,要想从这些数据中提取有用的信息是困难的,这已在相当程度上制约了科技进步与创新,并造成重复采集、重复建设的资金浪费,其原因是缺乏强有力的共享服务技术支撑[1]。
所以,搭建结构合理的平台显得尤为重要。
目前,信息共享平台有的是单机版本,即信息的数据源和数据的查询和发布服务都在本机,用户访问只能在本机进行;有些信息共享平台,虽然设计上克服了单机版的缺点,可以在网络下运行,但是它不能够在不同的操作系统下移植,存在可移植性差等问题。
共享平台的框架设计是系统的基础,但是有些框架设计是以面向过程的方法为主来设计系统,其设计的模块存在可重用性差等问题。
一种解决方案是以元数据管理和元数据服务为基础的设计,它可以较好地实现一些Web共享服务[1],但在设计模式上,如果再进一步优化,那么设计就更加合理了。
2多层结构信息共享平台的设计针对上述框架设计存在的一些问题,我们引入了J2EE技术,结合地学数据共享的特点,把系统划分为4层:数据表示层,数据处理层(业务逻辑层),数据持久层,数据库层。
对层中模块的分析,采用OOA(面向对象的分析)方法,抽象出共性问题,引入Adapter,Singleton,抽象类工厂等经典的设计模式,这样在新的信息共享平台中,提高了系统的可移植性和设计模块可重用性。
下面是分层后细化的设计方案。
2.1数据表示层的设计在信息共享平台中,数据表示是以Web形式提供给用户的,为了把Web层的HTML和Java分离,使得显示逻辑和业务逻辑不再相互交叉,我们采用了Struts技术来完成Web层的设计。
Struts[3]是一个MVC(Model-View-Controller)开源框架,它提供了对开发MVC系统的底层支持,我们共享平台的Model采用Hibernate技术[2]来完成,View由JSP和TagLib来完成,Controller由Struts的Action-Servlet和ActionMapping来完成。
配置文件:struts_config.xml负责系统的各个模块之间的交互地球信息科学2006年(参考图1)。
图1数据查询时的UML顺序图Fig.1UMLSequencediagramofdataquery2.2数据处理层和数据持久层的设计现有的平台设计中,对于数据库的访问,有些是在自己的应用程序中直接提供JDBC连接和管理事务。
这对简单的系统设计是可行的,但是对于数据共享平台,其数据类型复杂,并发访问用户较多和访问流量大的系统,直接用JDBC编程效率较低,且容易出错。
考虑到EJB(EnterpriseJavaBean)的应用则显得有些臃肿,它需要额外EJB容器(应用服务器),所以没有选用实体Bean来处理持久层的数据。
现在我们引入Hibernate把所有的底层JDBC/JTAAPI都抽象出来,自己的应用程序就可以不再直接访问数据库了。
Hibernate[4]是一种实现对象和关系之间映射(ORM,ObjectRelationMapping)的开源框架。
它对JDBC进行了轻量级的对象封装,使得JAVA程序员可以使用面向对象编程思维来操作关系数据库。
为了更好地实现MVC的设计模式,我们把Struts和Hibernate这两个框架结合起来,如图1所示,在响应数据表示层的JSP请求时,会有相应的Action对象(如objMapQueryAction)去调用业务逻辑模块的接口(如queryGeocoreType(…)),实现这些业务逻辑接口的Java类(如DataBaseManager)就通过Hibernate穿过持久层,最后映射到数据库中具体的表,可见,DataBaseManager类是数据处理层的一个核心模块,它对不同类型的数据操作进行了封装,是表示层和数据库的桥梁。
2.3分布式共享平台的系统框架信息共享平台是一种典型的面向服务的软件平台,它由多个分布式的节点构成,每个节点由多台服务器组成,系统架构如图2,其中,左边是一个节点,它包含多个应用服务器,如Web服务器、JSP容器和地图处理服务器,右边是平台中的其他节点。
Web服务器负责处理HTTP请求,JSP容器负责解释JSP语句;地图处理服务器则专门动态处理对地图的图层调用,并按用户的地图操作,调用空间数据引擎,从而返回请求的结果;数据库服务器则负责管理和存储各种数据。
图2分布式共享平台的系统框架Fig.2Frameworkofdistributedsharingplatform从图2中可以清楚地看出,在Hibernate之上是用面向对象的方法开发业务逻辑,其之下是关系型的数据库,正是Hibernate起了对象/关系的映射作用(O/RMapping)。
对于这样一个由多台服务器组成的节点,其部署是很灵活的,可以采用水平扩展,即在多台联网的服务器上分别部署不同的服务,也可以采用垂直扩展,即在一台性能很好的多CPU服务器上部署多个服务,目前我们采用的部署方式是垂直扩展。
共享平台的客户端可以通过In-ternet与平台中的任何一个节点的WebServer相连,如http://www.geoinfo.ac.cn/metadata/,执行数据的查询、浏览、汇交、下载等工作。
而节点中内部微WebService代理58・・3期邹志强等:Struts和Hibernate在信息共享平台中的应用与研究机一般是通过局域网与本节点的Web服务器相连,如http://www.geoinfo.ac.cn/admin执行平台的各项管理工作。
各节点之间采用WebService交互[6],WebService提供者首先向WebService代理注册自己提供的服务,之后WebService请求者通过WebService代理来定位自己需要的服务,请求者使用得到的WSDL生成SOAP消息,并按SOAP/XML格式调用WebService,最后运行结果从提供者反馈给请求者。
这样数据只存放在平台的一个节点中,数据的存储位置和管理对用户是屏蔽的,用户可以查询到平台中的数据,但不知道它具体存储在分布式共享平台的哪个节点上。
3具体的原形实现根据上述的设计方法,我们实现了一个信息共享平台的原形,图3就是基于Struts和Hibernate来实现的空间数据查询界面。
信息共享平台展现给用户的首先是Web表示层,Web层是通过JSP技术结合Struts强大的TagLib来实现的,表示页面包含:Login,Register,Admin,BBS,Cart和Query等几部分,其中最主要的是数据查询和搜索,它还可以实现数据的浏览,下载和在线分析等功能。
目前我们把查询分为两类,一类是基于关键字和主题等字段的查询,另一类是基于地图的查询。
图1展现了对关键字查询的处理序列,由于Web层采用了MVC框架,所以对用户查询的处理首先要经过Servlet的转发,然后由Struts的ActionServlet实现对业务逻辑的控制。
为了使系统结构能更好地进行动态扩展,共享平台使用了抽象类工厂设计模式,接着从类工厂中调用方法getDataBaseManager(),得到数据管理对象obj-DataBaseManager,最后通过Hibernate完成对象和关系的映射,把JavaBean类里使用的HQL语句转换为SQL语句,进而利用JDBC驱动操作数据源,至此才真正得到数据库里的数据,并且把这数据返图3空间数据查询的界面Fig.3Interfaceofspatialdataquery59・・地球信息科学2006年回给页面用户。
由于采用了Hibernate框架,所以简化了数据管理,如增加、删除、修改等程序的设计。
假设数据库的元数据表中有150个字段,现在要对其中的经度和纬度等字段进行条件查询,不用Hi-bernate时,其SQL查询select*from,参数可能会超过100个,很容易出错,随着SQL的增多,系统调试的难度会剧增,而现在采用了Hibernate之后,可以使用面向对象的方法编程,部分设计如下:Stringsql=Constants.METADATAMET_SQL;//引入查询常量objIService.getService().getIteratedDataInfo//调用查询方法(sql,pageSize,(currentPage-1)*pageSize,xy,dates);//Sessionsess=factory.openSession();//得到当前的会话tx=sess.beginTransaction();//赋值事务对象Queryquery=null;//org.hibernate.Query//query=sess.createQuery(sql);//执行查询query.setMaxResults(max);//query.setFirstResult(first);//info=query.list();//得到查询结果tx.commit();//处理事务,完成查询……只要先定义常量METADATAMET_SQL,再通过对象objIService就可以调用方法getIterated-DataInfo(),最后通过HQL语句就可以完成查询,开发和调试变得简单了。