收藏 分享(赏)

基于javaservertm faces和dao.doc

上传人:kuailexingkong 文档编号:1263090 上传时间:2018-06-21 格式:DOC 页数:4 大小:52.50KB
下载 相关 举报
基于javaservertm faces和dao.doc_第1页
第1页 / 共4页
基于javaservertm faces和dao.doc_第2页
第2页 / 共4页
基于javaservertm faces和dao.doc_第3页
第3页 / 共4页
基于javaservertm faces和dao.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 基于 JavaServerTM Faces 和 DAO摘 要 文章先介绍了 JavaTM EE 家族中的重要成员JavaServerTM Faces 这一技术。它位于 JavaTM EE 的 Faces;JSF;大型设备采购;信息系统 1 前言 信息技术、计算机网络技术、数据库技术和软件工程技术的高速发展,使得计算机信息系统得到了长足的进步。高速网络和大型关系数据库的成熟,为构建计算机信息系统提供了良好的基石;软件工程技术的发展,使得人们可以设计并构建出灵活、功能强大和高质量的信息系统基于MVC(Model-VieVC 这一架构模式,JavaServerTM Faces 技术就是其中的一种,

2、开发者可以利用 JSF 技术开发出设计良好的系统。2 MVC 架构模式 MVC 模式将系统分割为三个独立的部分:Model、Vieodel 代表应用数据和业务逻辑, VieVC 架构模式示意图 MVC 模式使系统各部分之间的耦合度降低,内聚度提高。这种设计方式能够有效地提高系统的可维护性。 VC 架构模式受到了一定的限制,同时也必须做一些修改,这就是 Model 2 模型。在这个模型中,有一个前端 Servlet 作为 Controller,侦听特定的 URL 请求。在收到请求后,Servlet 与作为 Model 的 JavaBean 交互,再决定向哪一个 Vieodel 2 的结构图 HT

3、TP 的无状态性导致了这么一种结果:在Model 2 中,Model 的变更无法立即传播到相应的 Vieodel 2 架构,明确定义了 Model、Vieodel(用户界面模型)。这个模型直接决定了 JSF 架构不同于传统 odel(组件呈现模型):组件的功能由组件的类决定,而组件的显示可以由专门的呈现器来决定。这种功能和呈现分割的设计意味着:可以通过简单地替换呈现器,获得不同的显示效果,或者通过不同的呈现器,来适应不同的客户端。 Conversion Model(转换模型):某些用户界面数据,如输入框中的数据,是与服务器端的数据对象相联系的。服务器端的数据对象是有类型的,而用户界面组件内的内

4、容全部都是 String 类型的,如果这两者数据类型不相容,就必须有一个转换器。转换模型定义了这方面的内容,程序员可以根据需要为用户界面组件搭配合适的转换器。图 3 JSF 结构图 Validation Model(验证模型):这个模型定义了如何对来自于请求的数据进行验证。程序员可以通过它定义数据的格式。 Event and Listener Model(事件和监听模型):通过事件和监听模型,JSF 技术提供了基于事件驱动的编程方式用户界面产生 event(事件),注册在其上的 listeners(监听器)捕获这个事件,执行事先确定的任务。事件和监听模型提供了 Listener类作为监听器的接

5、口,一旦一个应用程序提供了对 Listener 类的实现,并且向相应的用户界面组件进行注册,就可以得到相应的通知。JSF 支持三种事件:值变化事件、动作事件、数据- 模型事件。3.2 JSF 的请求处理生命周期 JSF 系统的组成元素由用户界面模型来定义,这些元素如何协作则是由 JSF 的请求处理生命周期来定义的,这个步骤也被称为 JSF 页面的生命周期,如图 4 所示:图 4 JSF 页面的生命周期 Restore View(恢复视图):在这一阶段,JSF 的服务器会为所接收的 faces 请求建立组件树,并将相应数据存入 FacesContext 实例中。在下一次访问这个页面时,Faces

6、Servlet 将利用这些数据重建组件树。通过这种机制,可以在不同的请求之间保存数据,解决了 HTTP 本身无状态的问题。 Apply Request Values(应用请求值):在组件树建立之后,系统会从请求的参数中抽取参数值,将它们赋值给相应的组件,同时消息和事件会被存放于相应的消息或事件队列中。 Process Events(处理事件):系统将消息队列中的事件广播给相应的监听器,由监听器作相应处理。 Process Validations(处理验证):在这一阶段,系统读取组件的值,同时查看在相应组件上的验证器规则,通过比较值和验证规则,确定组件的值是否有效。 Update Model V

7、alues(更新模型值):将用户组件的值赋给相应的支持Bean。 Invoke Application(调用应用程序):在这个阶段,系统响应所有的 ActionEvent 事件,进行相应的处理。 Render Response(呈现响应):系统生成相应的响应,并将响应的状态保存起来,以便后续的请求进行访问。4 持久层的架构设计 本系统的持久层采用 DAO(Data Access Object,数据访问对象)模式的设计。通过 DAO 模式对系统进行分割,将数据库访问层的实现封装到Data Accessor(数据访问器)中,从而将 Domain Object(域对象)分离出来,实现了低级别的数据访

8、问与高级别的业务逻辑的分离。 为了减少系统通过网络访问数据库的次数,在 Data Accessor 的设计上采用了 Value Object + Persistent Object 的设计思想。由于系统的复杂性,DO(域对象)通常不仅仅对应一个表格中的一条记录,它有可能对应多个条记录,甚至有可能对应于多个表格中的记录。在这样的情况下,使用 VO 就非常必要了。因为通过使用 VO,可以将众多的常用的相关属性封装成一个对象,在一次网络传输中完成信息的获取和修改,减少了多次进行的网络传输开销。其结构如图 5所示:图 5 DO、VO、PO 关系图 PO 对应于数据库中的真正记录,Data Access

9、or 对数据库的实际操作都是封装在 PO 中的。PO 实际上是数据库内信息在内存中的镜像,这是由信息在 DO、VO 、PO 、数据库之间的流动方式来保证的: 首先,PO 在初始化时,必须从数据库中更新信息。也就是说,一旦 PO 完成了初始化,此时它的数据和数据库中的记录是完全一致的。 其次,数据在更新时,其流向是 DO VO PO 数据库。因此在数据更新完成时,数据库和 PO 的数据仍然是同步的。 接着,数据在被删除时,数据库中的数据和 PO 中的数据同时消失,仍然不会出现数据不同步的情况。 最后,数据在受查询时,数据库没有受到改变,PO 也没有受到改变。因此,查询完成后,数据库和 PO 的数

10、据仍然是同步的。 所以,PO 与数据库中的相应记录是同步的,完全可以视为数据库记录的镜像。鉴于这个特性,系统在查询时可以直接查询PO,无需通过网络访问数据库,这样就减少了网络开销和数据库查询开销。实际上,即使是系统在进行数据更新时,开销也和直接使用 VO 更新数据库一样。 使用 PO 还有一个好处: VO 的数据类型未必能完全兼容于数据库中的数据类型,PO 可以在数据库和 VO 之间进行数据的类型转换,这样,在 VO 和 DO 中就可以直接使用合适的数据类型了。 可以看出,VO + PO 的 Data Accessor 设计方式有效地提高了系统效率。同时,Domain Object 的分离使程

11、序员可以专注于业务逻辑的设计,便于与 JSF 框架的对口。5 系统设计 5.1 系统功能 系统针对汽轮机厂大型设备(也被称为主机)的采购,其用户为生产单位、工厂计划处、装备资源处。系统需要为这些用户提供这几方面的服务:对采购订单的管理、设备信息的管理服务以及采购发票的管理。 对采购订单的管理要求系统能够提供以下功能:从生产单位收集采购需求、计划处审核采购需求、计划处整理采购需求、计划处创建采购订单、跟踪采购订单的执行情况(也就是采购合同的管理)。 对设备信息的管理要求系统能够提供以下功能:制定设备信息的档案、跟踪设备的情况、能够对设备进行转固、提供记录设备台帐的功能。对采购发票的管理要求系统能

12、够提供以下功能:记录设备的发票记录,以附件形式保存发票的扫描记录。 同时,系统还要提供相应的查询功能。5.2 系统分析 通过收集、整理业务信息,得到了如图 6 的主机设备采购流程图。分析流程图,得到以下结论: 系统应该建立四种用户角色:生产单位的普通用户、采购计划制定员、采购订单制定员、采购过程管理员。 系统要制定以下几种表单来提交信息:主机采购申请表格、主机采购计划单、主机采购订单、主机采购信息跟踪表。 为了让系统追踪主机信息,必须在制定采购计划时为每一台主机设置一个系统唯一的编码拟采购主机编码。这个编码是主机的标识符,在主机转固时,与真正的主机编码是一一对应的。同样的原理,通过这个编码,可

13、以将将整个工厂的其它相关信息串联起来。主机的整个生命周期的信息都可以被追踪和记录。图 6 大型主机采购流程 系统需要制定以下数据库表格来保存信息:采购申请表、采购计划表、采购订单表(采购合同表)、采购合同跟踪表、拟采购主机表。另外,还必须制定相关的参数码表。5.3 系统实现 以编辑主机信息为例,涉及的主要内容有:JSF 页面、数据库表格、DO(域对象)、VO(值对象)、PO (持久化对象)。它们互相协作,完成相应功能。 JSF 页面包含了表单控件h:form,使用 JSF 的h:panelGrid控件来布局。表单中采用了多种控件日期输入框t:inputCalendar、文本输入框h:input

14、Text等,通过mand:控件来提交表单。数据库表格保存了拟采购主机的各项参数,如下所示:图 7 数据库表格示例 PO 由属性、访问器、构造器和数据库访问方法组成。PO 的属性和数据库中的相应记录是对应的。其构造器和数据库访问方法使用 JDBC API 将数据库中的记录映射到相应的属性上。 当用户提交了相应的拟采购信息后,在 JSF 的请求处理生命周期的调用应用程序阶段,创建相应的 DO拟采购主机对象,同时建立相应的 VO 和 PO,最后调用 PO 的 create()方法在数据库中建立相应的记录。6 结束语 JSF 是一个服务器端用户界面框架,它所提供的事件驱动的编程方式,极大简化了 EE 5 Tutorial, Sun Microsystems, Inc.2 Bill Dudney, Jonathan Lehr, Bill attingly 著. 孙勇,蔡云志译. Masting JavaServerTM Faces 中文版, 电子工业出版社.3 David Geary, Cay Horstmann 著. 王军,马振萍等译. JavaServer Faces 核心编程, 电子工业出版社.4 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. 李英军,马晓星,蔡敏,刘建中等译. 设计模式,机械工业出版社。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 社科论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报