﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-流浪天涯-文章分类-code</title><link>http://www.blogjava.net/hobby8062/category/16782.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 29 Dec 2007 06:08:57 GMT</lastBuildDate><pubDate>Sat, 29 Dec 2007 06:08:57 GMT</pubDate><ttl>60</ttl><item><title>java调用url的两种方式</title><link>http://www.blogjava.net/hobby8062/articles/171445.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Sat, 29 Dec 2007 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/171445.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/171445.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/171445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/171445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/171445.html</trackback:ping><description><![CDATA[一、在java中调用url，并打开一个新的窗口<br />
<p>String url="http://10.58.2.131:8088/spesBiz/test1.jsp";<br />
String cmd = "cmd.exe /c start " + url; </p>
<p>try { <br />
&nbsp;Process proc = Runtime.getRuntime().exec(cmd); <br />
&nbsp;proc.waitFor(); <br />
} <br />
catch (Exception e) <br />
{ <br />
&nbsp;e.printStackTrace();<br />
} </p>
二、在java中调用url，后台调用。并取得返回值<br />
URL U = new URL("http://10.58.2.131:8088/spesBiz/test1.jsp");<br />
URLConnection connection = U.openConnection();<br />
&nbsp;&nbsp;&nbsp;connection.connect();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));<br />
&nbsp;&nbsp;&nbsp;String line;<br />
&nbsp;&nbsp;&nbsp;while ((line = in.readLine())!= null)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;result += line;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;in.close();
<img src ="http://www.blogjava.net/hobby8062/aggbug/171445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2007-12-29 11:33 <a href="http://www.blogjava.net/hobby8062/articles/171445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用java实现向ftp的文件传输</title><link>http://www.blogjava.net/hobby8062/articles/138984.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Fri, 24 Aug 2007 00:59:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/138984.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/138984.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/138984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/138984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/138984.html</trackback:ping><description><![CDATA[<p>package com.sample.ftpClient;</p>
<p>import java.io.FileInputStream;<br />
import java.io.IOException;<br />
import java.io.InputStream;<br />
import java.util.Properties;<br />
import sun.net.TelnetOutputStream;<br />
import sun.net.ftp.FtpClient;</p>
<p>import com.baosight.dexpt.DefaultDispatcher;</p>
<p>public class FtpSender {</p>
<p>&nbsp;private FtpClient ftpClient;<br />
&nbsp;private String ftpName="";<br />
&nbsp;private String ftpPassword="";<br />
&nbsp;private String ftpIp="";<br />
&nbsp;private String ftpPath="";<br />
&nbsp;private String localPath;<br />
&nbsp;</p>
<p>public void init() <br />
&nbsp;{<br />
&nbsp;&nbsp;Properties props=new Properties();<br />
&nbsp;&nbsp;Class clazz=DefaultDispatcher.class;<br />
&nbsp;&nbsp;ClassLoader clazzLoader=clazz.getClassLoader();<br />
&nbsp;&nbsp;InputStream is=null;<br />
&nbsp;&nbsp;is=clazzLoader.getResourceAsStream("dominoAttach.properties");<br />
&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;props.load(is);<br />
&nbsp;&nbsp;&nbsp;this.ftpIp=props.getProperty("ftp_ip");<br />
&nbsp;&nbsp;&nbsp;this.ftpName = props.getProperty("ftp_name");<br />
&nbsp;&nbsp;&nbsp;this.ftpPassword = props.getProperty("ftp_password");<br />
&nbsp;&nbsp;&nbsp;this.ftpPath = props.getProperty("ftp_path");<br />
&nbsp;&nbsp;&nbsp;this.localPath = props.getProperty("path");<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;catch(Exception e)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;finally{<br />
&nbsp;&nbsp;&nbsp;if(is!=null)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}catch(IOException e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;&nbsp;&nbsp; private void connectServer() throws IOException <br />
&nbsp; {<br />
&nbsp;&nbsp; ftpClient = new FTPClient();<br />
&nbsp;&nbsp; ftpClient.connect(this.ftpIp);<br />
&nbsp;&nbsp; boolean&nbsp;&nbsp; blogin&nbsp;&nbsp; =&nbsp;&nbsp; ftpClient.login(this.ftpName, this.ftpPassword);&nbsp;&nbsp; <br />
&nbsp;&nbsp; if(!blogin)<br />
&nbsp;&nbsp; {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; System.out.println("连接失败");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ftpClient.disconnect();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ftpClient&nbsp; =&nbsp; null;<br />
&nbsp;&nbsp; }<br />
&nbsp; }<br />
&nbsp; public&nbsp; void closeConnect(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ftpClient!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ftpClient.logout();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ftpClient.disconnect();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; private String upload(String filename) throws Exception <br />
&nbsp; {<br />
&nbsp;&nbsp; InputStream is = null;<br />
&nbsp;&nbsp; try <br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; is = new FileInputStream(new File(this.localPath+filename));<br />
&nbsp;&nbsp;&nbsp; this.ftpClient.storeFile(this.ftpPath+"/"+filename, is);<br />
&nbsp;&nbsp; } catch(Exception e)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; return "file send success!";<br />
&nbsp; }</p>
<p>&nbsp;public boolean sendFtpFile(String filename)<br />
&nbsp;{<br />
&nbsp;&nbsp;try <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;init();<br />
&nbsp;&nbsp;&nbsp;connectServer();<br />
&nbsp;&nbsp;&nbsp;String ret = upload(filename);<br />
&nbsp;&nbsp;&nbsp;System.out.println("---------ret:"+ret);&nbsp;<br />
&nbsp;&nbsp;&nbsp;closeConnect();<br />
&nbsp;&nbsp;} catch (Exception e) <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;return true;<br />
&nbsp;}<br />
<br />
&nbsp;/*********<br />
&nbsp; * 读取domino FTP里的附件，并插入db2到数据库中<br />
&nbsp; * <br />
&nbsp; */<br />
&nbsp;public void readDominoFtp(String fileguid)<br />
&nbsp;{<br />
&nbsp;&nbsp;FTPFile[] files = null;<br />
&nbsp;&nbsp;String filename ="";<br />
&nbsp;&nbsp;try <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;this.readinit();<br />
&nbsp;&nbsp;&nbsp;this.connectServer();<br />
&nbsp;&nbsp;&nbsp;FTPListParseEngine engine = this.ftpClient.initiateListParsing(this.ftpPath);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; files = engine.getFiles();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;//files = this.ftpClient.listFiles(this.ftpPath);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;files.length;i++)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;FTPFile file = files[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;//filename = iso8859togbk(file.getName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;filename = file.getName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(filename.indexOf(fileguid)&gt;=0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.download(filename);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("--filename:"+filename);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.saveFileToDb(iso8859togbk(filename));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//this.deleteLocalFile();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.ftpClient.deleteFile(this.ftpPath+"/"+iso8859togbk(filename));<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;//closeConnect();<br />
&nbsp;&nbsp;} catch (Exception e) <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;private static String iso8859togbk(Object obj){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(obj==null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new String(obj.toString().getBytes("iso-8859-1"),"gbk");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;public void download(String filename)<br />
&nbsp;{&nbsp;<br />
&nbsp;&nbsp;BufferedOutputStream&nbsp; fos = null;<br />
&nbsp;&nbsp;try<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;File outFile = new File(this.localPath);<br />
&nbsp;&nbsp;&nbsp;if(!outFile.exists()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;outFile.mkdirs();<br />
&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;fos = new BufferedOutputStream (new FileOutputStream(this.localPath+iso8859togbk(filename)));&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;this.ftpClient.retrieveFile(this.ftpPath+"/"+filename,fos);&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;}catch(Exception e)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(fos!=null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;fos.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception e){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;}</p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/138984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2007-08-24 08:59 <a href="http://www.blogjava.net/hobby8062/articles/138984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>bean与xml的相互转换</title><link>http://www.blogjava.net/hobby8062/articles/128788.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Sat, 07 Jul 2007 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/128788.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/128788.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/128788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/128788.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/128788.html</trackback:ping><description><![CDATA[<p>package com.test;</p>
<p>import java.io.StringBufferInputStream;<br>import java.lang.reflect.Field;<br>import java.text.SimpleDateFormat;<br>import java.util.ArrayList;<br>import java.util.Iterator;<br>import java.util.List;</p>
<p>import org.apache.commons.beanutils.PropertyUtils;<br>import org.dom4j.Document;<br>import org.dom4j.Element;<br>import org.dom4j.io.SAXReader;</p>
<p>&nbsp;</p>
<p>public class BeanXml <br>{<br>&nbsp;/*<br>&nbsp; * 用于 genenateXml()方法<br>&nbsp; * 从对象中得到值，以生成xml<br>&nbsp; */<br>&nbsp;public String getFieldValue(Object objValue )<br>&nbsp;{<br>&nbsp;&nbsp;StringBuffer valuebuf = new StringBuffer();<br>&nbsp;&nbsp;if(objValue.getClass().isArray())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;String [] valueArr = (String[])objValue;<br>&nbsp;&nbsp;&nbsp;for(int j=0;j&lt;valueArr.length;j++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;valuebuf.append("&lt;value&gt;"+valueArr[j]+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;if(objValue instanceof java.util.List)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;List list&nbsp; = (List)objValue;<br>&nbsp;&nbsp;&nbsp;for(int j=0;j&lt;list.size();j++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;valuebuf.append("&lt;value&gt;"+list.get(j)+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else if (objValue instanceof java.util.Date) <br>&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;java.util.Date valueDate = (java.util.Date)objValue;<br>&nbsp;&nbsp;&nbsp;SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");<br>&nbsp;&nbsp;&nbsp;valuebuf.append("&lt;value&gt;"+ formatter.format(valueDate)+"&lt;/value&gt;");<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp; else if (objValue instanceof String )<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;valuebuf.append("&lt;value&gt;"+objValue+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; else if(objValue instanceof Integer)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;valuebuf.append("&lt;value&gt;"+objValue+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; else if(objValue instanceof Double)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;valuebuf.append("&lt;value&gt;"+objValue+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; else if(objValue instanceof Float)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;valuebuf.append("&lt;value&gt;"+objValue+"&lt;/value&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;return valuebuf.toString();<br>&nbsp;}<br>&nbsp;/*<br>&nbsp; * 用于generateBean方法<br>&nbsp; * 功能：从xml中取值，给对象赋值<br>&nbsp; */<br>&nbsp;public Object getFieldValue(Object object,String name,List valuelist)<br>&nbsp;{<br>&nbsp;&nbsp;Object objValue=null;<br>&nbsp;&nbsp;Object objType =null;<br>&nbsp;&nbsp;String fieldname ="";<br>&nbsp;&nbsp;Class cls = object.getClass();<br>&nbsp;&nbsp;Field[] fields = cls.getDeclaredFields();<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;fields.length;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;fieldname = fields[i].getName();<br>&nbsp;&nbsp;&nbsp;&nbsp;if(name.equals(fieldname))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objType = PropertyUtils.getProperty(object, name);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objValue = getValueByType(objType,valuelist);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return objValue;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return "";<br>&nbsp;}<br>&nbsp;<br>&nbsp;public Object getValueByType(Object objType,List valuelist)<br>&nbsp;{<br>&nbsp;&nbsp;Object objValue=null;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;if(objType.getClass().isArray())<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;String[] arr=null;<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;valuelist.size();i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr=new String[valuelist.size()];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[i]=(String)valuelist.get(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;objValue = arr;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else if (objType instanceof java.util.List) <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;objValue = valuelist;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else if (objType instanceof java.util.Date) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");<br>&nbsp;&nbsp;&nbsp;&nbsp;formatter.applyPattern("yyyyMMdd");<br>&nbsp;&nbsp;&nbsp;&nbsp;objValue = formatter.parse((String)valuelist.get(0));&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (objType instanceof String )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;objValue = (String)valuelist.get(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(objType instanceof Integer)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;objValue = Integer.valueOf((String)valuelist.get(0));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(objType instanceof Double)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;objValue = Double.valueOf((String)valuelist.get(0));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if(objType instanceof Float)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;objValue = Float.valueOf((String)valuelist.get(0));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return objValue;<br>&nbsp;}<br>&nbsp;<br>&nbsp;/**<br>&nbsp; * 生成xml<br>&nbsp; */<br>&nbsp;public String generateXML(Object object)<br>&nbsp;{<br>&nbsp;&nbsp;Class cls = object.getClass();<br>&nbsp;&nbsp;Field[] fields = cls.getDeclaredFields();<br>&nbsp;&nbsp;String name= "";<br>&nbsp;&nbsp;String type ="";<br>&nbsp;&nbsp;String value ="";<br>&nbsp;&nbsp;StringBuffer buf =new StringBuffer();<br>&nbsp;&nbsp;buf.append("&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;");<br>&nbsp;&nbsp;buf.append("&lt;package&gt;");<br>&nbsp;&nbsp;buf.append("&lt;classname&gt;"+cls+"&lt;/classname&gt;");<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;fields.length;i++)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;name = fields[i].getName();<br>&nbsp;&nbsp;&nbsp;&nbsp;Object objValue = PropertyUtils.getProperty(object, name);<br>&nbsp;&nbsp;&nbsp;&nbsp;type = PropertyUtils.getPropertyType(object, name).getName();<br>&nbsp;&nbsp;&nbsp;&nbsp;value = getFieldValue(objValue);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;buf.append("&lt;"+name+"&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;buf.append("&lt;property&gt;"+type+"&lt;/property&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;buf.append("&lt;values&gt;"+value+"&lt;/values&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;buf.append("&lt;/"+name+"&gt;");<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;buf.append("&lt;/package&gt;");<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return buf.toString();<br>&nbsp;}<br>&nbsp;/*<br>&nbsp; * 生成bean<br>&nbsp; */<br>&nbsp;public Object generateBean(String strXML)<br>&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;String name ="";<br>&nbsp;&nbsp;String type ="";<br>&nbsp;&nbsp;List elemlist = new ArrayList();<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;Object objValue;<br>&nbsp;&nbsp;String classname ="";<br>&nbsp;&nbsp;Object object =null;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;SAXReader reader = new SAXReader();<br>&nbsp;&nbsp;&nbsp;StringBufferInputStream is=new StringBufferInputStream(strXML);<br>&nbsp;&nbsp;&nbsp;Document document = reader.read(is);</p>
<p>&nbsp;&nbsp;&nbsp;Element root = document.getRootElement();<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;Iterator iter = root.elementIterator();<br>&nbsp;&nbsp;&nbsp;if(iter.hasNext())<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;classname = ((Element)iter.next()).getTextTrim();<br>&nbsp;&nbsp;&nbsp;&nbsp;if(classname.indexOf(" ")&gt;0)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;classname = classname.substring(classname.lastIndexOf(" ")+1);<br>&nbsp;&nbsp;&nbsp;&nbsp;object =Class.forName(classname).newInstance();<br>&nbsp;&nbsp;&nbsp;&nbsp;for( ;iter.hasNext();)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element element = (Element) iter.next();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = element.getName();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type = (element.element("property")).getTextTrim();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elemlist = element.element("values").elements();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List valuelist = new ArrayList();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int j=0;j&lt;elemlist.size();j++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element subelement = (Element)elemlist.get(j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valuelist.add(subelement.getTextTrim());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objValue = getFieldValue(object,name,valuelist);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PropertyUtils.setProperty(object, name, objValue);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return object;<br>&nbsp;}<br>&nbsp;public static void main(String[] args)<br>&nbsp;{<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;TestBean tb = new TestBean();<br>&nbsp;&nbsp;&nbsp;String [] str = {"123","23"};<br>&nbsp;&nbsp;&nbsp;String strxml="";<br>&nbsp;&nbsp;&nbsp;List list =new ArrayList();<br>&nbsp;&nbsp;&nbsp;list.add("list111");<br>&nbsp;&nbsp;&nbsp;list.add("list222");<br>&nbsp;&nbsp;&nbsp;list.add("list333");<br>&nbsp;&nbsp;&nbsp;tb.id =123;<br>&nbsp;&nbsp;&nbsp;tb.setId(123);<br>&nbsp;&nbsp;&nbsp;tb.setName("abced");<br>&nbsp;&nbsp;&nbsp;tb.setDate(new java.util.Date());<br>&nbsp;&nbsp;&nbsp;tb.setArrId(str);<br>&nbsp;&nbsp;&nbsp;tb.setList(list);<br>&nbsp;&nbsp;&nbsp;BeanXml bx = new BeanXml();<br>&nbsp;&nbsp;&nbsp;System.out.println("-------xmlvalue:"+bx.generateXML(tb));<br>&nbsp;&nbsp;&nbsp;strxml = bx.generateXML(tb);<br>&nbsp;&nbsp;&nbsp;TestBean testb=(TestBean)bx.generateBean(strxml);<br>&nbsp;&nbsp;&nbsp;//bx.generateBean(strxml);<br>&nbsp;&nbsp;&nbsp;System.out.println("-------id:"+testb.getId());<br>&nbsp;&nbsp;&nbsp;System.out.println("-------name:"+testb.getName());<br>&nbsp;&nbsp;&nbsp;System.out.println("-------date:"+testb.getDate());<br>&nbsp;&nbsp;&nbsp;System.out.println("-------arrid"+testb.getArrId()[1]);<br>&nbsp;&nbsp;&nbsp;System.out.println("-------list:"+testb.getList().get(2));<br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}</p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/128788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2007-07-07 16:00 <a href="http://www.blogjava.net/hobby8062/articles/128788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>邮件的发送实例</title><link>http://www.blogjava.net/hobby8062/articles/128779.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Sat, 07 Jul 2007 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/128779.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/128779.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/128779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/128779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/128779.html</trackback:ping><description><![CDATA[<p>package com.baosight.spes.mail;</p>
<p>import java.io.BufferedInputStream;<br>import java.io.FileInputStream;<br>import java.io.FileNotFoundException;<br>import java.io.IOException;<br>import java.io.InputStream;<br>import java.util.HashMap;<br>import java.util.Iterator;<br>import java.util.Map;<br>import java.util.Properties;</p>
<p>import javax.activation.DataHandler;<br>import javax.mail.Message;<br>import javax.mail.Session;<br>import javax.mail.Transport;<br>import javax.mail.internet.InternetAddress;<br>import javax.mail.internet.MimeBodyPart;<br>import javax.mail.internet.MimeMessage;<br>import javax.mail.internet.MimeMultipart;<br>import javax.mail.internet.MimeUtility;</p>
<p>import sun.misc.BASE64Encoder;</p>
<p>import com.baosight.dexpt.DefaultDispatcher;</p>
<p><br>public class MailSender {<br>&nbsp;private Map mailMap = new HashMap();<br>&nbsp;<br>&nbsp;public void init()throws IOException<br>&nbsp;{<br>&nbsp;&nbsp;Properties props=new Properties();<br>&nbsp;&nbsp;Class clazz=DefaultDispatcher.class;<br>&nbsp;&nbsp;ClassLoader clazzLoader=clazz.getClassLoader();<br>&nbsp;&nbsp;InputStream is=null;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;is=clazzLoader.getResourceAsStream("mail.properties");<br>&nbsp;&nbsp;&nbsp;if(is==null)<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;throw new FileNotFoundException("\"classpath:mail.properties\" file not found...or open error...");<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;props.load(is);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;if(is!=null)<br>&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;Iterator iter = props.keySet().iterator();<br>&nbsp;&nbsp;for (; iter.hasNext();) <br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;String key = (String) iter.next();<br>&nbsp;&nbsp;&nbsp;String value=props.getProperty(key);<br>&nbsp;&nbsp;&nbsp;this.mailMap.put(key, value);<br>&nbsp;&nbsp;}<br>&nbsp;}&nbsp;<br>&nbsp;/***<br>&nbsp; * <br>&nbsp; * @param to : 目标邮件地址<br>&nbsp; * @param title :邮件标题<br>&nbsp; * @param content: 邮件内容<br>&nbsp; * @return ：发送成功返回1，否则返回0<br>&nbsp; */<br>&nbsp;public int sendMessage(String to,String title,String content)<br>&nbsp;{<br>&nbsp;&nbsp;return sendMessage(to,title,content,null);<br>&nbsp;}<br>&nbsp;/***<br>&nbsp; * <br>&nbsp; * @param to : 目标邮件地址<br>&nbsp; * @param title :邮件标题<br>&nbsp; * @param content: 邮件内容<br>&nbsp; * @param map :key为文件的名字，value为文件流（Inputstream）<br>&nbsp; * @return ：发送成功返回1，否则返回0<br>&nbsp; */<br>&nbsp;public int sendMessage(String to,String title,String content,HashMap map)<br>&nbsp;{<br>&nbsp;&nbsp;String [] tt = {to};<br>&nbsp;&nbsp;return sendMessage(tt,null,title,content,map);<br>&nbsp;}<br>&nbsp;/***<br>&nbsp; * <br>&nbsp; * @param to : 目标邮件地址<br>&nbsp; * @param cc : 抄送邮件地址<br>&nbsp; * @param title :邮件标题<br>&nbsp; * @param content: 邮件内容<br>&nbsp; * @param map :key为文件的名字，value为文件流（Inputstream）<br>&nbsp; * @return ：发送成功返回1，否则返回0<br>&nbsp; */<br>&nbsp;public int sendMessage(String to,String cc,String title,String content,HashMap map)<br>&nbsp;{<br>&nbsp;&nbsp;String [] ttArr = {to};<br>&nbsp;&nbsp;String [] ccArr={cc};<br>&nbsp;&nbsp;return sendMessage(ttArr,ccArr,title,content,map);<br>&nbsp;}<br>&nbsp;/***<br>&nbsp; * <br>&nbsp; * @param to : 目标邮件地址数组<br>&nbsp; * @param cc : 抄送邮件地址数组<br>&nbsp; * @param title :邮件标题<br>&nbsp; * @param content: 邮件内容<br>&nbsp; * @param map :key为文件的名字，value为文件流（Inputstream）<br>&nbsp; * @return ：发送成功返回1，否则返回0<br>&nbsp; */<br>&nbsp;public int sendMessage(String[] to,String cc[],String title,String content,HashMap map)<br>&nbsp;{<br>&nbsp;&nbsp;String host = (String)mailMap.get("host");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String from =&nbsp; (String)mailMap.get("from");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String username = (String)mailMap.get("user");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String password = (String)mailMap.get("password");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BASE64Encoder enc = new BASE64Encoder();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Properties props = new Properties(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put("mail.smtp.host", host); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put("mail.smtp.auth", "true"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = Session.getDefaultInstance(props); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.setDebug(true); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeMessage message = new MimeMessage(session); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setFrom(new InternetAddress(from)); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternetAddress[] sendTo = new InternetAddress[to.length];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternetAddress[] sendCc = new InternetAddress[cc.length];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; to.length; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sendTo[i] = new InternetAddress(to[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; cc.length; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sendCc[i] = new InternetAddress(cc[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.addRecipients(Message.RecipientType.TO,sendTo);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.addRecipients(Message.RecipientType.CC,sendCc);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setSubject(title); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //attachment<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeMultipart multi = new MimeMultipart(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart textBodyPart = new MimeBodyPart(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textBodyPart.setContent(content, "text/html;charset=GBK");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multi.addBodyPart(textBodyPart); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator iter = map.keySet().iterator();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(;iter.hasNext();)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String filename = ""+iter.next();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;InputStream is = (InputStream)map.get(filename);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart fileBodyPart = new MimeBodyPart(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataHandler dh = new DataHandler(new ByteArrayDataSource(is,"application/octet-stream")); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileBodyPart.setDataHandler(dh); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileBodyPart.setFileName(MimeUtility.encodeText(filename));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multi.addBodyPart(fileBodyPart); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setContent(multi); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.saveChanges(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transport transport = session.getTransport("smtp"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.connect(host, username, password); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.sendMessage(message, message.getAllRecipients()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.close(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br>&nbsp;}<br>&nbsp;/**<br>&nbsp; * @param args<br>&nbsp; */<br>&nbsp;public static void main(String[] args) <br>&nbsp;{<br>&nbsp;&nbsp;MailSender ms = new MailSender();<br>&nbsp;&nbsp;String[] to = {"<a href='&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#111;&#98;&#98;&#121;&#56;&#48;&#54;&#50;&#64;&#121;&#97;&#104;&#111;&#111;&#46;&#99;&#111;&#109;&#46;&#99;&#110;&#34;&#44;&#34;&#104;&#111;&#98;&#98;&#121;&#56;&#48;&#53;&#50;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;'>hobby8062@yahoo.com.cn","hobby8052@163.com</a>"}; <br>&nbsp;&nbsp;String[] cc = {"<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#111;&#98;&#98;&#121;&#56;&#48;&#53;&#50;&#64;&#121;&#97;&#104;&#111;&#111;&#46;&#99;&#111;&#109;&#46;&#99;&#110;">hobby8052@yahoo.com.cn</a>"};<br>&nbsp;&nbsp;String title ="测试";<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;String content="测试&lt;br&gt;&lt;a href='http://www.sohu.com'&gt;aaa&lt;/a&gt;";<br>&nbsp;&nbsp;//String content="测试";<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;ms.init();</p>
<p>&nbsp;&nbsp;&nbsp;HashMap map = new HashMap();<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;InputStream is = new BufferedInputStream( new FileInputStream("e:/测试.doc")); <br>&nbsp;&nbsp;&nbsp;String tostr = "<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#111;&#98;&#98;&#121;&#56;&#48;&#53;&#50;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">hobby8052@163.com</a>";<br>&nbsp;&nbsp;&nbsp;map.put("测试.doc", is);<br>&nbsp;&nbsp;&nbsp;is = new BufferedInputStream( new FileInputStream("e:/测试.rar"));<br>&nbsp;&nbsp;&nbsp;map.put("测试.rar", is);<br>&nbsp;&nbsp;&nbsp;ms.sendMessage(to, cc, title, content, map);<br>&nbsp;&nbsp;&nbsp;//ms.sendMessage(tostr, title, content, map);<br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>}<br>/*************************对附件流（inputstream）的处理***************************************/<br>package com.baosight.spes.mail;<br>//Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.<br>//Jad home page: <a href="http://www.geocities.com/SiliconValley/Bridge/8617/jad.html">http://www.geocities.com/SiliconValley/Bridge/8617/jad.html</a><br>//Decompiler options: packimports(3) fieldsfirst ansi <br>//Source File Name:&nbsp;&nbsp; ByteArrayDataSource.java</p>
<p><br>import java.io.*;<br>import javax.activation.DataSource;</p>
<p>public class ByteArrayDataSource<br>&nbsp;implements DataSource<br>{</p>
<p>&nbsp;private byte data[];<br>&nbsp;private String type;</p>
<p>&nbsp;public ByteArrayDataSource(InputStream inputstream, String s)<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; type = s;<br>&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte abyte0[] = new byte[4096];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; (i = inputstream.read(abyte0)) != -1;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bytearrayoutputstream.write(abyte0, 0, i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = bytearrayoutputstream.toByteArray();<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; catch(IOException ioexception)<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ioexception.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;}</p>
<p>&nbsp;public ByteArrayDataSource(byte abyte0[], String s)<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; data = abyte0;<br>&nbsp;&nbsp;&nbsp;&nbsp; type = s;<br>&nbsp;}</p>
<p>&nbsp;public ByteArrayDataSource(String s, String s1)<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; data = s.getBytes();<br>&nbsp;&nbsp;&nbsp;&nbsp; type = s1;<br>&nbsp;}</p>
<p>&nbsp;public InputStream getInputStream()<br>&nbsp;&nbsp;&nbsp;&nbsp; throws IOException<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; if(data == null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new IOException("no data");<br>&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new ByteArrayInputStream(data);<br>&nbsp;}</p>
<p>&nbsp;public OutputStream getOutputStream()<br>&nbsp;&nbsp;&nbsp;&nbsp; throws IOException<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; throw new IOException("cannot do this");<br>&nbsp;}</p>
<p>&nbsp;public String getContentType()<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; return type;<br>&nbsp;}</p>
<p>&nbsp;public String getName()<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; return "dummy";<br>&nbsp;}<br>}</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/128779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2007-07-07 15:38 <a href="http://www.blogjava.net/hobby8062/articles/128779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JFreeChart的实例代码</title><link>http://www.blogjava.net/hobby8062/articles/128778.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Sat, 07 Jul 2007 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/128778.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/128778.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/128778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/128778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/128778.html</trackback:ping><description><![CDATA[<p>package com.chart;</p>
<p>import java.awt.BasicStroke;<br>import java.awt.Color;<br>import java.awt.Font;<br>import java.io.FileOutputStream;<br>import java.io.PrintWriter;<br>import java.text.DecimalFormat;<br>import java.text.NumberFormat;<br>import java.util.Date;</p>
<p>import javax.servlet.http.HttpSession;</p>
<p>import org.jfree.chart.ChartFactory;<br>import org.jfree.chart.ChartRenderingInfo;<br>import org.jfree.chart.ChartUtilities;<br>import org.jfree.chart.JFreeChart;<br>import org.jfree.chart.entity.StandardEntityCollection;<br>import org.jfree.chart.labels.StandardPieItemLabelGenerator;<br>import org.jfree.chart.plot.PiePlot;<br>import org.jfree.chart.plot.PlotOrientation;<br>import org.jfree.chart.servlet.ServletUtilities;<br>import org.jfree.chart.title.TextTitle;<br>import org.jfree.data.category.CategoryDataset;<br>import org.jfree.data.category.DefaultCategoryDataset;<br>import org.jfree.data.general.DefaultPieDataset;<br>import org.jfree.data.time.Minute;<br>import org.jfree.data.time.TimePeriodValues;<br>import org.jfree.data.time.TimePeriodValuesCollection;<br>import org.jfree.data.xy.XYDataset;</p>
<p>public class ChartExample {</p>
<p>&nbsp;<br>&nbsp;/*****<br>&nbsp; * 生成柱形图的实例，保存到Jpg文件中<br>&nbsp; */<br>&nbsp;public void createChar3D()<br>&nbsp;{<br>&nbsp;&nbsp;CategoryDataset&nbsp;&nbsp; dataset&nbsp;&nbsp; =&nbsp;&nbsp; getDataSet2();&nbsp;&nbsp; <br>&nbsp;&nbsp;JFreeChart&nbsp;&nbsp; chart&nbsp;&nbsp; =&nbsp;&nbsp; ChartFactory.createBarChart3D(&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;"水果产量图",&nbsp;&nbsp; //&nbsp;&nbsp; 图表标题&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;"水果",&nbsp;&nbsp; //&nbsp;&nbsp; 目录轴的显示标签&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;"产量",&nbsp;&nbsp; //&nbsp;&nbsp; 数值轴的显示标签&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;dataset,&nbsp;&nbsp; //&nbsp;&nbsp; 数据集&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;PlotOrientation.VERTICAL,&nbsp;&nbsp; //&nbsp;&nbsp; 图表方向：水平、垂直&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;true,&nbsp;&nbsp; //&nbsp;&nbsp; 是否显示图例(对于简单的柱状图必须是false)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;false,&nbsp;&nbsp; //&nbsp;&nbsp; 是否生成工具&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;false&nbsp;&nbsp; //&nbsp;&nbsp; 是否生成URL链接&nbsp;&nbsp; <br>&nbsp;&nbsp;);&nbsp;&nbsp; <br>&nbsp;&nbsp;<br>&nbsp;&nbsp;FileOutputStream&nbsp;&nbsp; fos_jpg&nbsp;&nbsp; =&nbsp;&nbsp; null;&nbsp;&nbsp; <br>&nbsp;&nbsp;try&nbsp;&nbsp; <br>&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;fos_jpg&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; FileOutputStream("e:/123.jpg");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;ChartUtilities.writeChartAsJPEG(fos_jpg,0.8f,chart,400,300);&nbsp;&nbsp; <br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;try&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;fos_jpg.close();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;}catch(Exception&nbsp;&nbsp; e)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br>&nbsp;&nbsp;}&nbsp;&nbsp; <br>&nbsp;}<br>&nbsp;/**&nbsp;&nbsp; <br>&nbsp;*&nbsp;&nbsp; 获取一个演示用的组合数据集对象&nbsp;&nbsp; （柱形图）<br>&nbsp;*&nbsp;&nbsp; @return&nbsp;&nbsp; <br>&nbsp;*/&nbsp;&nbsp; <br>&nbsp;private&nbsp;&nbsp; static&nbsp;&nbsp; CategoryDataset&nbsp;&nbsp; getDataSet2()&nbsp;&nbsp; <br>&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;DefaultCategoryDataset&nbsp;&nbsp; dataset&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; DefaultCategoryDataset();&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(100,&nbsp;&nbsp; "北京",&nbsp;&nbsp; "苹果");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(100,&nbsp;&nbsp; "上海",&nbsp;&nbsp; "苹果");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(100,&nbsp;&nbsp; "广州",&nbsp;&nbsp; "苹果");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(200,&nbsp;&nbsp; "北京",&nbsp;&nbsp; "梨子");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(200,&nbsp;&nbsp; "上海",&nbsp;&nbsp; "梨子");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(200,&nbsp;&nbsp; "广州",&nbsp;&nbsp; "梨子");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(300,&nbsp;&nbsp; "北京",&nbsp;&nbsp; "葡萄");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(300,&nbsp;&nbsp; "上海",&nbsp;&nbsp; "葡萄");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(300,&nbsp;&nbsp; "广州",&nbsp;&nbsp; "葡萄");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(400,&nbsp;&nbsp; "北京",&nbsp;&nbsp; "香蕉");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(400,&nbsp;&nbsp; "上海",&nbsp;&nbsp; "香蕉");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(400,&nbsp;&nbsp; "广州",&nbsp;&nbsp; "香蕉");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(500,&nbsp;&nbsp; "北京",&nbsp;&nbsp; "荔枝");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(500,&nbsp;&nbsp; "上海",&nbsp;&nbsp; "荔枝");&nbsp;&nbsp; <br>&nbsp;&nbsp;dataset.addValue(500,&nbsp;&nbsp; "广州",&nbsp;&nbsp; "荔枝");&nbsp;&nbsp; <br>&nbsp;&nbsp;return&nbsp;&nbsp; dataset;&nbsp;&nbsp; <br>&nbsp;}<br>&nbsp;/***<br>&nbsp; * 根据时间生成曲线图，保存到jpg中<br>&nbsp; *<br>&nbsp; */<br>&nbsp;public static void createTimeChart()<br>&nbsp;{<br>&nbsp;&nbsp;XYDataset&nbsp;&nbsp; xydataset&nbsp;&nbsp; =&nbsp;&nbsp; createDataset();&nbsp;&nbsp; <br>&nbsp;&nbsp;JFreeChart&nbsp;&nbsp; chart&nbsp;&nbsp; =&nbsp;&nbsp; ChartFactory.createTimeSeriesChart(&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "nihao",&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "hello",&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "123",&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xydataset,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true,&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true);&nbsp;&nbsp; <br>&nbsp;&nbsp;FileOutputStream&nbsp;&nbsp; fos_jpg&nbsp;&nbsp; =&nbsp;&nbsp; null;&nbsp;&nbsp; <br>&nbsp;&nbsp;try&nbsp;&nbsp; <br>&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;fos_jpg&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; FileOutputStream("e:/123.jpg");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;ChartUtilities.writeChartAsJPEG(fos_jpg,0.8f,chart,400,300);&nbsp;&nbsp; <br>&nbsp;&nbsp;}catch(Exception e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;finally<br>&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;try&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;fos_jpg.close();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;}catch(Exception&nbsp;&nbsp; e)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br>&nbsp;&nbsp;}&nbsp;&nbsp; </p>
<p>&nbsp;}<br>&nbsp;/****<br>&nbsp; *&nbsp; 获取一个演示用的组合数据集对象&nbsp;&nbsp; （时间曲线图）<br>&nbsp; * @return<br>&nbsp; */<br>&nbsp; private&nbsp;&nbsp; static&nbsp;&nbsp; XYDataset&nbsp;&nbsp; createDataset()<br>&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TimePeriodValues&nbsp;&nbsp; timeseries1&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; TimePeriodValues("Chart&nbsp;&nbsp; Title");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这地方可以使用循环，把x轴，y轴&nbsp;&nbsp; 的值&nbsp;&nbsp; 辅给timeseries1&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TimePeriodValuesCollection&nbsp;&nbsp; timeseriescollection&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; TimePeriodValuesCollection();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i =1;i&lt;10;i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minute&nbsp;&nbsp; min&nbsp;&nbsp; =&nbsp; new Minute(new Date());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timeseries1.add(min,&nbsp;&nbsp; i);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; timeseriescollection.addSeries(timeseries1);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; timeseriescollection;&nbsp;&nbsp; <br>&nbsp;&nbsp; }<br>&nbsp;/***********饼状图*********/<br>&nbsp;private DefaultPieDataset data =new DefaultPieDataset();<br>&nbsp;private Font titleFont = new Font("黑体",Font.CENTER_BASELINE,18);<br>&nbsp;/****<br>&nbsp; *&nbsp; 设置一个演示用的组合数据集对象&nbsp;&nbsp; （饼状图）<br>&nbsp; * @return<br>&nbsp; */<br>&nbsp;public void setValue(String key,double value)<br>&nbsp;{<br>&nbsp;&nbsp;data.setValue(key,value);<br>&nbsp;}<br>&nbsp;/***<br>&nbsp; * 根据时间生成病状图，显示到jsp页面<br>&nbsp; *<br>&nbsp; */<br>&nbsp;public String generatePieChart(String title, HttpSession session, PrintWriter pw)<br>&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;String filename = null;<br>&nbsp;&nbsp;String unitSytle = "{0}={1}({2})";<br>&nbsp;&nbsp;try {<br>&nbsp;&nbsp;&nbsp;JFreeChart chart = ChartFactory.createPieChart3D("饼型图",&nbsp; // chart title<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data,&nbsp; // data<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true, // include legend<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;false<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br>&nbsp;&nbsp;&nbsp;//设置图片的背景色<br>&nbsp;&nbsp;&nbsp;chart.setBackgroundPaint(new Color(215,215,215));<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置透明度，好像对servlet没有用<br>&nbsp;&nbsp;&nbsp;chart.setBackgroundImageAlpha(0.9f);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置图片标题的字体和大小<br>&nbsp;&nbsp;&nbsp;TextTitle _title = new TextTitle(title);<br>&nbsp;&nbsp;&nbsp;_title.setFont(titleFont);<br>&nbsp;&nbsp;&nbsp;chart.setTitle(_title);&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;PiePlot plot = (PiePlot) chart.getPlot();&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;plot.setNoDataMessage("无对应的数据，请重新查询。");<br>&nbsp;&nbsp;&nbsp;plot.setNoDataMessagePaint(Color.red);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//指定 section 轮廓线的厚度(OutlinePaint不能为null)<br>&nbsp;&nbsp;&nbsp;plot.setOutlineStroke(new BasicStroke(0));<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置第一个 section 的开始位置，默认是12点钟方向<br>&nbsp;&nbsp;&nbsp;plot.setStartAngle(90);&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;plot.setToolTipGenerator(new StandardPieItemLabelGenerator(unitSytle,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NumberFormat.getNumberInstance(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new DecimalFormat("0.00%")));<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//指定图片的透明度<br>&nbsp;&nbsp;&nbsp;plot.setForegroundAlpha(0.65f);<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//引出标签显示样式<br>&nbsp;&nbsp;&nbsp;plot.setLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NumberFormat.getNumberInstance(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new DecimalFormat("0.00%")));<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//图例显示样式<br>&nbsp;&nbsp;&nbsp;plot.setLegendLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NumberFormat.getNumberInstance(),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new DecimalFormat("0.00%")));</p>
<p>&nbsp;&nbsp;&nbsp;//把生成的图片放到临时目录<br>&nbsp;&nbsp;&nbsp;ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//设置图片名称前缀<br>&nbsp;&nbsp;&nbsp;ServletUtilities.setTempFilePrefix("chart-");<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;//500是图片长度，300是图片高度<br>&nbsp;&nbsp;&nbsp;filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);</p>
<p>&nbsp;&nbsp;&nbsp;ChartUtilities.writeImageMap(pw, filename, info, false);<br>&nbsp;&nbsp;&nbsp;pw.flush();<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;System.out.println(System.getProperty("java.io.tmpdir") + filename);</p>
<p>&nbsp;&nbsp;} catch (Exception e) {<br>&nbsp;&nbsp;&nbsp;System.out.println("Exception - " + e.toString());<br>&nbsp;&nbsp;&nbsp;e.printStackTrace(System.out);<br>&nbsp;&nbsp;&nbsp;filename = "public_error_600x350.png";<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return filename;<br>&nbsp;}</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * @param args<br>&nbsp;*/<br>&nbsp;public static void main(String[] args)<br>&nbsp;{<br>&nbsp;&nbsp;createTimeChart();<br>&nbsp;}<br>}</p>
<p>/**************************饼形图的jsp页面***************************************/<br><br>&lt;%@ page contentType="text/html;charset=GBK"%&gt;<br>&lt;%@ page import ="java.io.PrintWriter" %&gt;<br>&lt;%@ page import="com.chart.ChartExample"%&gt;<br>&lt;%</p>
<p>ChartExample chart = new ChartExample();<br>chart.setValue("六月",500);<br>chart.setValue("七月",580);<br>chart.setValue("八月",828);</p>
<p><br>String filename = chart.generatePieChart("<a href="http://www.sentom.net/">www.SenTom.net</a> 网站访问统计表",session, new PrintWriter(out));<br>String graphURL = request.getContextPath() +"/servlet/DisplayChart?filename=" + filename;</p>
<p><br>%&gt;<br>&lt;HTML&gt;<br>&lt;HEAD&gt;<br>&nbsp;&lt;TITLE&gt;www.sentom.net&lt;/TITLE&gt;<br>&lt;/HEAD&gt;<br>&lt;BODY&gt;<br>&lt;P ALIGN="CENTER"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;img src="&lt;%= graphURL %&gt;" width=500 height=300 border=0 usemap="#&lt;%=filename%&gt;"&gt;&lt;/P&gt;<br>&lt;/BODY&gt;<br>&lt;/HTML&gt;</p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/128778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2007-07-07 15:33 <a href="http://www.blogjava.net/hobby8062/articles/128778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml的无限层次的读取</title><link>http://www.blogjava.net/hobby8062/articles/78507.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Wed, 01 Nov 2006 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/78507.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/78507.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/78507.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/78507.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/78507.html</trackback:ping><description><![CDATA[
		<p>public static HashMap readXML(File file)throws IOException <br /> {<br />  BufferedInputStream is = new BufferedInputStream(new FileInputStream(file));<br />  HashMap hashmap = new HashMap();<br />  HashMap hm = new HashMap();<br />  try<br />  {<br />   SAXReader reader = new SAXReader();<br />   Document doc = reader.read(is);<br />   Element root = doc.getRootElement();<br /> <br />   Element e;<br />   String sPropName;<br />   String sPropValue;<br />   <br />   String index="0";<br />   List list=root.elements();</p>
		<p>   for(int i=0;i&lt;list.size();i++)<br />   {<br />    e=(Element)list.get(i);<br />    sPropName=e.getName();<br />    sPropValue=e.getTextTrim();<br />    hm.put(sPropName,sPropValue);<br />    hashmap.put(index+i,hm);<br />    hashmap.putAll(getElements(index+i,e));     <br />   }<br />   <br />  }<br />  catch(Exception e)<br />  {<br />  }<br />  return hashmap;<br /> }<br /> public static HashMap getElements(String index ,Element e)<br /> {<br />  HashMap hm = new HashMap();<br />  HashMap hashmap = new HashMap();<br />  List list =e.elements(); <br />  Element temp;<br />  String sName="";<br />  String sValue="";<br />  for (int i=0;i&lt;list.size();i++)<br />  {<br />   temp=(Element)list.get(i);<br />   sName=temp.getName();<br />   sValue=temp.getTextTrim();<br />   hm.put(sName,sValue);<br />   hashmap.put(index+i,hm);<br />   if(temp.elements().size()&gt;0)<br />    hashmap.putAll(getElements(index+i,temp));<br />  }<br />  return hashmap;<br /> }</p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/78507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2006-11-01 16:55 <a href="http://www.blogjava.net/hobby8062/articles/78507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xls的读写</title><link>http://www.blogjava.net/hobby8062/articles/78471.html</link><dc:creator>刘浪</dc:creator><author>刘浪</author><pubDate>Wed, 01 Nov 2006 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/hobby8062/articles/78471.html</guid><wfw:comment>http://www.blogjava.net/hobby8062/comments/78471.html</wfw:comment><comments>http://www.blogjava.net/hobby8062/articles/78471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hobby8062/comments/commentRss/78471.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hobby8062/services/trackbacks/78471.html</trackback:ping><description><![CDATA[
		<p>
				<br />import java.io.File;<br />import java.util.ArrayList;<br />import jxl.Cell;<br />import jxl.Sheet;<br />import jxl.Workbook;<br />import jxl.format.UnderlineStyle;<br />import jxl.write.DateFormat;<br />import jxl.write.DateTime;<br />import jxl.write.Label;<br />import jxl.write.NumberFormat;<br />import jxl.write.WritableCellFormat;<br />import jxl.write.WritableFont;<br />import jxl.write.WritableSheet;<br />import jxl.write.WritableWorkbook;<br />public class XlsManager<br />{<br /> <br /> /***************<br />  导出数据到Excel文件中<br />  下面的例子，设置了数字、日期的格式，还有字体，颜色等。<br /> **************/<br /> public static void writeXLS()throws Exception<br /> {<br />  <br />  File tempFile=new File("e:/work/output.xls");<br />  WritableWorkbook workbook = Workbook.createWorkbook(tempFile);<br />  WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0); </p>
		<p>//  一些临时变量，用于写到excel中<br />  Label l=null;<br />  jxl.write.Number n=null;<br />  jxl.write.DateTime d=null;</p>
		<p>//  预定义的一些字体和格式，同一个Excel中最好不要有太多格式<br />  WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); <br />  WritableCellFormat headerFormat = new WritableCellFormat (headerFont); </p>
		<p>  WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); <br />  WritableCellFormat titleFormat = new WritableCellFormat (titleFont); </p>
		<p>  WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); <br />  WritableCellFormat detFormat = new WritableCellFormat (detFont); </p>
		<p>  NumberFormat nf=new NumberFormat("0.00000");  //用于Number的格式<br />  WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf); </p>
		<p>  DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的<br />  WritableCellFormat dateFormat = new WritableCellFormat (detFont, df); </p>
		<p>//  剩下的事情，就是用上面的内容和格式创建一些单元格，再加到sheet中<br />  l=new Label(0, 0, "用于测试的Excel文件", headerFormat);<br />  sheet.addCell(l);</p>
		<p>//  add Title<br />  int column=0;<br />  l=new Label(column++, 2, "标题", titleFormat);<br />  sheet.addCell(l);<br />  l=new Label(column++, 2, "日期", titleFormat);<br />  sheet.addCell(l);<br />  l=new Label(column++, 2, "货币", titleFormat);<br />  sheet.addCell(l);<br />  l=new Label(column++, 2, "价格", titleFormat);<br />  sheet.addCell(l);</p>
		<p>//  add detail<br />  int i=0;<br />  column=0;<br />  l=new Label(column++, i+3, "标题 "+i, detFormat);<br />  sheet.addCell(l);<br />  d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);<br />  sheet.addCell(d);<br />  l=new Label(column++, i+3, "CNY", detFormat);<br />  sheet.addCell(l);<br />  n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);<br />  sheet.addCell(n);</p>
		<p>  i++;<br />  column=0;<br />  l=new Label(column++, i+3, "标题 "+i, detFormat);<br />  sheet.addCell(l);<br />  d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);<br />  sheet.addCell(d);<br />  l=new Label(column++, i+3, "SGD", detFormat);<br />  sheet.addCell(l);<br />  n=new jxl.write.Number(column++, i+3, 98832, priceFormat);<br />  sheet.addCell(n);</p>
		<p>//  设置列的宽度<br />  column=0;<br />  sheet.setColumnView(column++, 20);<br />  sheet.setColumnView(column++, 20);<br />  sheet.setColumnView(column++, 10);<br />  sheet.setColumnView(column++, 20);</p>
		<p>  workbook.write();<br />  workbook.close(); <br /> }<br /> public static ArrayList readXLS() throws Exception <br /> {<br />  Workbook workbook = null;<br />  ArrayList list = new ArrayList();<br />  <br />  try {<br />     workbook = Workbook.getWorkbook(new File("d:\\test.xls"));<br />  } catch (Exception e) {<br />     throw new Exception("file to import not found!");<br />  }</p>
		<p>  Sheet sheet = workbook.getSheet(0);<br />  Cell cell = null;</p>
		<p>  int columnCount=8;<br />  int rowCount=sheet.getRows();<br />  for (int i = 1; i &lt;rowCount; i++) {<br />   ArrayList sublist =new ArrayList();<br />     for (int j = 0; j &lt;columnCount; j++) {<br />         //注意，这里的两个参数，第一个是表示列的，第二才表示行<br />         cell=sheet.getCell(j, i);<br />         //要根据单元格的类型分别做处理，否则格式化过的内容可能会不正确<br />         /*<br />         if(cell.getType()==CellType.NUMBER){<br />             System.out.print(((NumberCell)cell).getValue());<br />         }<br />         else if(cell.getType()==CellType.DATE){<br />             System.out.print(((DateCell)cell).getDate());<br />         }<br />         else{<br />             System.out.print(cell.getContents());<br />         }   <br />         ***/      </p>
		<p>         sublist.add(cell.getContents());<br />     }<br />     list.add(sublist);<br />  }<br />  //关闭它，否则会有内存泄露<br />  workbook.close();<br />  return list;<br /> }<br /> </p>
<img src ="http://www.blogjava.net/hobby8062/aggbug/78471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hobby8062/" target="_blank">刘浪</a> 2006-11-01 14:24 <a href="http://www.blogjava.net/hobby8062/articles/78471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>