为什么我需要DataHandler?

时间:2011-03-10 17:37:05

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

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

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

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

2 个答案:

答案 0 :(得分:6)

我将从API entry for DataHandler

开始描述
  

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

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

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

答案 1 :(得分:1)

还有一些性能方面的考虑因素,即使用javax.activation.DataHandler进行SOAP附件可以提高性能。

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

其他参考资料