




已阅读5页,还剩56页未读, 继续免费阅读
(计算机应用技术专业论文)基于struts和hibernate的图书馆网站建设——服务子系统的开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 图书馆网站所提供的服务在高校的教学和科研方面有着重要的作用。如何 迸一步满足高校教师和学生新的需求是高校网站建设出现的新课题。这些新的 需求包括师生因科研或学习方面的需要订购有关文献资料和为有关研究课题需 要进行的科技查新。s t r u t s 框架技术在实现m v c 三层结构设计方面具有很好的 优势,而h i b e r n a t e 框架与数据库交互方面具有优势,它们是目前先进的两种应 用程序开发技术。本文根据软件工程快速原型模型的开发思想,分析了基于 s t r u c t s 和h i b e r n a e 框架的图书馆网站后台服务系统的开发过程。首先,概要介 绍了s t r u c t s 和h i b e m a e 框架技术;其次,根据服务子系统特点确立设计的基本 原则,采用面向对象方法和基于u m l 语言详细地进行了服务子系统的需求分析 和设计,建立诸如对象静态模型和动态模型等的结构化分析模型,得出系统功 能模块,建立数据表;再次,论述了服务子系统的运行环境和它的实现。着重 介绍实现过程中的主要关键技术、系统登录模块的实现,文献资料订购模块和 科技查新委托模块的实现等图书网站服务子系统的基本组成部分;最后,论文 对所研究的课题进行了总结并提出了下一步改进方向。 所设计与实现的服务子系统满足了高校师生的新需求,扩展了高校图书馆 网站的功能,为高校的发展起到了积极的作用。 关键字:图书馆网站建设;服务子系统;s t r u t s 框架;h i b e r n a t e 框架 a b s t r a c t a bs t r a c t a c o l l e g el i b r a r yw e b s i t ep r o v i d e sal o to fs e r v i c e st h a tp l a y sak e yr o l ei nc o l l e g e t e a c h i n ga n ds t u d y i n g i ti san e wi s s u e sh o wt om e e tn e wr e q u i r e m e n t so fc o l l e g e t e a c h e r sa n ds t u d e n t si nc o l l e g el i b r a r yw e b s i t ec o n s t r u c t i o n t h e s en e w r e q u i r e m e n t s i n c l u d eo r d e r i n gl i b e r a t u r e sa n dr e t r i e v i n gn o v e l t yo fs u b j e c t sf o rr e s e a r c h i n gp r o j e c t s a n d o rl e a r n i n g s t r u t sf r a m e w o r kh a ss o m ea d v a n t a g e si nb u i l d i n gm v cm u l t i t i e r s t r u c t u r e a n dh i b e r n a t ef r a m e w o r kc a ns a t i s f i e sn e e d so fa d v a n c e dd a t a b s e o p e r a t i o n s b o t hs t r u t sa n dh i b e r n a t ea r ea d v a n c e dd e v e l o p p i n gt e c h n o l o g yf o r a p p l i c a t i o np r o g r a m m i n g t h i sp a p e r , m a i n l yb a s e do nt h et h o u g h to ft h er a p i d p r o t o t y p i n gm o d e lo fs o f t w a r ee n g i n e e r i n g ,a n a l y z e st h ed e v e l o p m e n tp r o c e s so ft h e c o l l e g el i b r a r yw e b s i t eb a c k g r o u n ds e r v i c es u b s y s t e mb a s e do ns t r u t sf r a m e w o r k a n dh i b e r n a t ef r a m e w o r k f i r s t l y , s t r u t sa n dh i b e r n a t ef r a m e w o r kt e c h n o l o g ya r e b r i e f l yi n t r o d u c e d ;s e c o n d l y , s o m eb a s i cd e s i g np r i n c i p l e so ft h es e r v i c es u b - s y s t e m a r ed e s c r i b e do nt h eb a s i so fi t sc h a r a c t e r i s t i c s t h er e q u i r e m e n ta n a l y s i sa n dd e s i g n o ft h es e r v i c e ss u b s y s t e ma r ei m p l e m e n t e db yu s i n go b j e c t - o r i e n t e dm e t h o da n d u m l l a n g u a g e s o m em o d e l ss u c ha ss t a t i co b j e c tm o d e l ,d y n a m i cm o d e l ,a n ds oo n , a r ee s t a b l i s h e d ,a n ds y s t e mf u n c t i o n a lm o d u l e sa n dd a t a b a s et a b l e sa r ed e t e r m i n e d ; t h i r d l y , t h es e r v i c e ss u b s y s t e mr u n t i m ee n v i r o n m e n ti si n t r o d u c e d i t si m p l e m e n t i o n i sd i s c u s s e di nd e t a i l s ,i n c l u d i n gs o m ek e yt e c h n i q u e si nt h ep r o c e s so fi m p l e m e n t i n g t h es e r v i c e ss u b s y s t e ma n di t sb a s i cc o m p o n e n t sl i k el o g i nm o d u l e ,l i t e r a t u r eo r d e r i n g m o d u l ea n dr e t r i e v i n gn o v e l t ym o d u l eo fs u b j e c t s f i n a l l y , ab r i e fs u m m a r yo ft h e w o r ki sg i v e na n df u t u r ei m p r o v e m e n ti sp r o p o s e d t h ed e s i g n e da n di m p l e m e n t e ds e r v i c es u b s y s t e mm e e t st h en e wn e e d so f c o l l e g e t e a c h e r sa n ds t u d e n t s ,e x p a n d sf u n c t i o n so ft h ec o l l e g el i b r a r yw e b s i t ea n dp l a i e sa a c t i v er o l ei nc o l l e g ed e v e l o p m e n t k e y w o r d s :l i b r a r yw e b s i t ec o n s t r u c t u r e ;s e r v i c es u b s y s t e m ;s t r u t sf r a m e w o r k ; h i b e m a t ef r a m e w o r k 学位论文独创性声明 学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得直昌太堂或其他教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签名( 手写) :务睇害 签字日期:0 7 年) 7 月7 7 日 学位论文版权使用授权书 本学位论文作者完全了解南昌大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交沦文的复印件和磁 盘,允许论文被查阅和借阅。本人授权直昌太堂可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编本学位论文。同时授权中国科学技术信息研究 所将本学位论文收录到中国学位论文全文数据库,并通过网络向 社会公众提供信息服务。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:轳磋藏 签字日期: 口f 年i ) 月) 气日 l 导师签名:钟7 s 旌- 蕈 i 签字日期: 刀年2 月矽日 第1 章绪论 第1 章绪论 1 1 课题的研究背景及其研究意义 国外尤其在西方国家由于经济等因素,图书馆行业比较受重视和发达,其 图书馆在自动化管理方面也较早。已形成了一批质量很高的商业化产品。近几 年我国一些图书馆引进了国外比较著名的图书馆自动化管理软件系统。如 i n n o v a t i v ei n t e r f a c e 公司的i n n a p o e 、e p i x t e c h 公司的h o r i z o n 、s i r s i 公司的u n i c o r n 和e x l i b r i s 公司的a l e p h5 0 0 。国外占主导的图书馆管理软件均基于u n i x 操作 系统( 有的同时支持w i n d o w s 平台) ,可以运行在i b m 、s u n 、h p 等多个厂 家的服务器上,a i x 、s o l a r i s 、l i p u n i x 等操作系统;主流的图书馆自动化 系统均采用基于客户机服务器的,组件模式的多层体系结构。 2 0 世纪9 0 年代以来,国产图书馆计算机管理软件系统有了较大发展,在标 准化、集成性、商品化、开放性( i n t e m e t ) 、售后服务等方面均达到一定水准, 并收到了较好的社会效益和经济效益。国内主流图书馆管理系统经历四个阶段: 1 、从手工操作到计算机操作,从卡片目录到机读目录的转变;2 、从单模块到 集成系统,以公用的书目数据为核心,整合各功能模块,构成一个功能全面而 强大集成系统;3 、从图书馆内提供服务到在线提供服务,从提供单个图书馆资 源到提供多个图书馆的资源的转变;4 、从只提供传统的图书馆资源到提供多种 网络资源和多媒体资源。图书馆数字信息系统建设的体系结构也从大多为客户 机服务器模式的两层体系结构转变到目前流行的多层体系结构。 随着计算机技术和网络技术的发展,如今各高校的图书馆信息化建设取得 了飞速发展。图书馆网站不仅给广大师生员工的学习带来许多便利,而且也提 高了图书馆的服务效率和服务质量。但是,现今绝大多数图书馆网站的后台服 务管理系统中仍有许多需要补充和完善的地方,尤其是主动性地服务师生方面 还有待于进行功能的扩展,比如如何通过图书馆网站这个平台帮助师生订购文 献资料,帮助师生进行课题或项目查新等。本课题针对作者单位( 九江职业技 术学院) 网站建设中后台管理系统进行分析与设计,侧重就服务子系统方面采 用新的先进技术进行功能的扩展。所开发的服务子系统将进一步提升现有网站 的功能,为本校全体师生提供新的服务。因此,本课题的开发具有重要意义和 第1 章绪论 应用价值。 本课题的研究不仅可满足图书馆发展的需要,而且将降低系统升级维护成 本高,提高系统的伸缩性,适应不同的操作系统平台。 其次,通过本课题所提供的文献资料订购服务、图书和报刊预约借还服务, 以及科技查新委托服务等将更加体现学校的以师生本的服务宗旨,将大大改善 学校的服务形象和提高服务质量与效率。 1 2 图书馆网站开发技术概述 在传统的网站建设中,人们习惯使用h t m l 来描述信息资源和服务。但由 于h t m l 不具有良好的可扩展性,不能准确地刻画数据内容,不利于大规模数 据的自动化操作,也不能有效地利用互联网中的资源,从而导致基于互联网的 应用在进一步深入发展时受到很大的限制。 随着w e b 技术的发展和电子商务时代的到来,人们不再满足于建立各种静 态的发布信息网站,更多的时候需要能与用户进行交互,并能提供后台数据库 的管理和控制等服务的动态网站。 早期的动态网站开发技术使用的是c g i - - b i n 接口。开发人员编写与接口相 关的单独的程序和基于w e b 的应用程序,后者通过w e b 服务器来调用前者。这 种开发技术存在着严重的扩展性问题每一个新的c g i 程序要求在服务器上 新增一个进程。如果多个用户并发地访问该程序,这些进程将耗尽该w e b 服务 器所有的可用资源,直至其崩溃。 为克服这一弊端,微软公司提出了a c t i v es e r v e rp a g e s ( a s p ) 技术,该技术利 用“插件和a p i 简化了w e b 应用程序的开发。a s p 与c g i 相比,其优点是可以 包含h t m l 标签,可以直接存取数据库及使用无限扩充的a c t i v e x 控件,因此 在程序编制上更富有灵活性。但该技术基本上是局限于微软的操作系统平台之 上,主要工作环境是微软的i i s 应用程序结构,所以a s p 技术不能很容易地实 现跨平台的w e b 服务器程序开发。 h y p e r t e x tp r e p r o c e s s o r ( 超文本预处理器) ,即p h p 动态网站开发技术与 a s p 相似,也是一种嵌入h t m l 文档的服务器端脚本语言。比较早建设网站的 高校采用的是p h p 编程语言,它的功能十分强大,但是该门语言比较难学,开 发起来比较复杂,目前已出现被淘汰的趋势。其语法大部分与c 、j a v a 、p e r l 等 2 第1 章绪论 语言相似,并形成了自己的独有风格,利用该语言w e b 程序员可以快速地开发 出动态网页。p r p 在大多数u n i x 平台、g u n l i n u x 和微软w i n d o w s 平台上均 可以运行。p i - i p 的优点主要有:安装方便,学习过程简单;数据库连接方便, 兼容性强;扩展性强;可以进行面向对象编程等。但p h p 也存在些弱点,主 要是p h p 是一种解释型语言,不支持多线程结构,支持平台和连接的数据库都 有限,特别是在支持的标准方面存在先天不足,对于某些电子商务应用来说, p 肿是不适合的。 还有一些技术,如j a v as e r v l e t s 技术,利用该技术可以很容易地用j a v a 语 言编写交互式的服务器端代码。一个j a v as e r v l e t s 就是一个基于j a v a 技术的运 行在服务器端的程序( 与a p p l e t 不同,后者运行在浏览器端) 。开发人员编写 这样的j a v as e r v l e t s ,以接收来自w e b 浏览器的h 1 t p 请求,动态地生成响应( 可 能需要查询数据库来完成这种请求) ,然后发送包含h t m l 或x m l 文档的响 应到浏览器。这种技术对于普通的页面设计者来说要轻易地掌握是很困难的。 采用这种方法,整个网页必须都在j a v as e r v l e t s 中制作。如果开发人员或者w e b 管理人员想要调整页面显示,就不得不编辑并重新编译该j a v as e r v l e t s 1 - 4 】。 在现代经济中,信息对于企业,已经变得至少跟商品和服务一样重要。信 息在企业的长远策略中尤其重要。将信息资本化的能力则是企业成功的关键。 对于企业来说,信息管理一直是一个需要思考的问题。在计算机化的管理中, 需要考虑很多问题集成性、信息发掘、企业内部以及与外部企业的信息传输、 安全性等。现在的j 2 e e 平台对于这些问题提供了有效的灵活的、分布式的解决 方案。 j 2 e e 是j a v a2 平台企业版( j a v a2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 简称,是 s u n 与i b m 等厂商协同业界共同拟定而成的技术规范,它是一个以企业与企业 之间的运算为导向的j a v a 环境。s t r u t s 和h i b e r n a t e 并不包括在j 2 e e 标准中,但 它们作为开源的框架,是在j 2 e e 平台上进行开发的一种非常流行的选择,受到 了越来越多的关注。 建立j 2 e e 平台的目的就是为了开发出企业或者其他客户所需要的w e b 应 用程序( w e ba p p l i c a t i o n ) 。w e b 应用程序的定义范围很广,以前最简单的由纯 h t m l 的静态页面构成的网站也属于其中一种,但是企业或组织需要的是一种 更高效、更能为其创造价值的平台,j 2 e e 就是为了这个目的而产生的。j 2 e e 的 目标就是建立一个高质量、适合于企业级应用的平台,当然,要开发w e b 应用 3 第1 章绪论 程序,除了j 2 e e 还可以有其他的选择,比如m i c r o s o f t 的n e t 框架。 j 2 e e 的出现是i n t e m e t 从“发布型”向“事务型”转化的必然结果,现在的企业 需要的不再是单一的发布信息的平台,它们需要的是能更好地实现商业逻辑的、 好的用户体验并且能方便灵活利用后台系统的一个平台,这正是j 2 e e 的特点, 所以j 2 e e 的流行看起来是不可避免的。 因此,采用基于s t r u t s 和h i b e m a t e 构架的图书馆网站建设不仅可满足图书 馆发展的需要,而且将降低系统升级维护成本高,提高系统的伸缩性,适应不 同的操作系统平台。 1 3 研究的内容与论文的组织结构 1 3 1 主要研究内容 目前,在基于w e b 的企业级应用开发中主要有两个平台,j 2 e e 和n e t , 从纯技术的观点来比较这两者,它们各自有自身的特点。本文是针对j 2 e e 平台 下的企业级应用架构和开发技术来进行图书馆网站建设。j 2 e e ,j a v a 平台企业 版( j a v ap l a t f o r me n t e r p r i s ee d i t i o n ) ,是s u n 公司为企业级应用推出的标准平 厶 口。 本文的主要研究内容为s t r u t s 、h i b e r n a t e 框架和这两个框架的轻量级架构技 术在图书馆网站建设中的应用实现,主要研究内容分为以下四个方面: 1 s t r u t s 框架研究及分析 论文总体分析了s u n 公司的两种基于j a v a 的m v c 设计模式,并对s t r u t s 框架进行了分析。阐述了s t r u t s 框架的特性和优点,并与t a p e s t r y j s f 架构进行 了比较。 2 h i b e r n a t e 框架研究及分析 主要分析了采用j d b c 进行持久层开发的缺点,并引入o r m 技术进行相关 的补充说明;着重对h i b e r n a t e 框架进行了详细的分析,并与e j b 等其它技术进 行了比较。 3 采用面向对象方法进行图书馆网站服务子系统的分析,并基于s t r u t s 和 h i b e r n a t e 框架进行了服务子系统的设计 较详细地采用面向对象方法对服务子系统进行了需求分析;研究基于s t r u t s 和h i b e r n a t e 框架的图书馆管理系统设计原则,并进行了系统的设计;并介绍了 4 第1 章绪论 服务予系统的数据库设计。 4 基于s t r u t s 和h i b e r n a t e 框架的图书馆管理系统的实现 主要研究基于s t r u t s 和h i b e r n a t e 框架的图书馆网站建设服务子系统环境的 建立,及系统中所使用的关键技术说明,主要模块的实现和系统的测试。 1 3 2 论文的组织结构 本论文的组织结构如下: 第1 章讲述了本文研究的背景及意义,提出了本文的主要研究工作。 第2 章介绍s t r u t s 、h i b e r n a t e 基本知识及其关键技术; 第3 章着重讨论了图书馆网站建设之服务子系统的面向对象分析与设计; 第4 章详细讨论了图书馆网站建设子服务子系统的具体设计方案、架构实 现和系统的功能模块,描述了系统测试和运行结果; 第5 章总结全文并指出下一步的工作: 最后是参考文献和致谢。 5 第2 章s t r u t s 框架与h i b e r n a t e 框架 第2 章s t r u t s 框架与h i b e r n a t e 框架 本章主要介绍本论文所使用到的核心技术与技术平台,主要包括:m v c 设 计模式及优缺点的介绍;由m v c 设计模式缺陷提出采用更加优化的 s t r u t s + h i b e r n a t e 框架介绍,对s t r u t s 框架的结构、组件、特点和与t a p e s t r y j s f 架构比较的介绍,以及对h i b e r n a t e 框架、组成、优点和与e j b 等其他技术的比 较的介绍。 2 1m v c 设计模式 2 1 1m v c 设计模式的简介 2 1 设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表 示。m v c 模式是软件设计的典型结构,广泛使用在交互式应用。设计模式把一 个软件组件区分为三个不同的部分m o d e l 、v i e w 和c o n t r o l ,每部分负责不同的 功能。m o d e l 是指对业务数据信息的处理模块,包括对业务数据的存取、加工、 综合等,封装了核心功能和数据。v i e w 向用户显示模型信息和控制信息。c o n t r o l 负责和之间的流程控制,即完成两个方向的动作:首先,将用户界面的操作反 映到具体的业务逻辑上,以完成具体的业务逻辑;其次,将通过处理完的业务 数据及时反映到用户界面上。该模式下组件之间的关系如图2 1 所示。 _ 视图( v i e w ) 代表用户交互界面。随着应用的复杂性和规模性,界面的处理也 变得复杂起来,一个应用可能有很多不同的视图,m v c 设计模式对于视图 的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图 上的业务流程的处理。业务流程的处理交给模型( m o d e l ) 处理。比如一个订 单的视图只能接受来自模型的数据并显示给用户,以及将用户界面的输入数 据和请求传递给控制和模型。 模型( m o d e 0 :是业务流程状态的处理以及业务规则的制定。业务流程的处 理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的 处理结果。业务模型的设计是m v c 最主要的核心。目前e j b 模型就是一个 典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便 充分利用现有的组件,但它不能作为应用设计模型的框架。这样可以使开发 6 第2 章s t r u t s 框架与h i b e r n a t e 框架 者专注于业务模型的设计。对一个开发者来说,就可以专注于业务模型的设 计。m v c 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取 的层次很重要,这也是判断开发人员是否优秀的依据。抽象与具体不能隔得 太远,也不能太近。m v c 并没有提供模型的设计方法,而只告诉你应该组 织管理这些模型,以便于模型的重构和提高重用性。业务模型还有一个很重 要的模型,那就是数据模型。数据模型主要指实体对象的数据保存( 持续化) 。 - 控制( c o n t r 0 1 ) 控制器对用户的输入做出反应并且将模型和视图联系在一起。 s e r v l e t 能够接受客户端的h t t p 请求,并且根据需要创建所需的j a v a b e a n 或者e j b ,然后将产生的变化通知给视窗。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果 用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视 图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将 变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化传播机 制。模型、视图、控制器三者之间的关系和各自的主要功能如图2 1 所示。 艿鞫 湃用i 霸降 图2 1m v c 组件关系和功能 2 1 2m v c 设计模式的优缺点【3 l m v c 模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系 统的可维护性、可扩展性、可移植和组件的可复用性。 m v c 设计模式的优点表现在以下几个方面。 ( 1 )可以为一个模型同时建立多个视图,并确保所有相关的视图及时得 到模型数据变化,从而使所有关联的视图和控制器做到行为同步。 7 第2 章s t r u t s 框架与h i b e r n a t e 框架 ( 2 )视图与控制器的可接插,允许更换视图和控制器对象,而且可以根 据需求动态打开或关闭,甚至在运行期间进行对象替换。 ( 3 ) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型 独立地移植到新的平台工作。需要做的只是在新平台上对视图和和控制器进行 相应修改。 但采用m v c 模式的系统也具有一些不足,表面在以下几个方面。 ( 1 )增加了系统结构的复杂性。对于简单的界面,严格遵循m v c ,使模 型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作, 降低运行效率。 ( 2 )视图与控制器间的过于紧密的连接。视图与控制器是联系紧密的部 件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他 们的独立重用。 ( 3 )视图对模型数据的低效率访问。依据模型操作接口的不同,视图可 能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问, 也将损害操作性能。 2 2s t r u t s 框架【2 l s t r t u t s 框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于 m v c 的w e b 应用程序的开发。 s t r u t s 能清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程。 s t r u t s 通过所提供的一些类使得开发工作更加简单,这些类包括t 1 控制程序流程的类; 2 实现和执行程序事务逻辑的类; 3 自定义的标记库使得创建和验证h t m l 表单更加容易。 2 2 1s t r u t s 体系结构 从m v c 角度观察s t r u t s 框架中的组件,如图2 2 所示。 8 第2 章s t r u t s 框架与h i b e r n a t e 框架 l 觚t s c 碰g 十 ( 控制层)( 样式) i 浏览器 j w e b a c t i o n s e r v l e t j a v a b e a n 或f e b 服务器 一k 。 叫胁i o ni l - 触i o n l 1r ( 视图) j s p 图2 2s t r u c t s 实现的m v c 框架 ( 1 ) 模型9 l 在s t r u t s 框架中,模型分为两个部分: 系统的内部状态 可以改变状态的操作( 事务逻辑) 1 1 5 】 内部状态通常由一组a c t i n f o r mj a v a b e a n 表示。根据设计或应用程序复杂度 的不同,这些b e a n 可以是自包含的并具有持续的状态,或只在需要时才获得数 据( 从某个数据库) 。 大型应用程序通常在方法内部封装事务逻辑( 操作) ,这些方法可以被拥 有状态信息的b e a n 调用。 小型程序中,操作可能会被内嵌在a c t i o n 类,它是s t r u t s 框架中控制器角色 的一部分。当逻辑简单时这个方法很适合。 ( 2 ) 视窗 由j s p 建立,s t r u t s 包含扩展自定义标签库,可以简化创建完全通用的用户 界面过程。 ( 3 ) 控制器 、 在s t r u t s 中,基本的控制器组件是a c t i o n s e r v l e t 类中的实例s e r v e l t ,实际使 用的s e r v l e t 在配置文件中由一组映射( 由a c t i o n m a p p i n g 类进行描述) 进行定 义。 2 2 2s t r u t s 框架中的组件 s t r u t s 框架中的组件如图2 3 所示,而具体的说明如表2 1 所示。 9 第2 章s t r u t s 框架与h l k m 如框架 m 嚣:= :。 m ”篙= 一。;? m 嚣裴鬟。 ;。,i i j ;i 。 一一 二i + 0 1 女目蝴 _ m t 一。 j t “。“i $ e f v l e t 与m o d e l 关系u m l 囝 图2 3s t 九l b 框架中的组件 表2l 框架中所使用的组件 控制器 包含事务逻辑 显示模块数据 a c l i o n m a p p i n g 帮助控制器将请求映射到操作 a c t i o n f o r 、v a r d 用来指示操作转移的对象 用来存储和回收错误 & b 标记库可以减轻开发显示层次的工作 ( 1 ) a e f i o n s e r v l e t a c t i o n s e r v l e t 是一个f r o n t c o n t r o l l e r ,它是一个标准的s e r v l e t ,是 j a v a xs e r v l e th t t ph t t p s e r v l e t 类的扩展。它将r e q u e s t 转发给r e q u e s t p r o e e s s o r 来处理。 r e q u e s t p r o e e s s o r 根据提交过来的叫如+ d o ,从a e 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 。然后将r e q u e s t 的参数对应到a c f i o n f o r m 中,进行 f o r m 验证。如果验证通过则调用a c t i o n 的e x e c u t e 0 方法来执行a c t i o n ,最终返 回a c t i o n f o w a r d 。 ( 2 ) a c f i o n f o w a r d a c t i o n f o w a r d 是对m a p p i n g 中一个f o w a r d 的包装,对应于一个u r l 。 ( 3 ) a e t i o n m a p p i n g 第2 章s t r u t s 框架与h i b e r n a t e 框架 a c t i o r t m a p p i n g 是a c t i o n c o n f i g 的子类,实质上是对s t r u t s - c o r t f i g x m l 的一个 映像,从中可以取得所有的配置信息。 ( 4 ) a c t i o n a c t i o n 是用于执行业务逻辑的r e q u a e s t h a n d l e r 。每个a c t i o n 都只建立一个 i n s t a n c e 。a c t i o n 不是线程安全的,所以不应该在a c t i o n 中访问特定资源。对于 多个类似的a c t i o n ,可以使用d i s p a t c h a c t i o n 。 ( 5 ) a c t i o n f o r m a c t i o n f o r m 使用了v i e w h e l p e r 模式,是对h t m l 中f o r m 的一个封装。其 中包含有v a l i d a t e 方法,用于验证f o r m 数据的有效性。a c t i o n f o i a l l 是一个符合 j a v a b e a n 规范的类,所有的属性都应满足g c t 和s e t 对应。对于一些复杂的系统, 还可以采用d y n a a c t i o n f o r m 来构造动态的f o r m ,即通过预制参数来生成f o r m 。 这样可以更灵活的扩展程序。a c t i o n s e r v l c t 使用a c t i o n f o r m 来保存请求的参数, 这些b e a n 的属性名称与h t t p 请求参数中的名称相对应,控制器将请求参数传 递到a c t i o n f o r mb e a n 的实例,然后将这个实例传送到a c t i o n 类。 ( 6 ) a c f i o n e r r o r s a c t i o n e r r o r s 是对错误信息的包装,一旦在执行a c t i o n 或者f o r m v a l i d a t e 中 出现异常,即可产生一个a c t i o n e r r o r 并最终加入到a c t i o n e r r o r s 。在f o r m 验证 的过程中,如果有e r r o r 发生,则会将页面重新导向至输入页,并提示错误。 组件流程关系如图2 4 所示。 图2 4 组件流程关系 上图中各流程简要说明如下: 第2 章s t r u t s 框架与h i l x m a t e 框架 ( 1 ) 视图中的j s p 由于用户的交互作用而生成一个请求( s t r u t s 定制标记库 来构建j s p ) ( 2 ) s t r u t sa c t i o n s e r v l e t 接收请求。这个a c t i o n s e r v l e t 使用配置文件来确定 要对请求执行的操作,从而调用s t r u t sa c t i o n 类合适的特定于应用程序的子类。 此外,它必须从请求生成被发送到这个操作的表单b e a n 。 ( 3 ) a c t i o n 子类与永久存储器和组成模型的一些应用程序交互调用业 务模块接口,返回结果。 ( 4 ) a c t i o n s e r v l e t 接受a c t i o n 的e x e c u t e 方法的返回值a c t i o n f o r w a r d ,确定 显示结果的合适的视图组件。 ( 5 ) a c t i o n s e r v l e t 将这个信息转发给操作所选择的视图组件( 一般来说是 j s p ) ,然后这个组件将结果显示出来。 2 2 3s t r u t s 框架的特点1 1 8 l 基于s t r u t s 构架的w e b 应用程序基本上符合m o d e l 2 的设计标准,可以说是 一个传统m v c 设计模式的一种变型。s t r u t s 框架使m v c 模式“分享显示逻辑和 业务逻辑”的能力得到全面发挥。s t r u t s 继承了m v c 的各项特性,它包括框架类、 帮助类和定制的j s p 标签库,以及大量基于j 2 e em o d e l 2 设计模式的应用技术。 它为开发者建立w e b 应用提供了一个强大、方便而又可掮的开发环境。 ( 1 )作为基于s e r v l e t 技术的框架,s t r u t s 具有s e r v l e t 所具有的如下特点。 s e r v l e t 是持久的。s e r v l e t 只需w e b 服务器加载一次,就可以在不同请求之 间保持服务。 s e r v l e t j 平台无关的,它继承了j a v a 的平台无关性。 s e r v l e t 是可扩展的。 s e r v l e t 是安全的。从外界调用一个s e r v l e t 的惟一方法就是通过w e b 服务器。 这提高了高水平的安全性保障,尤其是当w e b 服务器有防火墙保护的时候。 ( 2 )s t r u t s 是基于m v c 实现的。s t r u t s 是建立在m v c 这种公认的良好模式 上的,因此,它天生就有m v c 所带来的一系列优点,如结构层次分明,可重用 性高、程序具有健壮性和可伸缩性,便于开发与设计分工,具有集中统一的权 限控制等。 0 )j s p 标记机制和标签库的使用。s t r u t s 使用标记解决了某些重大问题。这 个方法有助于提高代码的可重用性和灵活性。通过将问题划分为更小的组件, 1 2 第2 章s t r u t s 框架与h i b e r n a t e 框架 当需求出现变化时,开发人员就有更多的机会重用他们原来开发的代码。 ( 4 )对其他技术和框架的融合性。s t r u t s 对其他技术和框架出很好的融合性。 比如现在它已经与t i l e s 融为一体,可以展望,它很快就会与很多其它众多技术 融合在一起。 ( 5 )开放源码。s t r u t s 是开源的框架,开放源码具有很多优点,比如可以查 看代码及必要的时候做代码检查。而且正是由于s t r u t s 是个开源项目,因而得到 了包括它的发明者c r a i g r m c c l a n a h a n 在内的众多程序大师和开发高手持续而 细心的关注,使其经受了实践的检验,功能越来越强大,体系也日臻完善。 ( 6 )功能丰富。s t r u t s 还提供了校验、国际化、日志等丰富的功能,方便开 发人员使用。 2 2 4s t r u t s 与t a p e s t r y j s f 架构比较 s t r u t s t a p e s t r y j s f 是目前j 2 e e 表现层新老组合的框架技术。从诞生时间上 看,s t r u t s 应该比较早,使用得非常广泛。 可从一个高度来抽象一下表现层框架应有的技术架构,如下图所示。 页蕊警通缓件 页蘧 图2 5 表现层架构图 从上图中可以看出一个表现层框架要实现三个功能: 1 在当前页面能够显示一个组件对象的内容;而不是象纯j s p 那样,需要在 j s p 页面写入“调用对象方法的j a v a 代码。 2 当用户按下页面的提交按扭或链接后,事件发生,这时应该触发服务器端 并将当前页面的参数提交给服务器。这种机制表现在f o r m 表单提交和有参数的 链接 吲a 。 1 3 第2 章s t r u t s 框架与h i b e r n a t e 框架 3 从一个页面视图直接跳转到另外一个页面视图,单纯的导航作用。 通过下表来比较这三种框架在实现上图各个功能时技术细节,从而得出他 们的异同点和偏重点,如表2 2 。 表2 2s t r u c t s 、t a p e s t r y 3 0 和j s f 三者之间的比较 嘲 錾 s 貊傩 t a p e s t r y 3 0 , j s f 霭 l ,在e w 显示 分显式调用和隐式调用 孽翼艘。 霪 鏊的组件要求 组件必须继承a c t i o n f o r m 无m a _ _ ;| l g e 承db o a r 霭 组件必须继承b a s e c o m p o n e n t 羹鬣w v i e w 页面只能显示与表单 对应的a c t i o n f o r m ,配置中可将组件嵌入页面任何行, t a p e s 醇 溪 a c t i o na c t i o r t f o r m 页面一对使用缀件数量无限制。 般只能1 :1 :l 关系。 区t i l e s 使用t i l e s 标签库实现,需 组件有自己的视图页谣,通过通过组件+ 标签库樊 要另外t i l e s - d e l x m l 配置文 调用组件即直接实现多个页面现s u b v i e w , 但如簿 缀合。强大自然的页面组会是重用l a y o u t , j 强缝 件 合t i l e s 其特点。 卜转 使用标签库h t m l :l i n k 中写 类似s t r u t s ,也需囊i 明目标u r l ,u r l 名称需 埙也名称是目标的组件名称, 要对照配置文件的p a t h 命 不涉及u r l 和路径等操作,方在配置文件中查找g 名,与组件a c t i o n 耦合。 便稳固。与组件分离。 霭 爹参数传递 使用h t m l :l i n k 时传递参数直接调用组件,赢接赋予参数, 件数分锡传递给匀超过一个以上处理麻烦。没有参数个数限制 墼事件触发 通过表单提交s u b m i t 激活, 能够给于表单每个字段贴一个同t a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化模具制造技术-洞察及研究
- 开源技术在智慧城市建设中的角色-洞察及研究
- 数字化转型下的组织文化适应-洞察及研究
- 生态补偿机制-第8篇-洞察及研究
- 休闲教育与学生心理健康的关联性-洞察及研究
- 基于大数据的风险预测-洞察及研究
- 柴胡注射抗氧化技术-洞察及研究
- 书香校园倡议书15篇
- 二手摩托车转让合同14篇
- 义工活动总结范本
- 核心素养视域下美术学科“五环式”教学研究
- 《财务大数据分析》教案
- 肥胖症诊断与治疗(2024版)指南解读
- 颅脑CT检查技术讲解
- 2025年高中数学说题比赛系列课件
- 临期品处理办法及流程
- 压裂泵往复密封动态磨损机理及失效自愈控制技术研究
- 消除三病反歧视培训
- 公司储备干部培训启动大会
- 初中英语1900词汇按词性分类
- 《旅游研究方法课程》-课程教学大纲
评论
0/150
提交评论