说实话,小米note3值得买么2值得购买吗

JavaEE平台上松耦合Web应用模型设计与实现_文档库
文档库最新最全的文档下载
当前位置: & JavaEE平台上松耦合Web应用模型设计与实现
JavaEE平台上松耦合Web应用模型设计与实现
科技信息○计算机与信息技术○SCIENCE&TECHNOLOGYINFORMATION2007年第16期
JavaEE平台上松耦合Web应用模型设计与实现
(中南民族大学计算与实验中心湖北武汉
430074)
摘要:本文在JavaEE平台上利用成熟的框架和设计模式,以Spring框架为核心,表示层使用Struts框架,持久层使用Hibernate框架构建一个松散耦合的Web应用模型,使用该模型可建立一个可伸缩、可重用、可扩展的Web应用系统。
关键词:JavaEE平台;Web应用;Spring;Struts;Hibernate
由于互联网的飞速发展,Web应用系统的开发在软件开发中的地
传统的Web位越来越重要。但是,随着Web应用系统复杂度的增加,
应用系统开发方式在代码的可重复利用性、可移植性、可插拔性等领域中显露出越来越多的不适应,由此导致了许多重复开发,并在一定程度上增加了系统维护的困难。
它为搭建具有可伸缩性、灵活J2EE/JavaEE是一个开放的标准,
性、易维护性的企业平台提供了良好的机制。现在Java领域各种技术百花齐放,名目繁多,对于中小型企业系统,应如何根据自己的需求选择这些框架和模式呢?众所周知,高质量的JavaEE系统标准实际上就是OO设计的标准,而OO设计的首要追求目标是松耦合,因此解耦性就成为衡量JavaEE质量的首要标准。
以Spring框本文在JavaEE平台上利用成熟的框架和设计模式,
架为核心,表示层使用Struts框架,持久层使用Hibernate框架构建一个松散耦合的Web应用模型,使用该模型可建立一个可伸缩、可重用、可扩展的Web应用系统。
并通过定义良好的接口进行相互合作。
2.Web应用开发
它简化了应用程2.1Web开发架构JavaEE是一个开放的标准,序的开发和集成,具有高度的可移植性和可扩展性。JavaEE架构分为客户层、表示层、业务逻辑层和数据持久层,各层之间互相独立,根据设定的接口提供服务。(1)客户层:运行在客户机上,通常很瘦,一般为浏览器或者应用程序,负责系统与客户间的交互。
表示层:处于一个或多个Web服务器上,使用Servlet或者Jsp(2)
完成数据显示和流程逻辑控制。
业务逻辑层:运行于JavaEE服务器,由各种组件构成,主要(3)
实现业务处理逻辑。(4)数据库持久层:由大型数据库系统组成,存储商业数据以及与数据存取相关的逻辑。
除了与系统业务相2.2横切关注点一个典型的Web应用系统,
关的模块外,还包含分布在这些模块中的公共行为,如数据库事物处理、安全验证、权限控制、异常处理及日志处理等。通常把前者称为核心关注点,后者因其“贯穿”整个系统的每个模块的特点被称为横切关注点。如果只使用面向对象编程(Object–OrientedProgramming,
虽然对核心关注点的实现很有效率,但对于横切关注点OOP)技术,
的实现会很笨拙,并会导致核心关注点和横切关注点的过藕合,使得任何一个横切特征的加入或修改都会影响到所有相关的核心关注点。
图1JavaEE平台上Web应用模型
利于Struts框架Struts是基于MVC的一种比较成熟的框架技术,
页面表现层类可以快速开发应用。通过编写业务流程控制类Action、
ActionForm以及对应的JSP页面和负责流程跳转的枢纽struts-config.xml来实现整个应用。
为了更好地完成与用户的互动,表现层还应包含一下功能:
安全认证对于Web应用来说安全需求是非常基础的,但目(1)
前的MVC框架都没有内建的安全特性。实际项目开发中过滤器Filter仍是处理认证检查的最好地方,在这种方法中,认证逻辑与Web应用是相互独立的。
国际化为了使企业Web应用支持全球客户,(2)Web应用应支
持多国语言。Struts框架能自动根据浏览器的Local实例从Resourcebundle中选择对应的资源文件,一个Resourcebundle可在Struts-
并在JSP页面中通过Struts标签显示在Application.config.xml中配置,
properties文件中以key-value对设置的信息。3.模型设计
数据验证Struts框架可以在ActionForm的validate()方法中(3)由以上分析得出的Web应用系统框架的特点是:系统框架采用
分层模式,每层都实现明确的功能,各层之间采用相对固定的接口或对用户输入的数据进行验证,但验证逻辑发生变化后需要重新编写。
Struts框架引入了Validate验证数据格式实现连接。同时,高层的构架设计应独立于所选用的特定技为避免编程进行数据验证的局限性,
Validate框架采用两个基于XML的配置文件来配置验证规则,术,确保职责得到清晰的划分,以保证层与层之间的松耦合关系。在此框架,无需编程。基础上设计了如图1所示的架构模型。
3.2业务逻辑层在JavaEE系统中,为实现表现层和业务逻辑该模型采用了多层非分布式的构架,图1展示了系统模型的分层
可以引入业务代理模式,这样,当表现层或业以及每一层中选择的技术。模型中的Presentation、Business-logic和层之间的最大限度解耦,
对彼此的影响很小。当然,如果希定义良好的接口将孤立每一务逻辑层具体实现技术发生改变时,Integration层存在于同一个Web容器中。
本文只讨论同步系望实现完全解耦,也可使用消息系统JMS来实现,层的职责,这一架构使得应用更为简单并具有更好的伸缩性。
展示数据,控制页统范畴。3.1表现层表现层的功能是收集用户的输入,
“编程到接口”的思想贯穿于整个模型设计中。表示层和业务逻辑面导航并将用户的输入传递给业务逻辑层。表示层同时需要验证用户
层之间的整合通过业务接口来实现,业务服务与业务对象交互并提供的输入以及维护应用的session状态。
[1]直接与终端用户实现交互的服务。它将几个高级的业务逻辑接口,MVC是Java-Blueprints推荐的表示层架构设计模式,
(InversionofControl,控制反转)模式[2]和AOP技术实现使用IoC方面分离开来从而减少代码的重复,它以控制为中心从而使得应用更
客户端具扩展性。MVC还可帮助具有不同技能的用户更关注于自己的技能,的业务代理模式能够很好地将业务层所有服务展示给客户端。
Word文档免费下载:
JavaEE平台上松耦合Web应用模型设计与实现_IT/计算机_专业资料。计算机 专业文献科技信息 ○计算机与信息技术○ SCIENCE & TECHNOLOGY INFORMATION 2007 年 第 16 期...基于javaEE 的Web的聊天室设计与实现_计算机软件及应用_IT/计算机_专业资料。jevaEE web 网络聊天室学号:
本科毕业论文(设计)毕业设计标题 基于 java ee...基于JAVAEE的网上药店销售系统的设计与实现开题报告_互联网_IT/计算机_专业资料。广东技术师范学院天河学院 本科毕业设计开题报告 题 目: 基于 JAVAEE 的网上药店销售...松耦合、安全可 靠、独立于平台的应用程序环境 5 ...? 运行在 JavaEE 服务器上的 Web 层组件。 Java ...对象模型表示的对象映射到基于SQL的关系数 据模型中...对 Java 程序员而言是 API,对实现与数据库连接的服务提供商而言是接口模型。作为...JavaEE平台上松耦合Web应... 2页 2下载券 ©2017 Baidu 使用百度前必读 |...的门户网站设计与实现 基于Mashup技术的个人旅游风景展示平台 Widget技术研究与应用 基于RSS信息聚合研究与应用 基于Web Services的元搜索引擎构建 三维模型检索系统索引...并对软件设计模式、软件复用性、 JavaEE 平台下的...模型看起 来应该像你将要实现的 Web 应用的一个...从简单性、可测试性和松耦合的角度而言,任何 Java ...JAVAEE 的网上药店销售平台的设计与 实现摘 要 随着计算机技术的不断发展, 应用...JavaEE平台上松耦合Web应... 2页 2下载券
基于JavaEE技术和SOA架构... 3页...JavaEE提供了一套设计、开发、汇编 和部署企业应用...松 耦合、安全可靠、独立于平台且反应 迅速的应用...定义一个模型,用于开发多层、基于 Web 且带有分布式...您现在的位置:&&>>&&>>&&>>&&>>&正文
如何实现一个与数据库表字段松耦合的j2ee应用
  本文基于java环境,分析和实现了解决这个问题的方案。首先指出j2ee容器管理持久性实体bean的不足,接着讲述了用java实现这个需求的技巧,最后是具体地实现。    1 前言  在软件项目的分析设计过程中,我们首先分析数据实体,例如确定类,类成员变量或者画ER图。再详细设计UI界面上有哪些输入框,文本框等,紧接着我们还会确定方法的参数个数和类型。这些过程紧密地依赖于数据实体的稳定性,比如在数据库设计中,我们需要多少表,每个表的字段有多少,它们的类型是什么等。但是当这个稳定性失去了怎么办?用户很有可能说目前我只能为我的表大概确定这些字段。项目组是否该等到用户确定之后再做?如果用户说字段的变化就是我的一个需求,项目该如何开发?即使所有客户能确定字段,不同的客户确定的字段可能不会是一样的。由于不同的客户对字段的需求不是一样的,项目组有时不得不不厌其烦地构造源代码的版本数。本文基于java环境,分析和实现了解决这个问题的方案。首先指出j2ee容器管理持久性实体bean的不足,接着讲述了用java实现这个需求的技巧,最后是具体地实现。    2 固定字段假设和CMP实体BEAN类机制  CMP实体BEAN机制也就是容器管理持久性实体bean机制。CMP实体bean的提供者提供的bean类具有持久性字段(或属性)的抽象get/set方法。这两个方法与普通java bean的属性的get/set方法一样。下面是一个Personbean实体bean类的name持久性字段的申明。    Class Personbean extends EntityBean {  Abstract String getName();  Abstract String setName(String vname);  String ebjCreate(String name) { setName(name);};  ------  }  部署时,一般部署工具会产生这个类的子类,子类的申明大概如下:  Class PersonbeanSubClass extends Personbean{  Private:  S  Public:  String getName(){}  String setName(String vname){name=}  ------  }    至于具体的字类实现机制可参见《Mastering Enterprise Beans Second Edition》。容器创建的是子类的实例。通过父子类的比较可知,子类通过一个私有字段和继承的两个属性get/set方法实现了一个实体bean的持久性属性。部署工具是根据java bean的内省机制生成这个子类的。这样bean提供者只需规定持久性字段的抽象访问器函数,其他的持久性实现都有工具辅助完成。但我们必须注意到,为了指定一个持久性字段,提供者必须硬编码两个访问方法。同样我们注意到为了创建一个实体Bean,我们为ejbCreate方法提供了一个类型为String的参数。这样的代码无疑建立在这个实体bean只有一个持久性字段的前提之下。类似假设下的语句还有访问数据库时的Statement语句:    Statement st = conn.createStatement();  St.execuate("insert into person (name) value('John')");  广泛使用类似假设的例子还有Struts的视图-模型数据机制中ActionForm和HTMLTag定制标签处理类的数据交互。我暂且称这种假设为固定字段假设,基于这个假设的代码实现机制为CMP实体BEAN类机制,目的在于重视j2ee中的这个特征。    3 不定字段假设和脚本语言类技术  固定字段假设和CMP实体BEAN类机制硬编码持久性字段,把字段的名字,个数和类型(本文称为持久性字段的三属性)三个中至少一个固定下来了,使得更改持久性字段的工作必然影响源代码,这就产生了一系列令人讨厌的代码树。不定字段假设和脚本语言类技术就是要把持久性字段的三属性和源代码分开,最终达到客户可以订制持久性字段的目的。典型的实现技术有XML,动态编译技术,元数据技术,字典集合技术等。这些技术有一个共同点就是不固定持久性字段,有一个持久性字段的数据容器和一部分分析代码。分析代码解释数据容器中的持久性字段,最后执行数据库操作。动态编译技术是一个过渡技术,它可根据客户配置,动态生成源代码,接着及时编译生成字节代码,部署到应用中。    3.1 XML    XML是一个非常好的数据格式,它具有很好的模式定义(DTD),DTD是XML文档的元数据,定义了文档中数据的格式和组成。XML文档中同时包含了数据名称(元素名或属性名)和数据值(元素文本或属性值)。另外JAVA中有很强的XML文档分析和使用API,包括JAXP,JAXM等。JAXP集合了基于事件分析的简单XML编程接口SAX和节点数的DOM分析技术。JAXM则是利用XML进行消息发送接收和消息处理的编程接口。XSLT能很容易地把XML文档转为其他格式的文档如HTML,JAVA源代码等。    3.2 动态编译技术    利用XML表达用户配置信息,XSLT把这些信息转换成相应的JAVA源代码,接着是用piler类及时编译产生字接代码。当然你也可以生成其他的辅助类,sql语句等。详细描述请参照/javaworld/jw-02-2002/jw-0201-xslt.html    3.3 元数据技术    元数据技术把关于数据的描述放在数据字典中,使用者访问数据字典可以得到关于数据的信息。数据字典可以放在xml文档中,也可以在数据库上。在客户配置了持久性字段后,开发者访问数据字典可以得到客户的当前持久性字段,并生成正确的代码。    3.4 字典集合技术    java中的哈西表等字典类集合数据结构可以在方法调用之间传递变化的持久性字段。平常我们的方法调用是表中有多少字段,填充数据库的函数一般要接收多少参数,这样就把持久性字段硬编码入了源代码中,持久性字段变化必会造成源代码的变动。字典集合技术使这样的函数的接口是固定的。    4 一个简单任务  为了应用上面的分析,具体体现如何实现与数据库表字段松散耦合的j2ee应用,在这里提出一个简单的任务:做一个采集人员信息的应用程序。    我们粗略分析一下便可得到一个人员类,暂且命名为Person,但字段我们确定不了。采用WAF框架来设计。关于WAF框架可参见http://www-/developerworks/cn/java/l-j2eeArch/index.shtml    4.1 设计一、字典集合技术和元数据技术    下面设计图(图一)表示:客户发出http请求,容器定位到person.jsp,这个网页分成部分和客户端部分,服务器部分为在容器中运行的指令,这些指令会build在客户浏览器上显示页面的客户端部分,客户端部分聚集(包含)了一个html表单,表单有一个提交按钮,客户可以点击此按钮发出提交请求。根据WAF的框架流程,我们设计一个personHTMLAction的类来处理用户的提交请求。下面是这个关键类的设计说明:字段:    Connection conn 保存了从容器连接池中获取的数据库连接;  Hashtable reqHashNamevalue 保存了从用户提交的表单中提取的名字-值对;  Hashtable targetHashNameType 保存了从数据库中获得的关于数据表persion_table的元数据--字段名-类型对;  Hashtable finalHashNamevalue保存了最后插入到数据库中的名字-值对;  函数或方法:  Connect getConnect() 从容器的连接池中获取数据库连结;  Hashtable getReqHashNamevalue() 从用户提交的表单中提取名字-值对;  Hashtable getTargetHashNameType() 从数据库中获得关于数据表persion_table的元数据--字段名-类型对;  Hashtable getFinalHashNamevalue() 根据targetHashNameType中的字段过滤掉reqHashNamevalue中过多的字段,  得到最后插入到数据库中的名字-值对;  Void insert()根据targetHashNameType中的类型和finalHashNamevalue中的名字-值对构造sql语句,操作数据库。  这些函数统一由WAF框架中的这个类的父类HTMLAction的一个函数perform来调用。     图二表达了这个设计达到的松散耦合效果。第一处在表单和处理类之间,它们间的数据传递充分利用了哈西字典类。达到的直接好处是我们可以开发出定制表单的工具让客户自己定制应用的输入界面,客户可以增加各种输入元素到表单上却不会影响后台的处理类。第二处在处理类和数据库表格之间,它们间的数据传递充分利用了数据库中的元数据信息,达到的直接好处是我们可以开发出定制数据表的工具让客户自己定制数据表的多数字段,客户可以增加减少或修改字段却不会影响处理类。    4.2 设计二、xml技术、哈西技术和元数据技术    设计图(图三)于图二不同的是我们在控制层内部加上了JMS技术,用XML作为数据的交换格式。 XMLpersonHTMLAction的类来处理用户的提交请求,PersonMDB把数据插入到数据库中去。下面是这两个关键类的设计说明:    XMLpersonHTMLAction类  函数或方法:  String getReqXML() 调用getParameters()获得客户的提交数据,产生xml文档;  Void sendXML() 生成一个临时队列作为消息的反馈队列,利用JMS API把getReqXML()返回的xml文档作为JMS的消息体发送出去。    PersonMDB类  字段:  Connect conn 保存了从容器连接池中获取的数据库连接;  Hashtable XMLHashNamevalue 保存了从处理类的发送来的消息中提取的名字-值对;  Hashtable targetHashNameType 保存了从数据库中获得的关于数据表persion_table的元数据--字段名-类型对;  Hashtable finalHashNamevalue保存了最后插入到数据库中的名字-值对;    函数或方法:  Connect getConnect() 从容器的连接池中获取数据库连结;  Hashtable getXMLHashNamevalue() 从处理类的发送来的消息中提取名字-值对;  Hashtabl
