【问题标题】:Why do I need a DataHandler?为什么需要数据处理程序?
【发布时间】:2011-03-10 17:37:04
【问题描述】:

使用javax.activation.DataHandler的主要原因是什么?

是否便于通过网络传输未实现 Serializable 的对象?

即例如,我已经看到文件从本地文件系统转换为字节,然后使用这些字节创建 DataHandler 并通过网络传输 DataHandler
这就是人们会使用DataHandler 的原因吗?

【问题讨论】:

  • 你有很多问题要问。你能说得更具体点吗?
  • @Lord:我更新了我的问题。这是更具体的还是需要额外的编辑?
  • @Martin:如果你已经在编辑标题,请让它变得更好,而不仅仅是改变大小写。 “关于……的问题”从来都不是一个好标题。

标签: java web-services apache jakarta-ee network-programming


【解决方案1】:

我将从API entry for DataHandler 的描述开始:

DataHandler 类为许多不同来源和格式的可用数据提供了一致的接口。它使用 DataContentHandlers 管理简单的流到字符串的转换和相关操作。

诚然,这不是最清楚的描述。 DataHandler 与 XML 和 SOAP 有关,您可以从 the use tab of its API page 中看到。和你一样,我用它来表示上传文件的数据,因为它从一个 Web 服务组件发送到另一个 Web 服务组件进行处理。

DataHandler 实现的Transferable 接口并不是指序列化处理的那种“传输”。它是关于在程序中的单独组件或单独程序之间传输信息,而不是保存对象以供以后使用。有关更多信息,请参阅API entry for Transferable。您会注意到它链接到the Drag 'n' Drop Java Tutorial,这与DataHandler 关系不大,但确实说明了Transferable 的用法。

【讨论】:

    【解决方案2】:

    还有性能方面的考虑,即使用 javax.activation.DataHandler 处理 SOAP 附件会提高性能。

    例如正如 Oracle 所提到的“...改进的性能:非正式测试表明,使用 DataHandler 包装器可以使 image/gif MIME 类型的吞吐量翻倍,而对于 text/xml 或 java.awt.Image,对于 image/* 类型,吞吐量会增加大约 1.5。 ...”这是来自LINK

    其他参考

    【讨论】:

    • 对于 DataHandlers 是否有任何替代解决方案?
    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多