(计算机应用技术专业论文)基于mvc模式与工作流的广电综合业务系统应用研究.pdf_第1页
(计算机应用技术专业论文)基于mvc模式与工作流的广电综合业务系统应用研究.pdf_第2页
(计算机应用技术专业论文)基于mvc模式与工作流的广电综合业务系统应用研究.pdf_第3页
(计算机应用技术专业论文)基于mvc模式与工作流的广电综合业务系统应用研究.pdf_第4页
(计算机应用技术专业论文)基于mvc模式与工作流的广电综合业务系统应用研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕士学位论文 摘要 i n t e m e t 和w e b 技术的发展菇广播电视综合业务系统提供了新的技术支 持。基于i n t e m e t 的广播电视行业综合业务系统对于改变电视台传统的管理 枧制,对予整合原有电视台褶关的管理系统,提高电视台管理的综合水平起 着非常重要的作用。 本文在比较国内目前电视台管理软件现状的基础上,着重分搴厅研究了系 统要用到的关键技术j a v a b e a n 技术、工作流技术、m v c 技术。并探索研究 了如何将m v c 模式与工作流技术在管理系统中结合起来。 在系统设计主我们用到了工佟流技术,弓| 入o f b i z 乍必我们系统的工 作流引擎,深入研究了如何架构一个工作流模型,并在此基础上构建了一个 电视台的管理系统的工作流模型,筠我们解决电视行业韵特殊要求提供了缀 好的技术支持。工作流的模式改变了电视台传统的审批过程,使得电视台的 审批效率锝到很大的提高。而且系统用户还可以通过修改x p d l 文件进行 工作流程的自定义。 采用了基于m v c 的w e b 应用体系。j s p ( v i e w ) + s e r v l e t ( c o n t r o l l e r ) + j a v a b e a n ( m o d e l ) 的体系设计有效地实现了界面和逻辑的分离。本文对 广播电视行业综合业务管理系统主要的模式类和控制器类进行了详细的设 计。 将电视台原有分散的系统整合起来形成一个具有行业性质的统平台。 如整合了蜃期制作设备系统模块、钋借设备管理模块、带库管理模块、考 勤管理系统、新闻节目生产管理系统、广告管理系统、办公管理模块等, 为电视台工作人员提供了一个人性化的管理平台。 嚣前,广电综合业务系统正在不断发展,这个系统借助予工作流技术的 灵活性、适应性对于实现电视台审批业务的完全自动化具有很好的理论依据 及技术支持。 论文给出了系统中用m v c 模式或工作流技术开发的主要模块的实现。 关键字:m v c ,o f b i z ,工作流 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e ta n dw e bt e c h n i q u e ,m a n y k i n d so ff r e s h t e c h n i c a lm e a n sa r es u p p l i e df o rt h ei n t e g r a t e do p e r a t i o nm a n a g e m e n ts y s t e m o f b i t ( b r o a d c a s t a n d w ) b yi n t e g r a t i n g t h ee x i s t e n ts y s t e mo fb 风t h ei n t e g r a t e d o p e r a t i o nm a n a g e m e n ts y s t e m o fb f r , w h i c hi sb a s e do ni n t e r n e t t e c h n i q u e , c h a n g et h et r a d i t i o n a lm a n a g e m e n tm a n n e r so fb f r 。b yp r o v i d i n gau n i f o r m m a n a g e m e n tp l a t f o r m ,t h ei n t e g r a t eo p e r a t i o nm a n a g e m e n ts y s t e m o fb f r p l a y sa v e r yi m p o r t a n t r o l ei nb , f r b a s e do nt h er e s e a r c ho ft h es t a t u so fm a n a g e m e n to fb 腰a th o m ea n d a b r o a d ,t h ek e yt e c h n o l o g i e ss u c ha sj a v a b e a n , w o r k f l o w , m v ca r ea n a l y z e d r o u n d l y i tw a s r e s e a r c h e dt h a th o w t oi n t e g r a t et h ew o r k f l o wa n dm v ci nt h e s y s t e m 。 t h e o f b i z ( o p e n f o rb u s i n e s s ) ,w h i c hi st h es e r v e ro ft h ew o r k f l o w ,w a s i n t r o d u c e di nt h es y s t e m 。i th a sb e e nl u c u b r a t e dt oh o wt od e s i g naw o r k f l o w m o d e l ,o nt h eb a s i co fw h i c ht h em o d e lo fm a n a g e m e n to fb f r w a sd e s i g n e d , w h i c hp r o v i d et e c h n i q u es u s t a i nf o rt h ee s p e c i a ln e e do fb 厂翼t h ew o r k f l o w m o d e l p r o v i d e a g o o ds u s t a i n o fs o l u t i o nf o rt h e e s p e c i a lr e q u i r e m e n t o f b 忍t h e t e c h n i q u e m a k e st h ee x a m i n ea n d a p p r o v e o f 黝t e a s y 。f u r t h e r m o r et h e s y s t e m u s e rc a nu s e r - d e f i n e dt h ew o r kf l o w b ym o d i f y i n g x p d l m v c - b a s e dw e b d e s i g np a t t e r nw a sa d o p t e dt od e s i g nt h ew h o l es y s t e m , i n t e r f a c e d e s i g n a n d l o g i cp r o g r a m m i n g w e r e e f f e c t i v e l y a r c h i v e d b y c o m b i n a t i o no ftt h r e e j a v at e c h n i q u e s :j s p , s e r v l e ta n dj a v a b e a n 。j s pw a su s e d t ob u i l du s e ri n t e r f a c e ,s e r v l e tw a su s e dt o p l a y t h er o l eo fc o n t r o l l e ra n d j a v a b e a nw a st oe n c a p s u l a t et h eb u s i n e s sl o g i co fm o d e l 。髓ec o m p l e t ed e s i g n o fb o t hm o d e lc l a s s e sa n dc o n t r o l l e rc l a s s e sw e r e g i v e n i nd e t a i li nt h i sp a p e r 。 a i n t e g r a t es y s t e mw a sd e s i g nb yi n t e g r a t i n gt h ee x i s t e n ts y s t e m ,s u c ha sa m a n a g e m e n ts y s t e m o f p r o d u c ee q u i p m e n t ,am a n a g e m e n ts y s t e m o fl o a n e q u i p m e n t ,am a n a g e m e n ts y s t e mo ft a p e ,am a n a g e m e n ts y s t e mo fa t t e n d a n c e ,a | l 武汉理工大学硕士学位论文 m a n a g e m e n ts y s t e m o f n e w s ,am a n a g e m e n ts y s t e m o f a d v e r t i s e m e n t ,a m a n a g e m e n ts y s t e m o fo a t h e i n t e g r a t eo p e r a t i o nm a n a g e m e n ts y s t e m o fb tw a si n r a p i d d e v e l o p m e n t 。t h ea d a p t a b i l i t ya n dc h a n g e a b i l i t yp r o v i d et e c h n i q u es u s t a i nf o r t h ea u t o m a t i z a t i o no ft h ee x a m i n ea n d a p p r o v e o ft h e8 忍 s o m ek e ym o d u l e so ft h e s y s t e m w h i c hw e r ed e v e l o p e db ym v co r w o r k f l o ww e r ea l s og i v e ni nt h i s p a p e r k e y w o r d s :m v c ,o f b i z ,w o r k f l o w 秘1 武汉理工大学硕士学位论文 m a n a g e m e n ts y s t e m o f n e w s ,a m a n a g e m e n ts y s t e m o f a d v e r t i s e m e n t ,a m a n a g e m e n ts y s t e m o fo a 。 t h e i n t e g r a t eo p e r a t i o nm a n a g e m e n ts y s t e m o fb tw a si n r a p i d d e v e l o p m e n t 。t h ea d a p t a b i l i t ya n dc h a n g e a b i l i t yp r o v i d et e c h n i q u es u s t a i nf o r t h ea u t o m a t i z a t i o no ft h ee x a m i n ea n d a p p r o v e o ft h eb t s o m ek e ym o d u l e so ft h e s y s t e m w h i c hw e ed e v e l o p e d b y m v co r w o r k f l o ww c ea l s og i v e ni nt h i s p a p e r k e y w o r d s :m v c ,o f b i z ,w o r k f l o w i i i 武汉理工大学硕士学位论文 第一章绪论 。 本课题研究的现状及意义 广播电视事鼗是一个非常重要的事监,它不仅在政治上是党和国家的一 个主要宣传工具和阵地,而且随着人类进入信息时代,它在促进国家经济发 展,促进科学技术进步,丰富和提高人民文化生活,提高精神文明各方面都 起着越来越重要的作用。 隧着市场经济的到来,信息作用越来越大,广播电视部门的工作也在向 经济方面发展,在讲究社会效益的同时,更要讲经济效益。上层建筑必须适 应经济基础,国家开始多方面体制改革,事业单位簧实行企业化管理,广电 部f j 也不例外。 数据库技术和互联网的完美结合正以惊人的速度改变着人们的传统的 生存方式和工作方式,提高了人们实际工作的效率,是当今计算机技术通向 计算黠代的一个非常重要的里程磷。 王作流技术是一项快速发展的技术,并在各个行业褥到广泛应用,它提 供了一种建立基予霹终的”信息流水线”的工具,并为满足2 l 世纪的需要变 革你的业务模式。该技术提供最迅速的方法进行精密部署、数据库驱动并具 可延展性。广播电视行她所具有的行业特殊性,对于工作流技术的应用其有 特殊的重要的意义。但是目前国内的所有电视台相关信息软件中这一技术爿 刚刚起步,所以其应用将具有广阔的市场空间。 增加广播电视事业管理的科技含量,利用现代化数字信息手段实现,是 实现提高广播电视事业管理水平,提高监控水平、保证监控质量、提高监控 工作效率、确傺广播电视事监高效、正常运转的重簧措施。 躁前现有的广播电视管理系统虽然能对电视台的一些业务进行信息化 管理,但由于这些系统均采用d e l p h i 或v b 技术开发的,限于这些工具本 身的局限性,还有过去的系统是在过去的认知基础上开发的,所以远远不能 满足电视现在的需求。出现以下一些比较明显的问题: ( 1 ) 电视台各个系统相互独立,没有一个适应电视台管理的统一的管理 1 武汉理工大学硕士学位论文 平台,给用户带来很大的难度。 ( 2 ) d e l p h i 或v b 技术开发系统不能满足跨平台盼需求,需要针对用户不 同的平台要求开发不同的系统。 ( 3 ) 由于电视台管理的特殊性,没有掇据电视台的业务流程开发满足电 视台需要的特殊的业务流程。没有根据电视台内部的业务流程进行流程建 模。导致很多时间与精力浪费在表单的传递上;审批过程效率低下,与高效 的企业形象不符;公司有规定的业务流程,僵常常不能按规定实施;溺没有 处理过程的记录,使效率低下的状况得不到改变;数据没有归档,知识得不 到再利用;处理时闻、费用、效率等不容易度量;关键业务流转常常因为人 为的因素而延误;过度依赖于纸张,表单延误、遗失等造成无形的管理黑洞; 企业的管理需要再上台阶;有强大的服务器与内部嬲络,但不能发挥其强劲 功能。 为了适应网新月异的数字化生存新环境、适应国家信息化建设的发展、 提高管理水平,因而基于m v c 模式与工作流的广电综合监务系统应用研究具 有重要的意义和广阔的前景。 2 本文主要的研究内容 为了改变霸前电视台管理软件现状,解决目前管理中遇到的问题,最 大限度提高电视台的信息化水平。本文的具体研究内容如下: ( 1 ) 将工作流技术应用到电视台管理软件中,实现电视台工作流程的 自定义。改变过去审批的流程,提高审批效率。 ( 2 ) 探索将m v c 模式与工作流技术结合起来的新方法。在系统中充分 利用两种技术的各自的优点,更好的为系统服务。 ( 3 ) 如何将电视台所有现有系统整合起来形成了一个统一的平台。将 电视台所有管理软件整合起来,实现一个统一的管理平台,改变过去不同 系统相互独立的现状。 武汉理工大学硕士学位论文 第二章j a v a b e a n 技术研究 2 。 j a v a 技术特征及其优势 j a v a 来自于s u n 公司的,其原先的目的是为家用电子产品开发一个分布 式代码系统,这样我们可以把e - m a i l 发给电冰箱、电视机等家用电器,对 它们进行控制,和它们进行信息交流。开始,准备采用c + + ,但c + + 太复杂, 安全性差,最后基于c + + 开发一种新的语言o a k ( j a v a 的前身) ,o a k 是种餍 于网络的精巧而安全的语言,s u n 公司曾依此投标个交互式电视项目,但 结果是被s g i 打败。在o a k 的发展遇到了很大的挑战时,m a r ka r d r e e s e n 开发的m o s a i c 和n e t s c a p e 启发了o a k 项目组成员,他们用j a v a 编制了 h o t j a v a 测览器,褥到s u n 公司首席执行官s c o t tm c n e a l y 的支持,触发了 j a v a 进军i n t e r n e t 。 j a v a 是一种简单、面象对象、分布式、解释、健壮、安全、结构中立、 可移植、性能缀优异静多线程的动态的语言。 ( 1 ) 简单 j a v a 最初是为对家用电器进行集成控制两设计的一种语言,因此它必须 简单明了。j a v a 语言的简单性主要体现在以下三个方面:1 j a v a 的风格类似 于c + ,因而c + 程序员是非常熟悉豹。从某种意义上讲,j a v a 语言是c 及c + + 语言的个变种,因此,c + + 程序员可以很快就掌握j a v a 编程技术。 2 。j a v a 摒弃了c + + 中容易引发程序错误的地方,如指针和内存管理。3 j a v a 提供了丰富的类库。 ( 2 ) 面向对象 面两对象可以说是j a v a 最重要的特性。j a v a 语言酶设计完全是面向对 象的,它不支持类似c 语言那样的面向过程的程序设计技术。j a v a 支持静 态和动态风格的代码继承及重用。单扶藤向对象的特性来看,j a v a 类似于 s m a l l t a l k ,但其它特性,尤其是适用于分布式计算环境的特性远远超越了 s m a l l t a l k 。 武汉莲工大学硕士学位论文 ( 3 ) 分布式 j a v a 包括个支持h t t p 和f t p 等基于t c p i p 协议的子库。蠢此,j a v a 应用程序可凭借u r l 打开并访问网络上的对象,其访问方式与访问本地文件 系统几乎完全相同。为分布环境尤其是i n t e r n e t :动态内容无疑是一项非常 宏伟的任务,j a v a 的语法特性却使我们很容易地实现这项蹋标。 ( 4 ) 健壮 j a v a 致力于检查程序在编译和运行时的错误。类型检查帮助检查崮许 多开发早期出现的错误。j a v a 自融操纵内存减少了内存出错的可能性。j a v a 还实现了真数组,避免了覆盖数据鳇可能。这一功麓特薤大大缩短了开发 j a v a 应用程序的周期。j a v a 提出了n u l l 指针检测数组边界检测异常出口字 节代码校验。 ( 5 ) 结构中立 另外,为了建立j a v a 作为网络的一个整体,j a v a 将它的程序编译成一 种结构中立的中间文件格式。只要有j a v a 运行系统的机器都能执行这种中 间代码。现在,j a v a 运行系统有s o l a r i s 2 4 ( s p a r c ) ,w i n 3 2 系统( w i n d o w s 9 5 和w i n d o w sn t ) 等。j a v a 源程序被编译成一种离层次的独立于平台豹 b y t e c o d e 格式语言,这种语言被设计在虎拟机上运行,由机器相关的运行 调试器实现执行【。 j a v a 语言跨平台的特点使用户从网络下载j a v a 程序后可以直接运行。 软件开发人员编写的j a v a 程序可以不参加修改就可以在多种平台上运行。 实际上,j a v a 编译器产生的是字节代码,他是独立于平台的,用户下载就是 这种字节代码,然后由用户机器上的j a v a 解释器解释执行。如下图: 测览器 ; 2 - i 【 ;5 1 唾 j a v a 解释器 一 【 服务器 :3 事 字节代码 u 3 “”一一一。+ ij a v a 程序 图2 - i j a v a 程序的下载及执行过程 4 - 武汉理工大学硕十学能论文 ( 6 ) 安全 j a v a 的安全性可从两个方面得到保证。一方蕊,在j a v a 语言里,指针和 释放内存等功能被刺除,避免了非法内存操作。另一方猫,当j a v a 用来创 建浏监器时,语言功糍翮浏览器本身的功能结合起来,使它更安全。j a v a 语言在机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段 的格式,检测指针操佟,对象操作是否过分以及试图改变一个对象的类型。 ( 7 ) b y t e c o d e 校验 如果b y t e c o d e 通过代码校验,没有返回错误,我们可知道:代码没有 堆栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据 转换,如将整数转换成指针。访翊对象操作是合法的类装载( c l a s sl o a d e r ) 。 类装载通过将本枫类与网络资源类的名称分开,来保持安全性。遴为调 入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络上下载的 类被调进一个与源相关的私有的名字域。当一个私有类访问另一个类时, b u i l d i n ( 本机类) 首先被检查,然后检查相关的类。这样就避免了破坏本机 类情况的出现。 ( 8 ) 可移植的 同体系结构无关的特性使褥j a v a 应用程序可以在配备j a v a 解释器和运 行环境豹任篱计算机系统上运行,这成为j a v a 应用软件便予移植的瞧好基 础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为 程序的移植带来很大不便。例如在w i n d o w s3 。l 中整数( i n t e g e r ) 为 1 6 b i t s ,在w i n d o w s9 5 中整数为3 2 b i t s ,在d e ca l p h a 中整数为6 4 b i t s , 在i n t e l4 8 6 中为3 2 b it s 。通过定义独立于平台的基本数据类型及其运算, j a v a 数据得以在任何硬件平台上保持一致。j a v a 语言的基本数据类型及其 表示方式如下:b y t e 8 一b i t 二进制替码,s h o r t1 6 - b i t 二进制毒 码,i n t 3 2 一b i t 二进制孙码,l o n g6 4 - b i t 二进划补码,f l o a t3 2 - b i ti e e e7 5 浮点数,d o u b l e3 2 - b i ti e e e7 5 4 浮点数,c h a r1 6 - b i tu n i c o d e 字符。 在任何j a v a 解释器中,数据类型都是依据以上标准具体实现的。因为 几乎目前使用的所有c p u 都能支持以上数据类型、8 - - 6 4 位整数格式的补 码运算和单双精度浮点运算。j a v a 编译器本身就是用j a v a 语言编写的。 j a v a 运算系统妻冬编制依擐p o s i x 方便移植的限铡,耀a n s ic 语言写成。j a v a 武汉理工大学硕士学位论文 语言规范中也没有任何“同具体实现相关”的内容。 ( 9 ) 解释的 j a v a 解释器( 运行系统) 能直接运行目标代码指令。链接程序通常比编 译程序所需资源少。 ( i o ) 高性能 如果解释器速度不慢,j a v a 可以在运行时直接将目标代码翻译成机器 指令。s u n 用直接解释器一秒钟内可调用3 0 0 ,0 0 0 个过程。翻译目标代码的 速度与c c + + 的性能没什么区别。 ( 1 1 ) 多线程 j a v a 提出的多线程功能使得在一个程序罩可同时执行多个小任务。线 程一有时也称小进程一是一个大进程里分出来的小的独立的进程。因为 j a v a 实现的多线程技术,所以比c 和c + + 更键壮。多线程带来的更大的好处 是更好的交互性能和实时控制性能。当然实时控制性能还取决于系统本身 ( u n i x ,w i n d o w s ,m a c i n t o s h 等) ,在开发难易程度和性能上都比单线程要好。 任何用过当前浏览器的人,都感觉为调- - n 图片而等待是一件很烦恼的事 情。在j a v a 里,可用一个单线程来调一副图片,而可以访问h t m l 罩的其它 信息而不必等它。 j a v a 的动态特性是其面向对象设计方法的发展。它允许程序动态地装入 运行过程中所需要的类,这是c + + 语言进行面向对象程序设计所无法实现 的。在c + + 程序设计过程中,每当在类中增加一个实例变量或一种成员函数 后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。j a v a 从 如下几方面采取措施来解决这个问题。j a v a 编译器不是将对实例变量和成 员函数的引用编译为数值引用,而是将符号引用信息以字节码以字节代码的 形式传递给解释器,再由解释器完成动态连接类后,将符号引用信息转换为 数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延 迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至 于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅 在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确 定引用的好处是可以使用已被更新的类,而不必担心影响原有的代码。如 果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该 武汉理工大学硕士学位论文 类进行更新,而不会使任何引用该类的程序崩溃。j a v a 还简化了使用一个 升级的或全新的协议的方法。如果系统运行j a v a 程序时遇到了不知怎样处 理的程序,没关系,j a v a 能自动下载所需要的功能程序。 2 2j a v a b e a n j a v a b e a n 是一个特殊的类,这个类必须符合j a v a b e a n 规范。j a v a b e a n 原来是为了能够在一个可视化的集成开发环境中可视化、模块化地利用组件 技术开发应用程序而设计的。不过,在j s p ,不需要使用任何可视化的方 面,但仍然需要利用j a v a b e a n 的属性、事件、持久化和用户化来实现模块化 的功能。下面分别介绍j a v a b e a n 的属性、事件、持久化和用户化。 2 2 1j a v a b e a n 的属性 j a v a b e a n 的属性与一般j a v a 程序中所指的属性,或者说与所有面向对象 的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的 变量。在j a v a b e a n 设计中,按照属性的不同作用又细分为四类:s i m p l e ,i n d e x , b o u n d 与c o n s t r a i n e d 属性。 ( 1 ) s i m p l e 属性 s i m p l e 属性表示伴随有一对g e t g e t 方法的变量。属性名与和该属性相 关的g c t s e t 方法名对应。 ( 2 ) i n d e x e d 属性 i n d e x e d j 属性表示一个数组值。使用与该属性对应的g e t s e t 方法可取得数 组中的数值。该属性也可一次设置或取得整个数组的值。 ( 3 ) b o u n d 属性 b o u n d 属性是指当该种属性的值发生变化时,要通知其他的对象。每次 属性值改变时,这种属性就触发一个p r o p e r t y c h a n g e 事件( 在j a v a 程序中,事 件也是一个对象) 。事件中封装了属性名、属性的原值、属性变化后的新值。 这种事件传递到其他的b e a n ,至于接收事件的b e a n 应做什么动作,由其自 己定义。当p u s h b u t t o n 的b a c k g r o u n d 属性与d i a l o g 的b a c k g r o u n d 属性绑定时, 若p u s h b u t t o n i 拘b a c k g r o u n d 属性发生变化,d i a l o g 的b a c k g r o u n d 属性也发生 7 武汉理工大学硕士学位论文 同样的变化。 ( 4 ) c o n s t r a i n e d 属性 j a v a b e a n 的c o n s t r a i n e d 属性是指当这个属性的值要发生变化时,与这个 属性已建立了某种连接的其他j a v a 对象可否决属性值的改变。c o n s t r a i n e d 属 性的监听者通过抛p r o p e r t y v e t oe x c e p t i o n 来阻止该属性值的改变【2 i 。 2 2 2j a v a b e a n 的事件 事件处理是j a v a b e a n 体系结构的核心之一。通过事件处理机制,可让一 些组件作为事件源,发出可被描述环境或其他组件接收的事件。这样,不同 的组件就可在构造工具内组合在一起,组件之间通过事件的传递进行通信, 构成一个应用。从概念上讲,事件是一种在“源对象”和“监听者对象”之 间某种状态发生变化的传递机制。事件有许多不同的用途,例女n w i n d o w s 系统中常要处理的鼠标事件、窗口边界改变事件、键盘事件等。在j a v a 和 j a v a b e a n 中则定义了一个一般的、可扩充的事件机制,这种机制能够: 对事件类型和传递模型的定义和扩充提供一个公共框架,并适合于广 泛的应用。 与j a v a 语言和环境有较高的集成度。 事件能被描述环境捕获和触发。 能使其他构造工具采取某种技术在设计时直接控制事件、事件源和事 件监听者之间的联系。 事件机制本身不依赖于复杂的开发工具。 特别地,还应当: 能够发现指定的对象类可以生成的事件。 能够发现指定的对象类可以观察( 监听) 到的事件。 提供一个常规的注册机制,允许动态操纵事件源与事件监听者之| 白j 的 关系。 不需要其他的虚拟机和语言即可实现。 事件源与监听者之间可进行高效的事件传递。 能完成j a v a b e a n 事件模型与相关的其他组件体系结构事件模型的中 立射。 r 武汉理王大学硕士学位论文 ( 1 ) 概述 j a v a b e a n 事件模型总体结构的主要构成:事件从事件源到监听者的传递 是通过对目标监听者对象的j a v a 方法调用进行的。对每个明确的事件发生, 都相应地定义个明确的j a v a 方法。这些方法都集中定义在事件监骄者 ( e v e n t l i s t e n e r ) 接口中,这个接1 2 1 要继承j a v a u t i l e v e n t l i s t e n e r 。实现了 事件监听者接口中一些或全部方法的类就是事件监听者。伴随着事件的发 生,相应的状态通常都封装在事件状态对象中,该对象必须继承自 j a v a u t i l e v e n t o b j e c t 。事件状态对象作为单参传递给应响应该事件的监听者 方法中。发爨菜种特定事件的事件源豹标识是:遵从规定的设计格式为事件 监听者定义注册方法,并接受对指定事件监听者接阴实例的引用。有时,事 件监听者不能壹接实现事件监听者接口,或者还有其他的额外动 乍时,就要 在一个源与其他一个或多个监听者之间插入一个事件适配器类的实例,以建 立它们之间的联系。 ( 2 ) 事件状态对象 与事件发生有关的状态信息般都封装在一个事件状态对象中,这种对 象痢a v a u t i l 。e v e n t o b j e c t 的子类。按设计习惯,这种事件状态对象类名应以 e v e n t 结尾。 ( 3 ) 事件监听者接口与事件监听者 由于j a v a 事件模型是基于方法调用的,因而需要个定义并组织事件操 纵方法的方式。j a v a b e a n 中,事件操纵方法都被定义在继承了 a v a 。u t i l e v e n t l i s t e n e r 类的事件监听者( e v e n t l i s t e n e r ) 接口中,按规定,e v e n t l i st e n e r 接1 2 1 的命名要以l i s t e n e r 结尾。任何一个类如果想操纵在e v e n t l i s t e n e r 接口 中,定义的方法都必须以实现这个接口方式进行。这个类就是事件监听者。 ( 4 ) 事件监听者的注册与注销 为了让各种可能的事件监听者把自己注船入合适的事件源中,就建立源 与事件监听者间的事件流,事件源必须为事件监听者提供注册和注销的方 法。在前面的b o u n d 属性介绍中,已看到了这种使用过程,在实际中,事件 监听者的注册和注销要使用标准的设计格式: p u b l i cv o i d a d d ( l i s t e n e r ) ; p u b l i cv o i dr e m o v e 武汉理:大学硕士学位论文 l i s t e n e r ) ; ( 5 ) 适配类 适配类是j a v a 事件模型中极其重要的一部分。在一些应用场合,事件从 源到监听者之间的传递要通过适配类来“转发”。例如:当事件源发出一个 事件,而有几个事件监听者对象都可接收该事件,但只有指定对象做出反应 时,就要在事件源与事件监听者之间插入一个事件适配器类,由适配器类来 指定事件应该是由哪些监听者来响应。适配类成为了事件监听者,事件源实 际是把适配类作为监听者注册入监听者队列中,而真工f 的事件响应者并未在 监听者队列中,事件响应者应徽的动作由适配类决定。冒翦绝大多数的开发 工具在生成代码时,事件处理都是通过适配类来进行的。 2 2 3 持久化 巍j a v a b e a n 在构造工具内被用户化,并与其他b e a n 建立连接之后,它的 所有状态都应当可被保存,下一次被装载进构造工具内或在运行时,就应当 是上一次修改完的信息。为了能做到这一点,要把b e a n 的某些字段的信息保 存下来,在定义b e a n 时要使它实现 a v a i o s e r i a l i z a b l e 接曰。例如: p u b l i cc l a s sb u t t o ni m p l e m e n t sj a v a i o s e r i a l i z a b l e ( ) 实现了序列纯接黯i 搀b e a n 中字段的信息将被自动保存。若不想保存某些字 段的信息则可在这些字段前冠以t r a n s i e n t 或s t a t i c 关键字,t r a n s i e n t 茅1 s t a t ic 变量的信息是不可被保存的。通常,一个b e a n 所有公开出来的属性都应当是 被保存的,也可有选择地保存内部状态。b e a n 开发者在修改软件时,可以添 加字段,移走对其他类的引用,改变一个字段的p r i v a t e p r o t e c t e d p u b l i c 状态, 这些都不影响类的存储结构关系。然而,当从类中删除一个字段,改变一个 变量在类体系中的位置,把某个字段改成t r a n s i e n t s t a t i c ,或原来是 t r a n s i e n t s t a t i c ,现改为别的特性时,都将弓| 起存储关系的变化。j a v a b e a n 的存储格式j a v a b e a n 组件被设计出来后,一般是以扩展名为jar 的zip 格式 文件存储,在j a r 中包含与j a v a b e a n 有关的信息,并以man lfest 文件指 定其中的哪些类是j a v a b e a n 。以j a r j 件存储的j a v a b e a n 在网络中传送时极大 地减少了数据的传输数量,并把j a v a b e a n 运行时所需要的一些资源捆绑在一 起。这里主要论述 j a v a b e a n 的一些内部特性及其常规设计方法,参考的是 1 0 武汉理:【大学硕士学位论文 j a v a b e a n 规范粥。随着世界各大i sv 对j a v a b e a n 越来越多的支持,规范在一 些缁节上还在不断演化,徨基本框架不会再有大的变动。 2 2 4 用户化 j a v a b e a n 开发者可以给一个b e a n 添加定制器( c u s t o m i z e r ) 、属性编辑 器( p r o p e r t y e d i t o r ) 和b e a n l n f o 接1 2 1 来描述一个b e a n 的内容,b e a n 的使用者 可在构造环境中通过与b e a n 附带在一起的这些信怠来用户化b e a n 的外观和 应做的动作。一个b e a n 不必都有b e a n c u s t o m i z e r 、p r o p e r t y e d i t o r 和b e a n l n f o , 根据实际情况,这些是讶选的,当有些b e a n 较复杂时,就要提供这些信息, 以w i z a r d 的方式使b e a n 的使用者能够定制个b e a n 。有些简单的b e a n 可能 没有这些信息,则构造工具可使用自带的透视装置,透视出b e a n 麴疼容,荠 把信息显示到标准的属性表或事件表中供使用者定制b e a n ,前几节提到的 b e a n 的属性、方法和事件名要以一定的格式命名,主要的l 乍用就是供开发工 具对b e a n 进行透视。当然也是给程序员在手写程序中使用b e a n 提供方便, 使其能观其名,知其意。 ( 1 ) 定制器接团 当一个b e a n 有了自己的定制器时,在构造工具内就可展现出自己的属性 表。在定义定制器时必须要实现j a v a 。b e a n 。c u s t o m i z e r 接口。 ( 2 ) 属性编辑器接口 一个j a v a b e a n 可提供p r o p e r t y e d i t o r 类,为指定的属性创建个编辑器。 这个类必须继承t ! l j a v a 。b e a n p r o p e r t y e d i t o r s u p p o r t 类。构造工具与手写代码 的程序员不直接使用这个类,而是在下- d , 节的b e a n l n f o 中实例化并调用这 个类。 ( 3 ) b e a n l n f o 接口 每个b e a n 类也可能有与之相关l 捻b e a n l n f o 类,在其中描述了这个b e a n 在 构造工具内出现时的外观。b e a n l n f o 中可定义属性、方法、事件,显示它们 的名称,提供篱单的帮助说明f 3 1 1 4 】1 5 l 。 武汉理工大学硕士学位论文 2 3j s p 技术 j a v as e r v l e t 的最大缺点就在于没有把阙站靛逻辑和趸露的输出分开,导 致整个s e r v l e t 代码混乱不堪。为了解决j a v as e r v l e t 的这种缺点,s u n 推出了 j a v as e r v e r p a g e s 叮s p 。 2 3 1j s p 技术概述 按照脚本语言是服务于某一个子系统的语言这种论述,j s p 应当被看作 是一耪脚本语言,然丽,作为一种脚本语言,j s p 又显得过于强大了,在j s p 中几乎可以使用全部的j a v a 类。作为一种基于文本的、以晟示为中心的开发 技术,j s p 提供了j a v as e r v l e t 的所有好处,并且,当与个j a v a b e a n 类结 合在一起时,提供了一种使内容和显示逻辑分开的简单方式。分开内容和显 示逻辑的好处是,更新页面外观的人员不必懂得j a v a 代码,而更新j a v a b e a n 类的人员也不必是设计网页的行家里手,就可以用带j a v a b e a n 类的j s p 页 面来定义w e b 模板,以建立一个由具有相似的外观的页藤组成的网站。 j a v a b e a n 类完成数据提供,这样在模板中就没有j a v a 代码,这意味着这些模 板可以由一个h t m l 编写人员来维护。当然,也可以利用j a v as e r v l e t 来控 制网站的逻辑,通过j a v as e r v l e t 调用j s p 文件的方式来将网站的逻辑和内容 分离。本章我们藤面将对这种分离网站的逻辑和内容的设计方法徽一些更深 入的描述。在选择使用一个j a v as e r v l e t ,还是一个j s p 页蕊时,要记住的是, j a v as e r v l e t 是一个程序设计工具,它最适用于不需要频繁修改的低级应用 功能;i g s s p 页蟊则通过以显示为中心的描述性的方法将动态内容和逻辑结 合在一起。对予使用一个a s p 页露的篾单的基于w e b 的应用程序,可以使用 定制标记或者s c r i p t l e t ,而不是使用j a v a b e a n 类来将内容与应用逻辑结合起 来。定制标记被打包到一个标记库中,并被引入到一个j s p 页面中。s c r i p t l e t 是直接嵌入在j s p 页面中的缀小i 黧j j a v a 代码段。一般来说,在实际的j s p 引擎 中,j s p 页面在执行时是编译式,而不是解释式的。解释式的动态网页开发 工具如a s p 、p h p 3 等由于速度等原因已经满足不了当前大型电子商务应用 的需要了,传统的开发技术都在向编译执行的方式改变,如a s p a s p + ; 武汉理l :大学硕士学位论文 p h p 3 一p h p 4 。而尽管j s p 的规范书中并没有要求实际的j s p 引擎要使用编译 式的执行方式,但一般是不会使用解释的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论