【责编:admin】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航  本文基于java环境,分析和实现了解决这个问题的方案。首先指出j2ee容器治理持久性实体bean的不足,接着讲述了用java实现这个需求的技巧,最后是具体地实现。    1 前言  在软件项目的分析设计过程中,我们首先分析数据实体,例如确定类,类成员变量或者画ER图。再具体设计UI界面上有哪些输入框,文本框等,紧接着我们还会确定方法的参数个数和类型。这些过程紧密地依靠于数据实体的稳定性,比如在数据库设计中,我们需要多少表,每个表的字段有多少,它们的类型是什么等。但是当这个稳定性失去了怎么办?用户很有可能说目前我只能为我的表大概确定这些字段。项目组是否该等到用户确定之后再做?假如用户说字段的变化就是我的一个需求,项目该如何开发?即使所有客户能确定字段,不同的客户确定的字段可能不会是一样的。由于不同的客户对字段的需求不是一样的,项目组有时不得不不厌其烦地构造源代码的版本数。本文基于java环境,分析和实现了解决这个问题的方案。首先指出j2ee容器治理持久性实体bean的不足,接着讲述了用java实现这个需求的技巧,最后是具体地实现。    2 固定字段假设和CMP实体BEAN类机制  CMP实体BEAN机制也就是容器治理持久性实体bean机制。CMP实体bean的提供者提供的bean类具有持久性字段(或属性)的抽象get/set方法。这两个方法与普通java bean的属性的get/set方法一样。下面是一个Personbean实体bean类的name持久性字段的申明。    Class Personbean extends EntityBean {  Abstract String getName();  Abstract String setName(String vname);  String ebjCreate(String name) { setName(name);};  ------  }  部署时,一般部署工具会产生这个类的子类,子类的申明大概如下:  Class PersonbeanSubClass extends Personbean{  PRivate:  S  Public:  String getName(){}  String setName(String vname){name=}  ------  }    至于具体的字类实现机制可参见《Mastering Enterprise JavaBeans Second Edition》。容器创建的是子类的实例。通过父子类的比较可知,子类通过一个私有字段和继续的两个属性get/set方法实现了一个实体bean的持久性属性。部署工具是根据java bean的内省机制生成这个子类的。这样bean提供者只需规定持久性字段的抽象访问器函数,其他的持久性实现都有工具辅助完成。但我们必须注重到,为了指定一个持久性字段,提供者必须硬编码两个访问方法。同样我们注重到为了创建一个实体Bean,我们为ejbCreate方法提供了一个类型为String的参数。这样的代码无疑建立在这个实体bean只有一个持久性字段的前提之下。类似假设下的语句还有访问数据库时的Statement语句:    Statement st = conn.createStatement();  St.execuate("insert into person (name) value('John')");  广泛使用类似假设的例子还有Struts的视图-模型数据交换机制中ActionForm和HtmlTag定制标签处理类的数据交互。我暂且称这种假设为固定字段假设,基于这个假设的代码实现机制为CMP实体BEAN类机制,目的在于重视j2ee中的这个特征。    3 不定字段假设和脚本语言类技术  固定字段假设和CMP实体BEAN类机制硬编码持久性字段,把字段的名字,个数和类型(本文称为持久性字段的三属性)三个中至少一个固定下来了,使得更改持久性字段的工作必然影响源代码,这就产生了一系列令人讨厌的代码树。不定字段假设和脚本语言类技术就是要把持久性字段的三属性和源代码分开,最终达到客户可以订制持久性字段的目的。典型的实现技术有xml,动态编译技术,元数据技术,字典集合技术等。这些技术有一个共同点就是不固定持久性字段,有一个持久性字段的数据容器和一部分分析代码。分析代码解释数据容器中的持久性字段,最后执行数据库操作。动态编译技术是一个过渡技术,它可根据客户配置,动态生成源代码,接着及时编译生成字节代码,部署到应用中。    3.1 XML    XML是一个非常好的数据交换格式,它具有很好的模式定义(DTD),DTD是XML文档的元数据,定义了文档中数据的格式和组成。XML文档中同时包含了数据名称(元素名或属性名)和数据值(元素文本或属性值)。另外JAVA中有很强的XML文档分析和使用API,包括JAXP,JAXM等。JAXP集合了基于事件分析的简单XML编程接口SAX和节点数的DOM分析技术。JAXM则是利用XML进行消息发送接收和消息处理的编程接口。XSLT能很轻易地把XML文档转为其他格式的文档如HTML,JAVA源代码等。    3.2 动态编译技术    利用XML表达用户配置信息,XSLT把这些信息转换成相应的JAVA源代码,接着是用piler类及时编译产生字接代码。当然你也可以生成其他的辅助类,sql语句等。具体描述请参照/javaworld/jw-02-2002/jw-0201-xslt.html    3.3 元数据技术    元数据技术把关于数据的描述放在数据字典中,使用者访问数据字典可以得到关于数据的信息。数据字典可以放在xml文档中,也可以在数据库服务器上。在客户配置了持久性字段后,开发者访问数据字典可以得到客户的当前持久性字段,并生成正确的代码。    3.4 字典集合技术    java中的哈西表等字典类集合数据结构可以在方法调用之间传递变化的持久性字段。平常我们的方法调用是表中有多少字段,填充数据库的函数一般要接收多少参数,这样就把持久性字段硬编码入了源代码中,持久性字段变化必会造成源代码的变动。字典集合技术使这样的函数的接口是固定的。    4 一个简单任务  为了应用上面的分析,具体体现如何实现与数据库表字段松散耦合的j2ee应用,在这里提出一个简单的任务:做一个采集人员信息的应用程序。    我们粗略分析一下便可得到一个人员类,暂且命名为Person,但字段我们确定不了。采用WAF框架来设计。关于WAF框架可参见http://www-/developerworks/cn/java/l-j2eeArch/index.shtml    4.1 设计一、字典集合技术和元数据技术    下面设计图(图一)表示:客户发出http请求,容器定位到person.jsp,这个网页分成服务器部分和客户端部分,服务器部分为在容器中运行的指令,这些指令会build在客户浏览器上显示页面的客户端部分,客户端部分聚集(包含)了一个html表单,表单有一个提交按钮,客户可以点击此按钮发出提交请求。根据WAF的框架流程,我们设计一个personHTMLAction的类来处理用户的提交请求。下面是这个要害类的设计说明:字段:    Connection conn 保存了从容器连接池中获取的数据库连接;  Hashtable reqHashNamevalue 保存了从用户提交的表单中提取的名字-值对;  Hashtable targetHashNameType 保存了从数据库中获得的关于数据表persion_table的元数据--字段名-类型对;  Hashtable finalHashNamevalue保存了最后插入到数据库中的名字-值对;  函数或方法:  Connect getConnect() 从容器的连接池中获取数据库连结;  Hashtable getReqHashNamevalue() 从用户提交的表单中提取名字-值对;  Hashtable getTargetHashNameType() 从数据库中获得关于数据表persion_table的元数据--字段名-类型对;  Hashtable getFinalHashNamevalue() 根据targetHashNameType中的字段过滤掉reqHashNamevalue中过多的字段,  得到最后插入到数据库中的名字-值对;  Void insert()根据targetHashNameType中的类型和finalHashNamevalue中的名字-值对构造sql语句,操作数据库。  这些函数统一由WAF框架中的这个类的父类HTMLAction的一个函数perform来调用。     图二表达了这个设计达到的松散耦合效果。第一处在表单和处理类之间,它们间的数据传递充分利用了哈西字典类。达到的直接好处是我们可以开发出定制表单的工具让客户自己定制应用的输入界面,客户可以增加各种输入元素到表单上却不会影响后台的处理类。第二处在处理类和数据库表格之间,它们间的数据传递充分利用了数据库中的元数据信息,达到的直接好处是我们可以开发出定制数据表的工具让客户自己定制数据表的多数字段,客户可以增加减少或修改字段却不会影响处理类。    4.2 设计二、xml技术、哈西技术和元数据技术    设计图(图三)于图二不同的是我们在控制层内部加上了JMS技术,用XML作为数据的交换格式。 XMLpersonHTMLAction的类来处理用户的提交请求,PersonMDB把数据插入到数据库中去。下面是这两个要害类的设计说明:    XMLpersonHTMLAction类  函数或方法:  String getReqXML() 调用getParameters()获得客户的提交数据,产生xml文档;  Void sendXML() 生成一个临时队列作为消息的反馈队列,利用JMS API把getReqXML()返回的xml文档作为JMS的消息体发送出去。    PersonMDB类  字段:  Connect conn 保存了从容器连接池中获取的数据库连接;  Hashtable XMLHashNamevalue 保存了从处理类的发送来的消息中提取的名字-值对;  Hashtable targetHashNameType 保存了从数据库中获得的关于数据表persion_table的元数据--字段名-类型对;  Hashtable finalHashNamevalue保存了最后插入到数据库中的名字-值对;    函数或方法:  Connect getConnect() 从容器的连接池中获取数据库连结;  Hashtable getXMLHashNamevalue() 从处理类的发送来的消息中提取名字-值对;  Hashtabl
自定义的Troop&T&泛型类(qt c
最新教程周点击榜
微信扫一扫

我要回帖

更多关于 小米note3值得 的文章

 

随机推荐