(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf_第1页
(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf_第2页
(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf_第3页
(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf_第4页
(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)标准信息管理系统的研制与开发.pdf.pdf 免费下载

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

文档简介

摘要 标准信息是指企业基本信息、企业标准备案、产品执行标准等 信息。通过网络化及计算机技术手段提供标准信息的管理与服务。 在填补省内空白的基础上进行二期开发。 本系统既能减轻管理人员的工作量,又能提高管理部门对企业 信息、企业标准、产品标准等信息的检索效率和管理水平,实现为 企业服务,为决策者提供科学决策依据。 考虑到软、硬件环境,本次开发的后台数据库采用o r a c l e 、前 台采用j a v a 及j 2 e e 分布式多层体系结构技术、采用j s p 、t o m c a t 、 s t r u t s 技术实现,并进一步研究数据库的设计与实现,数据维护, 数据检索,数据安全等。 关键词:标准信息o r a c l e 数据库j s p 技术s t r u t s 架构 j 2 e e 分布式多层体系结构 a b s i k a c l s t a n d a r di n f o r m a t i o nr e f e r st ot h eb a s i ci n f r i r m a t i o no fe n t e r p r i s e s t a n d a r dr e c o r d so fe n t e r p r i s e s t a n d a r dt h a tp r o d u c t sc a r r yo u t i to f f e r s s t a n d a r di l l f o r m a t i o nm a n a g e m e n ta n ds e r v i c eb yt h em e t h o d so f n e t w o r ka n dc o m p u t e rt e c h o n o l g y o nt h eb a s i so ff i l l i n gi np r o v i n c i a l b l a n k s ,ie n g a g et h es e c o n ds t a g ed e v e l o p m e n t t h i ss y s t e mc a nb o t hr e d u c ea m o u n to fw o r ko fc o n t r o l l e ra n d i m p r o v ef i n d i n ge f f i c i e n c ya n dl e v e lo fm a n a g e m e n t1 h a tm a n a g e m e n t d e p a r t m e n t su s ei n f o r m a t i o n ,e n t e r p r i s es t a n d a r d ,p r o d tc t ss t a n d a r da n d f i n a l l yo f f e r sc o n t r o l i n gp o l i c i e so fs c i e n c et oe n t e r p i s es e r v i c e sa n d p o l i c y _ m a k e r s o r a c l ei su s e dt oe x p l o i tt h eb a c kd a t a b a s e ,a n djl v aa n ds t r u c t r a l t e c h o n o l g yo fj 2 e es c a t t e r i n gm u l t i c o a t sa r eu s e dt oe x p l o i tt h ef r o n t d a t a b a s eb yj s p ,t o m c a t ,s t r u t st e c h o n o l g yb e c a u s eo fc o n d i t i o n so f s o f t - h a r dl e v e lw a r e t h ep a p e rs t u d i e st h ed e s i g no fd a t a b a s ea n dr e a l i z e t om a i t a i nd a t a b a s ef i n dd a t aa n dd a t as a f e t y k e yw o r d s :s t a n d a r di n f o r m a t i o n o r a c l ej s ps t r u t s s y s t e m s t r u c t i o no fj 2 e e s c a t t e r i n gm u l t i c o a t s 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,( ( 标准信息 管理系统的研制与开发是本人在指导教师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内 容外,本论文不包含任何其他个人或集体已经发表或撰写 过的作品成果对本文的研究做出重要贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到本声明 的法律结果由本人承担。 作者签名:垒1 超窒望盟年立月;翌日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学 硕士、博士学位论文版权使用规定”,同意长春理工大学 保留并向国家有关部门或机构送交学位论文的复印件和 电子版,允许论文被查阅和借阅。本人授权长春理工大学 可以将本学位论文的全部或部分内容编入有关数据库进 行检索,也可采用影印、缩印或扫描等复制手段保存和汇 编学位论文。 作者签名:主j 迸主盟年互且兰z 日 指导导师躲强豇、芝7 2 年山孕 第一章绪论 1 1 系统网络平台的建设背景、目的和意义 2 0 0 5 年5 月以前吉林省技术监督局下属各单位的标准信息管理 属于手工管理,急需将标准信息管理由手工管理向计算机管理转 变。而当时省内市场上此类管理软件属于空白,国内市场上此类管 理软件也几乎属于空白,因此本软件的开发具有重大意义。本人于 2 0 0 5 年1 月至2 0 0 5 年5 月独立开发了标准信息管理系统一期 版本。当时由于吉林省技术监督局各下属单位的软、硬件基础条件 情况有很大的差异,不能全体采用o r a c l e 等网络数据库,因此采 用a c c e s s 做后台数据库,配合适当的前台应用程序v i s u a lb a s i c 开发出了吉林省标准信息管理的一期软件系统。 2 0 0 5 年5 月一期版本的软件系统投入了使用。由于软件运行效 果很好,为了全面适应新的软硬件条件,为了向国内各兄弟省市推 广使用,为了将此软件报送国家技术监督局争取在国内推广使用, 2 0 0 5 年8 月吉林省技术监督局提出进行标准信息管理系统的二 期开发,并提出了系统进一步完善的目标和设想。考虑到新的软硬 件条件,本次开发时采用o r a c l e 作为后台数据库、前台软件采用 j a v a 及j 2 e e 分布式多层体系结构技术、采用j s p 、t o m c a t 、s t r u t s 技术,并进一步研究数据库的设计与实现,数据维护,数据检索, 数据安全等。通过网上的规范性管理,实现对企业信息、标准信息、 产品信息的检索、查阅、统计、打印,从而达到对企业信息、标准 信息、产品信息三位一体的管理。通过对标准文本的查阅,使用户 及时获取准确信息。 标准信息处理的工作是标准化管理部门不可缺少的一项重要 管理工作。标准信息管理系统是标准信息处理的网络化和电子 化,旨在开拓省级标准信息管理系统新的工作模式和方法,通过互 联网络及信息技术手段,实现用户与服务部门之间的需求信息动态 交流及快速反应。本软件既减轻了管理人员的工作量,又提高了管 理人员对于企业标准、产品标准等信息的检索效率和管理水平,实 现为企业服务、为决策者提供科学决策依据,填补了省内空白。 本软件系统对于提高企业管理水平,提高企业执行标准的整体 水平,提高工作效率和产品质量,提高企业在国内外市场的竞争力, 提高经济效益有着重要的现实意义。 1 2 国内外研究现状 在国外很多标准化机构早已实现了标准信息管理的电子化及 网络化,中国的标准化工作也提出要强化“标准信息管理系统”的 网络建设。目前国内绝大多数标准信息管理系统部门都在采用传统 的服务方式,也都在探索新的服务方式,有的地方实现了标准扫描 文档通过电子邮件传递及下载。 国内外此方面的可参考的资料极少。本省此方面的可参考资料 更是属于空白。 1 3 技术路线 根据软件目标及要求,采用b s 结构,具体采用m v c 模式,采 用s t r u t s 进行架构,采用j s p 技术实现表示层,采用j 2 e e 分布式 多层体系构建标准信息管理系统的业务层。采用t o m c a t 作为服务 器,采用j d b c 及j a v a b e a n 实现对数据库的连接,通过s e s s i o n 会 话技术来跟踪用户的操作状态及实现页面转换。对于上网用户分配 其不同的访问权限,对于重要的数据实行授权访问等。可对标准电 子文本进行查阅,为了保护标准版权,通过加密技术实现防文本下 载打印功能。 1 4 本文的主要内容 总体来讲从以下几方面入手: 1 、研究j s p 技术、m v c 模式、s t r u t s 架构、j 2 e e 等技术。 2 、对现有系统“标准信息管理系统”的进一步分析。 3 、用0 r a c l e 设计“标准信息管理系统”数据库并把原有数据 库转移到新平台。 4 、采用t o m c a t 作为服务器,采用b s 结构,采用m v c 模式, 采用s t r u t s 架构,采用j s p 实现表示层,采用j 2 e e 实现业务层, 2 来构建“标准信息管理系统”。还采用j d b c 及j a v a b e a n 实现对数 据库的连接。 5 、通过s e s s i o n 会话技术来跟踪用户的操作状态及实现页面 转换。实现数据安全,对于上网用户分配其不同的访问权限,对于 重要的数据实行授权访问等。 1 5 本论文结构 本论文结构如表1 - 1 所示: 表1 - 1 本论文结构表 第一章绪论 介绍了系统的建设背景、目的和意义,国内外研究现状, 简要说明了系统网络平台的技术路线、本论文的主要内容。 第二章系统环境及关键技术 对于选择运行环境及开发技术进行了充分的对比分析;介 绍了系统采用的主要技术。 第三章系统需求分析与总体设计 介绍j 半台的总体架构及需求分析,给出了总体设计。 第四章系统详细设计与实现 介绍了本系统的详细设计与实现。 第五章系统调试运行与发布 主要对本系统的调试还仃与发布进行介耋f ;。 第六章总结与展望 评价了本系统的研究成果,并对下一步工作进行了初步计 划。 3 第二章系统环境及关键技术 在“标准信息管理系统”网络平台的开发前期,对于选择运行 环境及开发技术进行了充分的对比分析。最终系统采用j 2 e e 与分 布式多层体系结构进行构建,采用j s p 作为表现层环境。通过 s e s s i o n 会话技术来跟踪用户的操作状态及实现页面转换。采用 b l v c 模式,具体采用s t r u t s 进行架构。本章对此进行介绍。 2 1j 2 e e 与分布式多层体系结构 j 2 e e 是一个开放的、基于标准的平台,适用于用来简化诸多n 层结构的、面向w e b 的、以服务器为中心的企业级应用解决方案 的开发、部署和管理n ,。 j 2 e e 还为这些组件提供了一整套企业服务,通过自动化的方 式完成应用程序开发中的诸多耗时且费力的艰难工作,为用户提供 一种可创建广泛兼容的企业解决方案而无需进行复杂编程的平台。 利用这一优势可以方便地开发出高质量的、适合企业使用的应用程 序,还可极大地减少产品研发上市的时间、成本和风险。 在实际构建的企业信息系统中,需要根据j 2 e e 规范定义的分 布式多层应用模型将不同性质和用途的组件部署到不同类型的应 用服务器中。 j 2 e e 规范根据企业信息系统各个组成部分在功能上的区别,将 整个应用系统划分为客户层、中间层( 其中可包括w e b 层、业务层) 和企业信息系统层三层结构“3 ,如图2 1 所示。各个应用层分别配 置在不同类型的应用服务器中。”。 4 j 2 e e 应用程序1 j 2 e e 应用程序2 圆圈 ( j s p 页面) 客户司孑 j 圄圄嬲习 j 2 e e 服务器 数据库 服务器 图2 1基于j 2 e e 规范划分的企业应用系统逻辑层 2 2j a v as e r v i e tp a g e s 技术 j s p ( j a v as e r v l e tp a g e s ) 是s u n 公司推出的基于 j a v a s e r v l e t 以及整个j a v a 系统的w e b 开发技术,是s e r v l e t 技术的扩展“1 。事实上,j s p 是j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n , j a v a2 企业版) 平台的关键部分,j s p 能够利用j a v a 企业版类库 的许多优点,比如j d b c 、j n d i 和e j b ( e n t e r p r i s e j a v a b e a n s , 企业级j a v a b e a n s ) 。j s p 完全解决了目前a s p 、p h p 的一个通病即 脚本级执行,每个j s p 文件总是先被编译成s e r v l e t ,然后再由 s e r v l e t 引擎运行”1 。 2 2 1j s p 、a s p 、p h p 技术比较 j s p 为基于j a v a 环境开发多层结构的动态w e b 应用程序提 供一种方便、快捷的方法。对a s p 、p h p 、j s p 的研究如表2 一l 所示: 5 叫一 b 务 晰 蚜 表2 - 1a s p 、h i p 、j s p 技术的比较 比各种特点 较语言 项 理p h pp h p 的技术体系无法将表示层与业务层分离,因此不 论符合分布式应用体系。 体a s pa s p 的技术体系符合分布式应用体系。w i n d o w s d n a 技 系术的核心就是a s p + c o m d o o m 技术。 比 j s pj s p 的技术体系符合分布式应用体系。在s u n 公司推 较 出的j 2 e e ( j a v a 2e n t e r p r i s ee d i t i o n ) 分布式企 业计算体系中,利用j a v a b e a n e j b 技术编写业务层 的功能是非常强大的,但对于写表示层就很不方便【6 】, 由s e r v l e t 发展而来的j s p 就主要是为了方便书写 表示层而设计的。通过j s p 调用j a v a b e a n ,实现两层 的整合,达到分布式应用l ”。 开a s pa s p 不具有跨平台性 发j s pj s p 同p h p 类似,但j s p 可以更广泛地应用在n t 、u n i x 平同和l i n u x 上。从一个平台移植到另外一个平台,j s p 和j a v a b e a n 甚至不用重新编译,因为j a v a 字节码都 口p h p 比是标准的、与平台无关的。这种与服务器硬件和操作 较系统平台的无关性是j s p 相对于其它动态网页技术最 大的一个优点。 性 a s p ,a s p ,p h p ,j s p 在性能上有很大差距。在同等条件下, 能 p h p 。 j s p 的性能远远优于a s p 、p h p ,j s p 要先编译成字节 比j s p码( b y t ec o d e ) 码,再由j a v a 虚拟机( j a v av i r t u a l 较m a c h i n e ) 解释执行,比源码解释的效率高;因此,j s p 的执行比每次都要解释执行的a s p 代码要快,尤其是 在代码中存在循环操作时,j s p 的速度要快1 到2 个 数量级【8 1 。 开 p h p p h p 不适合应用于大型站点,在此不作详细介绍。 发j s pj s p 与a s p 相比较而言,j s p 的一些特点使得开发更迅 效与速、快捷。绝大多数j s p 页面依赖于可重用的,跨平 窒a s p 台的组件( j a v a b e a n s 或者e n t e r p r i s e j a v a b e a n st m 比组件) 来执行应用程序所要求的更为复杂的处理。因 较为在j s p 页面中,声称内容的逻辑封装在处于业务层 6 的j a v a b e a n 或e j b 中,然后通过嵌入页面的脚本代 码生成具体的内容,具体实现则是由页面文件负责完 成的。这样,对于一个大型的分布式应用系统来说, 非常有利于协作开发【9 】o 与 p h pp h p 支持的数据库极其广泛,但p h p 提供的数据库接 数口支持不统一,这是p h p 的一个弱点。 据a s pa s p 使用o d b c 通过a d o ( a c t i v exd a t ao b j e c t ) 连 库接数据库。 连j s pj s p 对数据库的访问主要通过j d b c ( j a v ad a t a b a s e 接 c o n n e c t i v i t y ) 来实现的。对于只支持o d b c 的数据 比 库,可以通过j d b c o d b c 桥将j d b c 调用转化为 较o d b c 调用来实现访问。这也就意味着j s p 可以比a s p 访问更多类型的数据库【l o 】。 安 p h p 安全的问题使得许多传统行业对i n t e r n e t 望而却 全步,特别是涉及资金支付和认证方面的电子商务,安 性全更是第一要考虑的因素。p h p 的运行,是靠p h p 的 比语言解释器来完成的,根据里边定义的程序来访问数 较据库,读写文件或执行外部命令,并将执行的结果组 织成s t r i n g 返回给w e bs e r v e r 然后当作h t m l 格式 的文件发送给浏览器读取文件和执行外部命令,这些 都是安全隐患之所在。p h p 的另外一个特性是执行外 部命令,在u n i x 下比较多见i s ,e c h o 等等,其实这 是最容易出问题的。 a s pa s p 只在服务器端运行,将执行结果以h t m l 形式返回 客户端浏览器,由此屏蔽源码程序。但微软的w e b 服 务器产品i n t e r n e ti n f o 瑚a t i o n s e r v e r4 0 中存在 一个严重的系统漏洞,该漏洞导致对于i i s 服务器的 “服务拒绝攻击”,在这种情况下,可能导致任何二进 制代码在服务器上运行。 j s pj s p 则要先编译成字节码,再由j a v a 虚拟机执行,源 码相对不易被下载,尤其在用了j a v a b e a n 后安全性更 高。j a v a 能通过异常处理机制来有效防止系统的崩溃 f l l 】。 7 总之,j s p 模型是在a s p 之后定义的,j s p 借用了a s p 的许多优 点,如s e s s i o n ,a p p l i c a t i o n 等对象。同时j s p 使用灵活而强大 的j a v a 语言,而不是低效的s c r i p t i n g 语言。a s p 开发者只能使 用基于w i n d o w s 平台的技术,而j a v a 和j s p 是跨平台的,因此 在开发时表现层采用了j s p 。 2 2 2 页面转换 2 2 2 1 画面数据的传递 对基于b s 结构的w e b 开发而言,画面数据的传递是一个重 要的环节,我们不仅需要以正确的格式显示数据,还要根据业务的 逻辑关系传递画面之间所需要的数据。我们知道,在物理上服务器 端和用户端是完全分开的,那么,处于用户端画面的数据是静态的, 只有在用户端发出请求,才会通过h 1 t p 将画面数据传送给服务器 端,尽管数据可以保留在服务器端( 如利用s e s s i o n 对象) ,但是它没 有提供对数据的安全的管理机制,并且随着项目规模的扩大,需要 保存的数据量也会增大,其复杂性也会提高。同时,不同的页面迁 移,以及可能发生的多种错误情况,也给数据传递的任务提出了更 高的要求。但不论如何,最终的目的是:保证数据传递的有效和正 确性。 2 2 2 2 画面迁移关系分析 在浏览画面时,大致可能有以下七种不同的画面迁移顺序: 情况一 正常的画面迁移,这是最普通的一种情况。根据业务的关系, 依次浏览各个画面。可通过r e q u e s t 或s e s s i o n 进行传递重要数据。 如图2 2 所示: 一一一d 画由1画由2画面3四面4 图2 2 画面迁移关系一 8 情况二 在正常画面迁移的过程中,用户可以按“返回”按钮,重新显 示前一个画面的内容,但同时要求保证“恢复原貌”,也就是说, 显示的画面和原来的内容一模一样( 如果在前一画面有用户输入信 息,同样要恢复1 。同样,我们也可以利用r e q u e s t 或s e s s i o n 来进行 工作,但是随着业务内容的扩大和传递数据量的增加,利用r e q u e s t 或s e s s i o n 对象可能会使程序的复杂性增大。如图2 3 所示: 臼2 u 。l 。u l 画面1画面2画面3画面4画面5 图2 3 画画迁移关系二 情况三 在程序执行的过程中,由于主观或者客观的原因,总是会出现 各种错误。通常,我们会以错误页面( e r r o rp a g e ) 的形式在用户端显 示,并尽可能说明错误发生的原因,待用户确认后返回。针对这种 情况,如果是严重错误,比如无权限、s e s s i o n 失效等,返回的将是 默认的重新登录页面;如果是一般性错误,比如输入项的内容不合 法等,返回的将是错误发生前的画面,并且要保证恢复到出错前的 画面状态。在遇到这种情况的对侯,就需要我们进行合理的设计, 确保在进入错误画面时,保存所有前画面的状态。如图2 4 所示: 错误画面 山一臼一基一_ 画向1画面2画面3画面4 图2 4 画画迁移关系三 情况四 我们也经常遇到这种情况,为了提示用户完成一项操作,需要 9 依次显示一系列的画面提示用户交互需要的信息,只有到最后一步 才会根据前面操作收集的信息执行真正的业务逻辑。在这里,我们 称这些为完成一项任务而出现的画面为画面组。如下图,从画面1 进入画面组1 的时侯开始,从画面2 到画面3 和从画面3 到画面4 , 都需要保存中间的数据,等到由画面4 进入画面5 时,才会执行业 务逻辑,并在画面5 中显示适当的结果。如图2 5 所示: l 画面l 图2 5 画面迁移关系四 口 画面5 情况五 与情况二类似,只是在画面组内发生的返回的情况。如图2 6 所示: u 画面1 图2 6 画囱迁移关系五 画面5 情况六 如果在画面组内出现错误,则按照情况三的处理,显示出错画 面,但是在画面组内只要出现错误,返回的画面是画面组的首画面。 这是因为由于不确定的因素导致错误,如果还是返回出错前画面, 出错的可能性仍是很大,所以,直接返回组内首画面重新开始,可 以大大简化处理的复杂性。如图2 7 所示: 1 0 u 画面1 错误画面 图2 7 画面迁移关系六 u 画面5 情况七 当从画面组出来,又返回时,则按正常逻辑显示画面组的最后 一个画面,并要恢复到原来状态。如图2 8 所示: l j 画面l 图2 8 画面迁移关系七 2 3 利用自定义标签库设计 如果使用j s p 制作项目而没有用到j s p 标签库的话,我们就 没有真正发挥j s p 的优点。事实上,标签库是j s p 最令人瞩目的 强大工具之一。 2 3 1 标签库的重要性 在j s p 和a s p 这两种服务器端编程解决方案中,j s p 的功能 要比a s p 强大得多。为什么很多人选择j s p 作为自己主要的服务 器端应用程序编写工具呢? 除了j s p 迷人的特性和功能以外,标 签库是让我们做出这一选择的最重要的因素之一。这么说的原因 有两个:维护和开发速度。在一个服务器页面上,你可以很方便地 混合各种不同的脚本方法和对象。正是这些程序给予了服务器端 脚本强大的信息处理能力。它可以让服务器端程序设计人员开发出 动态的、灵活的w e b 页面。但是,另一方面,脚本的混乱程序却 很难得到维护,特别是随着项目规模的不断增长而显得尤其严重。 我们将不得不让j a v a 程序员来建立和维护最终产品,结果让他们 成为了一般的w e b 设计人员。服务器端应用程序在最终的图形设 计和实现这两方面上都被弱化了。更糟糕的是,因为这些页面对代 码而言变得很复杂,开发速度也就相应降低了。最后,许多服务器 端w e b 应用程序很晚才得以推出而且成本也无法预先估计。 此外,在实现了这些应用程序之后,许多公司还必须去寻找合 格的程序员来维护这种乱成一锅粥的代码。这是我们不愿意看到的 结果,因此,为了克服这个问题,a s p 引进了c o m 对象技术,而 j s p 则提供了j 2 e e 作为对策。这些解决方案都是建立在集中的、 可重用代码库的机制之上。但是,他们使用起来可就太难了,耗费 的时间也很多。而且,这些解决方案并没有减少建立混乱代码的 诱惑,所以,开发w e b 应用程序还是要面对把前台显示和业务逻 辑完全分开的问题。 j s p 为我们提供了解决这一问题的最佳方案,标签库提供了建 立可重用代码块的简单方式。但是和c o m 和j 2 e e 不同的是,我 们不需要掌握任何额外的技能就可以建立标签库,也就是说只要会 编写j s p 页面,就会建立标签库。除了将页面的显示部分和业务 逻辑分离,标签库还改进了w e b 应用程序的可维护性。这种对维 护性的改进表现在:轻易地在j s p 页面上就实现了基于x m l 的可 定制接口。结果,w e b 设计人员可以建立j s pw e b 应用程序而无 需知道j s p 是怎么回事。这样一来,w e b 开发就成为一项非常富 有效率的团队开发任务了。j s p 程序员可以建立定制的标签和后端 代码模块,而w e b 设计人员则可以使用定制标签并且全力关注于w e b 设计本身。标签库解决了代码混乱的问题,而且做得干净漂亮。 2 3 2 标签库的概念 j s p 标签库是一种通过j a v a b e a n 生成基于x 3 1 l 的脚本的方 法。从概念上讲,标签就是很简单而且可重用的代码结构。本人 使用了简单的标签来提交表单。我们还可以随意定制各种标签,通 过使用它们来访问处在幕后的更强大的代码。编写这些代码正是 j s p 程序员的工作。通过在页面中使用标签,我们将程序员从网页 中解脱出来。 2 3 3 标签库的三大特性 在开发j s p 项目中,我们定制标签使得很容易创建重用的开放 源代码模块。标签库的重要特性如下所示: 1 、适合多个项目 我们尽量把标签库制作成通用的,这样的标签很容易从一个项 目迁移到另一个项目上。因为标签可以重新使用,所以标签库可 以让我们轻松地开发很多相似的项目。除了定义适合自己项目的标 签库以外,还可以通过其他渠道获得他人建立的标签资源。 2 、易于维护 标签库使得j s pw e b 应用程序变得很容易维护。因为标签对 任何人而言都很容易使用、易于理解,而且我们的所有逻辑都驻留 在处于中心的标签处理器和j a v a b e a n 内。这样一来,如果我们不 得不更新代码,只需要处理这些中心文件而无需修正使用这些代码 的其他页面。还有,如果我们需要增加新的功能,不必改变任何已 经存在的页面。我们可以把额外的属性包含到你的标签内从而引进 新的行为同时保留以前的属性,实现旧页面的正常运行。标签还提 升了代码的重用性,而且方便以后的维护。 3 、更快的开发速度 标签库是一种重用代码的好办法。标签库所具有的面向对象特 性让它不仅用法灵活而且扩展能力极为强大。而且,因为我们重用 代码,结果在项目开发上花费的时间就大大降低了,而更多的时间 则可以用来设计自己的w e b 应用程序。标签库的简单接口使得这 些代码用法简单、易于调试。定制标签的步骤是很简单的,标签库 包含了好几个部分。 2 3 4 定制标签的步骤 简单的定制标签包括了以下几个要素: 1 、j a v a b e a n 为了充分利用j a v a 的面向对象特性,重用代码应当放置在独 立的代码容器内。这些j a v a b e a n 并不是标签库的一部分。他们是 标签库用来执行所分配任务的基础代码模块。 2 、标签处理器 这是标签库的真正核心。标签处理器引用它所需要的任何外 部材料并且负责访问j s p 页面的信息,比如p a g e c o n t e x t 对象。 而j s p 页面则把页面上设置的标签属性及其属性值都传递给标签 处理器。当标签处理器完成其处理过程,它就会把处理后的输出结 果回送给j s p 页面做进一步处理。 3 、标签库描述符( t l d 文件) 这是一种很简单的x m l 文件,t l d 文件描述和说明了属性、信 息和标签处理器文件位置等信息。j s p 容器使用这一文件来映射被 调用标签库的位置和用法。 4 、w e b x m l 文件 这是w e b 站点上的初始化文件。在这个文件内我们可以定义 w e b 应用程序中使用的定制标签,还可以定义用来描述每个定制 标签的t l d 文件。 以上要素都具备后,我们就可以使用自己的标签库了。一个标 签处理器只定义一个定制标签;而一个标签库则是很多个标签处理 器的集合,它们执行同一任务。标签库的制造步骤是如此的简单, 作为程序员我们只需要负责建立代码和标签处理器。 2 3 5x m i 技术 在制作标签库的过程中,x m l 文档的使用起到了相当关键的 作用。事实上,在整篇文章中,几乎都采用x m l 文件进行归档。 配置文件,s t r u t s 的控制器等等,都使用了x m l 文件的格式。x m l 是e x t e n s i b l em a r k u pl a n g u a g e 的简写,一种扩展性标识语言。 x m l 来源于s g m l ,一种比h t m l 更早的标志语言标准。现在网络 应用越来越广泛,仅仅靠h t m l 单一文件类型来处理千变万化的文 档和数据已经力不丛心,而且h t m l 本身语法十分不严密,严重影 1 4 响网络信息传送和共享。( 想想浏览器兼容的问题伤透多少设计师 的脑细胞啊。) 人们早已经开始探讨用什么方法来满足网络上各种 应用的需要。使用s o m l 是可以的,但s g m l 太庞大,编程复杂,于 是最终选择了”减肥”的s g m l - - x m l 作为下一代w e b 运用的数据 传输和交互的工具。x m l 使得在网络上使用s g m l 语言更加“简 单和直接”:简化了定义文件类型的过程,简化了编程和处理s g m l 文件的过程,简化了在w e b 上的传送和共享。x m l 的优点有下 面几点: l 、l 可以广泛的运用于w e b 的任何地方: 2 、x m l 可以满足网络应用的需求; 3 、使用x m l 将使编程更加简单; 4 、x m l 便于学习和创建; 5 、) 【m l 代码将清晰和便于阅读理解;在开发w e b 应用程序中 我们充分利用x m l 技术,会令我们在开发中更占优势。 2 4s e s s i o n 会话 2 4 1h t t p 的协议无状态性 h t t p 使用了一个相当简单的通信模型。服务器不会保留请求 的任何信息,下一次客户端进行请求时,服务器没有方法可以将它 与其他客户端区别开来。这就是h t t p 的协议无状态性。 基于这种简单的请求响应模型的无状态的h t t p 协议在很多 w e b 应用中无法满足实际应用需求。在典型的w e b 应用中,这些 页面每一个都依赖于前一个页面,也依赖于服务器知道此时客户端 的应用状态,这些靠无状态的h t t p 协议本身是无法解决的。 2 3 2 利用d s p s e r v i e t 会话a p i 进行会话跟踪和管理 j a v a x s e r v l e t h t t p 包中提供了一个h t t p s e s s i o n 类。会话 s e s s i o n 本质上是服务器端的一个对象。该对象在被创建后将被保 留直至超时或被参与一个会话的s e r v l e t 关闭。客户端用于标识 一个s e s s i o n 的是一个会话i d 。如果一个j s p s e r v l e t 允许会 话,任何时候,客户端向服务器请求一个j s p s e r v l e t 页面时,服 务器将检查该h t t p 请求的头标中是否包括一个会话i d n 2 1 。 如果客户端的h t t p 请求中包括一个有效的会话i d ,服务器 返回该会话i d 所标识的一个h t t p s e s s i o n 对象,并将该次请求 响应置于该会话环境。 如果客户端的h t t p 请求中不包括一个会话i d ,或是包括的 会话i d 无效,服务器将创建一个h t t p s e s s i o n 对象,并将其引用 返回到一个s e s s i o n 变量“。 2 3 3j s p 中的s e s s i o n 对象 s e s s i o n 对象是j s p 一个内建对象,这个对象在第一个j s p 页 面被装载时,服务器会采用复杂算法生成一个s e s s i o n i d ,用这个 s e s s i o n i d 惟一标识用户的会话,然后在会话开始的时候,服务器 将这个s e s s i o n l d 作为一个c o o k i e 存储在客户端的浏览器上,当 浏览器和服务器之间会话结束时,这个c o o k i e 就过期了。 会话的主要步骤: l 、创建会话 h t t p s e s s i o ns e s s i o n = r e q u e s t g e t s e s s i o n ( t r u e ) : 2 、将指定名字的属性值存储在s e s s i o n 对象中 s e s s i o n s e t a t t r i b u t e ( s t r i n gn a m e , j a v a 1 a n g o b j e c tv a l u e ) : ( 在j s p l 0 中这个方法为s e s s i o n p u t v a l u e ( s t r i n gn a m e ,j a v a 1 a n g o b j e c tv a l u e ) :) 3 、从会话中获取对象和s e s s i o n 对象的编号 s t r i n gn a m e = ( s t r i n g ) s e s s i o n g e t a t t r i b u t e ( s t r i n gn a m e ) : ( 在j s p l 0 中此方法为s e s s i o n g e t v a l u e ( s t r i n gn a m e ) :) s e s s i o n g e t i d ( ) : 4 、关闭会话 s e s s i o n i n v a l i d a t e0 : 2 3 4s e s s j o n 会话的应用探讨 由于j s p 的s e s s i o n 是某一连接者所有网页的共同对象,可 用s e s s i o n 来记录用户在不同网页上选中的企业信息,这些都是 1 6 s e s s i o n 对象很好的应用“。 客户与服务器之间的会话问题是提供个性化服务所需要解决 的一个核心问题。如何根据不同的用户兴趣自动生成具有个性化的 动态w e b 页面,服务器如何对客户端的多个相关请求做出正确的处 理,如何跟踪访问者的习惯从而根据其中的记录对网站进行更有效 的完善和改进,使得网站的定位更加准确,归根结底是如何维持会 话状态的问题,主要通过会话信息的保存来解决n ”n 。 2 3 5 i e 缓存j s p 文件导致源代码暴露 如果浏览器设置“浏览网页时首先查看本地缓冲里的页面”, 这对合法用户可加快浏览w e b 页面的速度,而对非法用户则提供了 一个越权浏览的机会。因此对于重要的w e b 页面,必须禁止页面缓 存,强制浏览器每次向w e b 服务器请求新页面。可使用下面脚本解 决1 “: 或者 2 4m v c 模式 m v c 模式是“m o d e l v i e w c o n t r o l l e r ”的缩写,中文翻译为“模 式一视图一控制器”。m v c 应用程序总是由这三个部分组成。e v e n t ( 事 件) 导致c o n t r o l l e r 改变m o d e l 或v i e w ,或者同时改变两者。只要 c o n t r o l l e r 改变了m o d e l s 的数据或者属性,所有依赖的v i e w 都会 自动更新。类似的,只要c o n t r o l l e r 改变了v i e w ,v i e w 会从潜在 1 7 的m o d e l 中获取数据来刷新自己。m v c 模式最早是s m a l l t a l k 语言 研究团提出的,应用于用户交互应用程序中。s m a l l t a l k 语言和j a v a 语言有很多相似性,都是面向对象语言,很自然的s u n 在 p e t s t o r e ( 宠物店) 事例应用程序中就推荐m v c 模式作为开发w e b 应 用的架构模式。m v c 模式是一种架构模式,其实需要其他模式协作 完成。在j 2 e e 模式目录中,通常采用s e r v i c et ow o r k e r 模式实 现,而s e r v i c et ow o r k e r 模式可由集中控制器模式,派遣器模式 和p a g eh e l p e r 模式组成。而s t r u t s 只实现了m v c 的v i e w 和 c o n t r o l l e r 弧个部分,m o d e l 部分需要开发者自己来实现,s t r u t s 提供了抽象类a c t i o n 使开发者能将m o d e l 应用于s t r u t s 框架中“”。 m v c 模式是一个复杂的架构模式,其实现也显得非常复杂。但 是,本人已经总结出了很多可靠的设计模式,多种设计模式结合在 一起,使m v c 模式的实现变得相对简单易行。v i e w s 可以看作一棵 树,显然可以用c o m p o s i t ep a t t e r n 来实现。v i e w s 和m o d e l s 之间 的关系可以用o b s e r v e rp a t t e r n 体现。c o n t r o l l e r 控制v i e w s 的 显示,可以用s t r a t e g yp a t t e r n 实现。m o d e l 通常是一个调用者, 可采用m e d i a t o rp a t t e r n 来实现“。 现在让我们来了解一下m v c 三个部分在j 2 e e 架构中处于什么 位置,这样有助于我们理解m y c 模式的实现。m v c 与j 2 e e 架构的对 应关系是:v i e w 处于w e bt i e r 或者说是c 1 l e n tt i e r ,通常是 j s p s e r v l e t ,即页面显示部分。c o n t r o l l e r 也处于w e bt i e r ,通 常用s e r v l e t 来实现,即页面显示的逻辑部分实现。m o d e l 处于 m i d d l et i e r ,通常用服务端的j a v a b e a n 或者e j b 实现,即业务逻 辑部分的实现。 2 4 1m v c 设计思想 m v c 英文即m o d e l - v i e w - c o n t r o l l e r ,即把一个应用的输入、 处理、输出流程按照m o d e l 、v i e w 、c o n t r o l l e r 的方式进行分离, 这样一个应用被分成三个层模型层、视图层、控制层。 视图( v i e w ) 代表用户交互界面,对于w e b 应用来说,可以概括 为h t m l 界面,但有可能为x h t m l 、x m l 和a p p l e t 。随着应用的复杂 性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多 不同的视图,m v c 设计模式对于视图的处理仅限于视图上数据的采 集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。 1 8 业务流程的处理交给模型( m o d e l ) 处理。比如一个订单的视图只接 受来自模型的数据并显示给用户,以及将用户界面的输入数据和请 求传递给控制和模型。 模型( m o d e l ) :就是业务流程状态的处理以及业务规则的制 定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图 请求的数据,并返回最终的处理结果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型就是一个典型的应用例子,e j b 从应用技术实现的角度对模型做了进一步的划分,以便充分利用现 有的组件,但e j b 不能作为应用设计模型的框架”。 对于一个开发者来说,按这种模型设计就可以利用某些技术组 件,从而减少了技术上的困难,就可以专注于业务模型的设计。m v c 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的 层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具 体不能隔得太远,也不能太近。m v c 并没有提供模型的设计方法, 而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用 性。这点对编程的开发人员非常重要。 业务模型还有一

温馨提示

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

评论

0/150

提交评论