Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú ͨ¹ýE-mail ¹²ÏíJava ¶ÔÏó

ͨ¹ýE-mail ¹²ÏíJava ¶ÔÏó

ÕªÒª: JDK1.1µÄй¦ÄÜ--ÐòÁл¯½Ó¿Ú£¨Serializableinterface£©,¼ò»¯Á˶ÔÏó³Ö¾Ã»¯(Persistence)µÄʵÏÖ......
<iframe align=right frameBorder=0 height=300 marginHeight=0 marginWidth=0 scrolling=no src="http://www.chinabyte.com/tag/cont_flash_software.html" width=360></iframe>¡¡¡¡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¶ÔÏó,ËüʵÏÖÁË×î¼òµ¥µÄÐòÁл¯½Ó¿Ú¡£

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>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 } </td></tr></table>
¡¡¡¡1ʹÓÃimportÓï¾äÒýÈëI/O°ü,°üÀ¨ÐòÁл¯½Ó¿Ú¡£

¡¡¡¡2-5¶¨ÒåÀàÖеijÉÔ±±äÁ¿,²¢Ö¸³ö¸ÃÀàʵÏÖÁËÐòÁл¯½Ó¿Ú¡£

¡¡¡¡6-10Ìṩһ¸ö¼òµ¥µÄ¹¹Ô캯Êý

¡¡¡¡11Ò»¸ö¿ÕµÄ¹¹Ô캯Êý¡£Õâ¸ö¹¹Ô캯ÊýÔÚÖؽ¨ÐòÁл¯¶ÔÏóʱʹÓ᣼ûÒÔϵÄÀý×Ó¡£

¡¡¡¡12-20¶¨ÒåÒ»¸ö·½·¨º¯Êý,Ëü°Ñ¶ÔÏóдÈëÒ»¸öÒѾ­´ò¿ªÁ˵ÄObjectOutputStream¡£Õâ¸ö·½ ·¨º¯ÊýÊ×ÏÈ´´½¨Ò»¸öObjectOutputStream¶ÔÏó,È»ºóµ÷ÓÃwriteObject·½·¨º¯Êý,×îºóÔÚ º¯Êý·µ»ØÇ°ÏÔʽÇå¿ÕÊä³ö»º³åÇø¡£

¡¡¡¡21-30¶¨ÒåÒ»¸ö·½·¨º¯Êý,Ëü´ÓÒ»¸ö´ò¿ªÁ˵ÄInputStreamÖжÁÈëÒ»¸öBugReport¶ÔÏó¡£×¢ Òâ,Èç¹ûÊäÈëÁ÷ÖÐÏÂÒ»¸ö¶ÔÏóºÍÕýÔÚ¶ÁÈë¶ÔÏóµÄÀàÐͲ»Ò»ÖÂʱ,readObject()½«»áÅ׳öÒ» ¸öÒì³£¡£

¡¡¡¡Ê¹ÓÃBugReport¶ÔÏóÏ൱¼òµ¥¡£Æ©ÈçÎÒÃÇÏëÒª´´½¨Ò»¸öеÄBugReport¶ÔÏó²¢ÇÒ°ÑËü´æÈë Ò»¸öÎļþ,ÎÒÃÇ»áÓõ½ÒÔÏ´úÂë:

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>1 import java.io.*;
.
.
2 BugReport bug = new BugReport(1.0, "Crashes when spell checker invoked", 2);
3 FileOUtputStream os = new FileOutputStream("MyBug.test");
4 bug.save(os); </td></tr></table>
¡¡¡¡ºÜ¼òµ¥,¶ÔÂð?µ±È»,Ò»µ©¶ÔÏóÒѾ­±»ÐòÁл¯,ûÓÐÈËÄÜ×èÖ¹Äã¼ÌÐø²Ù×ݶÔÏóµÄ״̬¡£ÉÏÒ» ¸öÀý×ÓÖаüº­ÁËÒ»¸öÔÚ±»Ð´Èë´ÅÅÌʱÒѾ­´æÔÚ¶ÔÏóµÄ¿½±´¡£Òò´ËÄã±ØÐëҪʮ·Ö½÷É÷,ÒÔ·À ÔÚ¶Ô¶ÔÏó×ö³öËùÓеÄÐÞ¸ÄÖ®ºóûÓÐÐòÁл¯¶ÔÏó,´Ó¶ø¶ªÊ§Á˶ÔÏóµÄ״̬ÐÞ¸ÄÐÅÏ¢¡£

¡¡¡¡ÒÔÏÂÊÇÔõÑù»Ö¸´Ò»¸ö¶ÔÏóµÄ¿½±´:

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>1 import java.io.*
.
.
2 FileInputStream fis = new FileInputStream("MyBug.test");
3 BugReport bug = new BugReport().restore(fis); </td></tr></table>
¡¡¡¡Õâ¸ü¼òµ¥!ÊDz»ÊÇJavaµÄ¹¦ÄÜÔ½À´Ô½Ç¿´óÁË?

¡¡¡¡ÏÖÔÚÎÒÃÇÐ޸ĵڶþ¸öÀý×ӵĵÚ3ÐÐ,ʹ¶ÔÏó±»Ð´ÈëÒ»¸ö×Ö½ÚÊý×é¶ø²»ÊÇÒ»¸öÎļþ:

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>1 import java.io.*
.
.
2 BugReport bug = new BugReport(1.0, "Crashes when spell checker invoked", 2);
3 ×Ö ½ÚArrayOutputStream os = new ×Ö ½ÚArrayOutputStream();
4 bug.save(os); </td></tr></table>
¡¡¡¡ºÃÁË,ÎÒÃÇÒѾ­¹¹ÔìÁËÒ»¸ö¶ÔÏó,²¢ÇÒѧ»á°ÑËüÐòÁл¯ºó·ÅÈëÒ»¸ö×Ö½ÚOutputStream¡£È» ºó,ÎÒÃǽ«°ÑÕâ¸ö×Ö½ÚOutputStreamת»¯ÎªÒ»¸öBase64±àÂëµÄ×Ö·û´®¡£




¡ü·µ»ØĿ¼
ǰһƪ: ÀûÓÃJAVAÏòÀ¬»øµç×ÓÓʼþÐûÕ½
ºóһƪ: ¿ª·¢JavaµÄÓÖÒ»ÀûÆ÷-Visual Cafe