王朝网络
分享
 
 
 

通过E-mail共享Java对象

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

JDK1.1 的 新 功 能-- 序 列 化 接 口(Serializable interface), 简 化 了 对 象 持 久 化(Persistence) 的 实 现。 以 下 介 绍 如 何 通 过SMTP E-mail 将 对 象 传 送 给 另 一 个 用 户。

--------------------------------------------------------------------------------

摘 要: 一 些 应 用 程 序 需 要 以 一 种 非 实 时 的 方 式( 例 如 旅 行 指 南、 错 误 报 告(bug report)、 时 间 表(time sheet) 等) 和 其 余 用 户 共 享 对 象。 Java 语 言 开 发 工 具 包(JDK)1.1 版 提 供 了 一 个 重 要 的 功 能: java.io.Serializable 接 口。 该 技 术 能 让 你 知 道 如 何 序 列 化 一 个 对 象, 然 后 用e-mail 传 给 其 它 用 户。

对 象 持 久 化 和 用 户 间 对 象 共 享 是 许 多 商 业 解 决 方 案 的 基 础。 例 如,一个公 司 可 以 用 从 本 公 司 网 址 启 动 的Applet 来 完 成 一 个 时 间 表 的 制 作。 同 样 该公 司 也 可 以 提 供 象 具 有 开 支 报 告、 旅 行 指 南、 错 误 报 告(bug report) 等 功 能 的Applet。 在 这 些 情 况 下, 从Applet 的 使 用 者 获 得 的 数 据 需 要 和 负 责 薪 水、 付 款、旅 行 房 间 预 订 的 人 们 共 享。 执 行 这 些 职 能 的 人 们 可 能 分 布 在 不 同 的 城 市和 国 家, 可 能 工 作 在 不 同 的 时 区, 不 能 希 望 每 个 工 作 人 员 都 能 象 猫 头 鹰 一 样在 晚 上 工 作 以 填 写 这 样 的 表 格。 相 同 的 信 息 也 不 应 该 重 新 输 入。 因 此, 能 够存 储 并 且 把 这 些 相 关 对 象 传 送 到 商 业 应 用 中 是 这 些applet 有 别 于 其 它applet 的 优 势。

目 前 已 经 有 许 多 方 法 能 实 现 对 象 的 持 久 化, 例 如 使 用 对 象 数 据 库 和 磁盘 文 件。 同 样 的 也 有 许 多 办 法 可 以 共 享 对 象, 例 如 将 数 据 写 入 一 个 套 接 字, 或 者 实 现 一 个 符 合CORBA, SOM 的 模 型。 以 上 这 几 种 方 案 均 有 自 己 的 优 点, 当 你 设 计 你 的 商 业 解 决 方 案 时, 需 要 认 真 地 考 虑 这 些 方 案。 但 是, 还 有 一 种 开 销 不 大 但 可 靠 的 方 法, 它 使 用Internet 和Intranet 用 户 能 够 获 取 的 技 术 服 务 在 世 界 范 围 传 送 对 象 的 拷 贝。 它 就 是 简 单 邮 件 传 输 协 议, SMTP。

用E-mail 发 送Java 对 象

存 储 和 保 存 对 象 的 一 个 简 单 方 法 是 将 对 象 序 列 化 而 后 用E-mail 将 它 发 送 给 别 的 用 户。 这 种 方 法 有 以 下 优 点:

发 送 的 计 算 机 或NC( 网 络 计 算 机) 无 需 硬 盘 空 间

使 用 现 有 的 系 统 传 送、 排 队、 发 送 对 象

允 许 用 户 使 用 最 喜 欢 的 邮 件 客 户 程 序 来 接 受 邮 件

提 供 简 单 的 机 制 将 同 一 对 象 的 拷 贝 分 发 给 许 多 人

这 种 方 法 也 有 不 足 之 处:

邮 件 的 传 送 可 能 因 为E-mail 主 机 的 关 机 而 被 较 长 时 间 地 延 迟。 所 有 的 主 机 都 可 能 出 现 这 种 情 况, E-mail 服 务 器 的 错 误 恢 复 优 先 级 通 常 比 数 据 库 服 务 器 低。

邮 件 的 传 送 不 能 得 到 保 证-- 在 你 的E-mail 服 务 器 通 知 你 邮 件 没 有 发 出 时, 你 不 得 不 重 新 发 送 邮 件。

E-mail 服 务 器 和POP 客 户 程 序 的 功 能 不 足 以 处 理 大 量 交 易 信 息。

这 些 不 足 和 你 使 用 的 应 用 程 序 有 关。 对 于 很 多 商 业 解 决 方 案, 这 些 不 足 并 不 重 要。 作 为 一 个 设 计 人 员, 你 工 作 的 一 部 分 就 是 在 全 面 考 虑 价 格、 性 能 和 需 求 的 情 况 下 确 定 系 统 的 最 佳 整 体 结 构。

使 用Java 传 送 对 象 的 四 个 步 骤:

Applet 必 须 依 次 以 下 面 所 列 出 的 四 个 步 骤 传 送Java 对 象:

序 列 化 有 关 对 象

发 送 时 选 择Base64 编 码 方 式 对 序 列 化 对 象 编 码(RFC 1521)

与 一 个SMTP 服 务 器 连 接

将 该 对 象 传 送 到 这 个SMTP 服 务 器

下 面 将 介 绍 如 何 用E-mail 发 送 一 个 假 设 的" 臭 虫" 报 告 到 公 司 的 质 量 保 证 部 门。

将 对 象 序 列 化

JDK1.1 提 供 的 一 个 奇 妙 的 机 制, java.io.Serializable 接 口, 能 够 序 列 化 并 且 重 建 对 象。 这 个 接 口 能 使 用 存 储 对 象(writeObject()) 和 恢 复 对 象(readObject()) 方 法 函 数。 在 很 多 情 况 下, 使 用 这 个 接 口 很 方 便, 只 需 实 现 并 且 调 用 这 两 个 方 法 函 数。

以 下 的 代 码 定 义 了 一 个 简 单 的BugReport 对 象, 它 实 现 了 最 简 单 的 序 列化接 口。

1 import java.Io.*;

2 public class BugReport implements Serializable {

3 private Float m_SoftwareVersion; // version number from Help.About, e.g. "1.0"

4 private String m_ErrorDescription; // Description of error

5 private int m_Severity; // 1=System unusable - 5=Minor Aesthetic defect

6 public BugReport (Float SoftwareVersion, String ErrorDescription, int Severity) {

7 m_SoftwareVersion = SoftwareVersion;

8 m_ErrorDesctiption = ErrorDescription;

9 m_Severity = Severity;

10 }

11 public BugReport () {} // for reconstituting serialized objects

12 public void save (OutputStream os)

13 throws IOException {

14 try {

15 ObjectOutputStream o = new ObjectOutputStream(os);

16 o.writeObject(this);

17 o.flush();

18 }

19 catch (IOException e) {throw e;}

20 }

21 public BugReport restore (InputStream is)

22 throws IOException, ClassNotFoundException {

23 BugReport RestoredBugReport = null;

24 try {

25 ObjectInputStream o = new ObjectInputStream(is);

26 RestoredBugReport = (BugReport)o.readObject();

27 }

28 catch (IOException e) {throw e;}

29 catch (ClassNotFoundException e) {throw e;}

30 return RestoredBugReport;

31 }

32 }

1 使 用import 语 句 引 入I/O 包, 包 括 序 列 化 接 口。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有