动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.关于Date和Calendar类的基础用法.
.抽象工厂类.
.Java模式研究袖珍版之Flyweight模.
.如何使用Java自带的正则表达式.
.Struts配置说明.
.Java核心代码例程之:DatagramSe.
.JVM的垃圾回收机制详解和调优.
.IBM 经典面试题用 .NET 编程解答.
.J2EE架构学习者的6个最佳实践.
.Java基本教学:线程入门.
.使用MMAPI播放gif动画.
.Java设计模式之外观模式研究.
.static方法是什么时候执行.
.Hibernate的一对一关系.
.Java技巧:部署WAR文件和绑定对象.
.JAVA的interface观念与C++多重继.
.表的信息的获得---ResultSetMeta.
.温州IT主管联盟的未来走向.
.情人碰面的问题.JAVA代码.
.开发工具:用JBuiler玩转petstore.

通过E-mail共享Java 对象

发表日期:2008-1-5 |



  JDK1.1的新功能--序列化接口(Serializableinterface),简化了对象持久化(Persistence)的实现。以下介绍如何通过SMTPE-mail将对象传送给另一个用户。
    摘要:一些应用程序需要以一种非实时的方式(例如旅行指南、错误报告(bugreport)、 时间表(timesheet)等)和其余用户共享对象。Java语言开发工具包(JDK)1.1版提供了一 个重要的功能:java.io.Serializable接口。该技术能让你知道如何序列化一个对象,然 后用e-mail传给其它用户。
    对象持久化和用户间对象共享是许多商业解决方案的基础。例如,一个公司可以用从本公司网址启动的Applet来完成一个时间表的制作。同样该公司也可以提供象具有开支报告、旅行指 南、错误报告(bugreport)等功能的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编码方式对序列化对象编码(RFC1521)
    .与一个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包,包括序列化接口。
上一篇:纯JAVA应用程序连接数据库的方法 人气:585
下一篇:Java程序设计之“对象”篇 人气:371
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-4 LPLY CMS 网站管理系统 v5.0
2008-9-4 缤纷互动视频交友 v3.01.902
2008-9-4 ADN视频收藏专家 v3.0 bulid 080
2008-9-4 天空网络电影系统SKYUC v2.5.6 简
2008-9-4 Web Wiz Rich Text Editor(文本编
2008-9-4 幻影动漫网视频系统(Ppdong) v1.
2008-9-4 乐维电脑在线DIY配置系统
2008-9-4 老樊文章管理系统SQL版
2008-9-4 ASP.NET 2.53 缩略图水印组件源码
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