`

jaf 简介

阅读更多
JavaBeans激活框架(JavaBeans Activation Framework)

       JAF的目的在于统一处理不同数据格式的方法(不管数据格式为简单文本还是由图片、声音、视频甚至其它"活动"内容共同组成的复合文档)。在这个意义上,JAF对Java的作用正如插件对Web浏览器的作用。JAF使得Java对象与编码数据流之间的映射变得非常容易。

       JAF完成于1998年,当时JavaBean非常流行,Swing非常热门,Servlet刚刚出现,J2EE平台还没有。那时Sun需要一个用于文件浏览器和JavaMail的标准发现API,此需要推动了JAF的创建。“发现”指可以动态找到正确的组件以处理任意但类型化了的数据的机制。特别是,作为发现API来开发JAF,以便使GUI开发人员能够为文档和图像数据动态地发现浏览器和编辑器。

       发现取决于注册的类型,注册可以将每一文件类型与对应的应用程序建立关联。

       简单的说,JAF提供了用于动态发现可视窗口部件以处理由MIME文件头描述的各种数据的架构。当用于SAAJ这样的非可视系统时,JAF可以将Java类型映射到将它们无缝转换到数据流的特殊处理程序,从而允许SAAJ将Java对象自动转换成由SwA MIME部分包含的原始数据。



1.       DataHandler 类

       JAF架构的核心是javax.activation.DataHandler类。DataHandler类定义了三个构造函数:

       Public DataHandler(DataSource ds)

       Public DataHandler(java.net.URL url)

       Public DataHandler(Object obj, String mimeType)

       当使用前两个构造函数时,数据处理会委托到DataSource接口的一个子类型,使用第三个构造函数时,数据处理委托到一个动态发现的内容处理程序并使用此处理程序。

       如果DataHandler是用DataSource对象构造的,那么它将首先试图试图将getContent()方法委托到一个DCH,如果它没有找到DCH,会返回一个从DataSource中得到的InputStream。有趣的是,DataHandler总是试图首先委托到一个DCH,即便是用DataSource创建DataHandler也是如此。

       上述说明的问题看似简单,但实际上非常重要,它说明了getContent()方法的作用。getContent()方法要返回一个表示附件的Java对象,DataSource的InputStream只作为最后一种手段来返回。从DCH中返回的对象类型取决于DCH的编码方式。



2.       DataContentHandler类

       此接口用于实现将Java对象流转换成数据流,或将数据流转换成Java对象。

       DataContentHandler类型的每一个子类(即每一个DCH)均用于自动将Java对象的专用类型转换为流,以及将流转换成Java对象。如某个DCH能够将java.awt.Image对象转换为JPEG或GIF编码流,或者进行反向转换。DCH的缺点是它们的使用范围通常受到很大的限制,每一个DCH只能讲一个对象类型转换成一种类型的数据流。

       与DCH不同,DataSource对象只处理数据流。用户要用DataSource从某种类型的资源中读数据流,并将数据流写入DataSource。,此时重点放在了流上而不是Java对象类型上。从而DataSource具有很大的通用性,其缺点为不宜于使用,因为用户直接处理的是流而不是Java对象。



3.       DataSource 类

       DataSource类拥有完成委托操作所需要的全部功能。当使用DataSource或URL参数构造DataHandler时,DataHandler要使用DataSource而不是DCH。

       JAF定义了两个标准的DataSource对象,即FileDataSource对象和URLDataSource对象。     某些DataSource实现用于动态发现它们的MIME类型。例如,FileDataSource用MIME类型注册表发现它的MIME类型。JAF中的默认MIME类型注册表是mimetypes.default文件,该文件包含在JAF二进制JAR文件中。



分享到:
评论

相关推荐

    JAF1.98.62稳定版

    1. **JAF简介** JAF,全称为Java Application Farm,最初由P phoenix团队开发,是一个功能强大的诺基亚手机解决方案。JAF1.98.62稳定版作为其经典版本,主要服务于那些希望自定义或修复诺基亚手机的用户。它提供了一...

    JAF CMS-开源

    - `README.txt`: 项目说明文件,通常包含项目简介、安装指南和开发者联系方式等信息。 综上所述,JAF CMS 是一款面向个人和小型站点的优秀开源CMS,它的设计思路和实现特点为用户提供了一种高效、简便的网站管理...

    诺机JAR修改code汇总.pdf

    jaf工具简介 jaf(Java Application Framework)是一种基于Java的应用程序框架,提供了一系列的工具和API,用于开发和测试移动设备应用程序。在诺机JAR修改code汇总.pdf文件中,jaf工具被用于修改诺机的code。 ...

    J2EE的13种核心技术简介.doc

    - **简介**:JAF提供了一组API,用于处理用户的认证和授权。 - **应用场景**:实现用户登录、权限控制等功能。 #### 三、技术间的交互 在实际应用中,这些技术往往是相互依赖、协同工作的。例如,一个Web应用可能...

    java语言加强板

    - **简介**:JAF提供了一个框架,用于管理和实现安全控制策略。它支持多种身份验证和授权机制。 12. **RMI (Remote Method Invocation)** - **全称**:远程方法调用 - **简介**:RMI是一种分布式计算模型,允许...

    J2EE的13种核心技术简介

    在 WebLogic 应用服务器中,JAF 提供了一种统一的方式来管理应用的安全性。 综上所述,J2EE 平台通过提供这 13 种核心技术,为企业级应用开发提供了一套完整而强大的框架。WebLogic 应用服务器作为 J2EE 的一个具体...

    JavaMail简介

    JavaMail依赖于JavaBeans Activation Framework (JAF),这是一个用于处理未知数据类型的标准Java组件。 要使用JavaMail,首先需要下载JavaMail和JAF的JAR文件,并将其添加到项目的类路径中。在JavaMail中,`javax....

    J2EE企业级开发简介

    7. **JAF(JavaBeans Activation Framework)**:JAF用于处理MIME类型和消息激活,支持电子邮件和其他消息传递系统。 8. **JCA(Java Connector Architecture)**:JCA为连接各种企业信息系统的标准接口,使得J2EE...

    J2EE 的 13 种核心技术.doc

    - **简介**:JAF 是一个基于 J2EE 的应用框架,它提供了一系列工具和服务来简化应用的开发。 - **应用场景**:JAF 主要用于简化企业应用的开发过程,减少重复编码的工作量。 #### 三、技术间的协作机制 在 J2EE ...

    j2ee的13种核心技术

    - **简介**:JAF提供了一种机制,用于确定如何处理接收到的MIME数据。 - **应用场景**:JAF用于处理接收到的数据,如电子邮件附件等。 - **与其他技术的交互**:JAF通常与JavaMail等技术结合使用,以处理接收到的...

    JavaMail开发.pdf

    #### 五、JavaBeans Activation Framework (JAF) 简介 **JavaBeans Activation Framework (JAF)** 是一个用于处理文件类型和数据流的应用程序框架。JAF 主要用于处理 JavaMail 中 MIME 编码的邮件附件。JAF 的接口...

    J2EE的13种技术规范

    - **简介**:JAF用于处理MIME编码的数据,可以将MIME字节流转换为Java对象。 - **特点**: - 数据处理:提供了处理MIME编码数据的能力。 - 简化开发:简化了邮件附件的处理流程。 - 集成性:通常与JavaMail一起...

    发送E-mail组件与程序调试.pd

    2. **下载 JAF (JavaBeans Activation Framework)**:搜索并下载 JAF 包 `jaf-1_1-fr.zip`。解压后,将其中的 `activation.jar` 文件同样复制到项目的 `WEB-INF/lib` 目录下。 3. **重启 Tomcat 服务器**:完成以上...

    Javamail 1.3收发邮件开发教程.pdf

    #### 一、JavaMail API简介 **JavaMail API** 是由SUN公司(现已被Oracle收购)为Java开发者提供的一个公共API框架,用于在Java应用中实现电子邮件功能的支持。它的设计遵循了开放性原则,避免了对特定供应商解决...

    j2ee学习培训课件

    1. J2EE简介与架构 2. Servlet和JSP基础 3. EJB基本概念与应用 4. JMS消息传递 5. JNDI、JTA与JAF介绍 6. JPA与数据库交互 7. 应用服务器配置与部署 8. 实战项目案例分析 通过这个课件的学习,初学者能够对J2EE有一...

    sql server 2008 递归查询所有上级或下级数据

    ### SQL Server 2008 递归查询简介 #### 什么是递归查询? 递归查询是指在SQL查询中重复执行相同的操作直到满足特定条件为止的过程。这种查询非常适合于处理层次结构的数据模型,如组织结构、文件系统等。 #### ...

    JavaMail介绍.pdf

    #### 一、JavaMail 技术简介 JavaMail API 是一个用于阅读、编写和发送电子邮件的可选包(标准扩展),主要用于构建基于标准的电子邮件客户端。它支持多种互联网邮件协议,包括但不限于 SMTP(简单邮件传输协议)、...

    J2EE 全面简介

    J2EE的十三种核心技术包括EJB、Servlets、JSP、JMS(Java Message Service)、JTA(Java Transaction API)、JNDI(Java Naming and Directory Interface)、JAF(JavaBeans Activation Framework)、JCA(Java ...

Global site tag (gtag.js) - Google Analytics