﻿<?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-chou's blog-随笔分类-about java</title><link>http://www.blogjava.net/chou/category/32793.html</link><description>records of my java learning process </description><language>zh-cn</language><lastBuildDate>Wed, 11 Mar 2009 04:45:37 GMT</lastBuildDate><pubDate>Wed, 11 Mar 2009 04:45:37 GMT</pubDate><ttl>60</ttl><item><title>excel操作</title><link>http://www.blogjava.net/chou/archive/2009/03/10/258909.html</link><dc:creator>chou</dc:creator><author>chou</author><pubDate>Tue, 10 Mar 2009 12:27:00 GMT</pubDate><guid>http://www.blogjava.net/chou/archive/2009/03/10/258909.html</guid><wfw:comment>http://www.blogjava.net/chou/comments/258909.html</wfw:comment><comments>http://www.blogjava.net/chou/archive/2009/03/10/258909.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chou/comments/commentRss/258909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chou/services/trackbacks/258909.html</trackback:ping><description><![CDATA[<p>/**<br />
&nbsp;* Excel WorkBook对象类 <br />
&nbsp;* @author zhouqian<br />
&nbsp;*<br />
&nbsp;*/<br />
public class ExcelWorkBook {<br />
&nbsp;/** 工作簿 */<br />
&nbsp;private static HSSFWorkbook workbook = new HSSFWorkbook();<br />
&nbsp;<br />
&nbsp;/** 工作表 */<br />
&nbsp;private HSSFSheet sheet;<br />
&nbsp;<br />
&nbsp;/** 表头数据 */<br />
&nbsp;private String[] tableHeader;<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * 构造函数<br />
&nbsp; * @param workbookName 工作表名<br />
&nbsp; * @param tableHeader 表头数据<br />
&nbsp; */<br />
&nbsp;public ExcelWorkBook(String workbookName, String[] tableHeader) {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;this.tableHeader = tableHeader;<br />
&nbsp;&nbsp;sheet = workbook.createSheet(workbookName);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * 创建表头<br />
&nbsp; * @param headerName<br />
&nbsp; */<br />
&nbsp;public void createTableHeader(String headerName) {<br />
&nbsp;&nbsp;HSSFHeader header = sheet.getHeader();<br />
&nbsp;&nbsp;header.setCenter(headerName);<br />
&nbsp;&nbsp;HSSFRow headerRow = sheet.createRow(0);<br />
&nbsp;&nbsp;int cellNumber = tableHeader.length;<br />
&nbsp;&nbsp;for (int i = 0; i &lt; cellNumber; i++) {<br />
&nbsp;&nbsp;&nbsp;HSSFCell headerCell = headerRow.createCell((short)i);<br />
&nbsp;&nbsp;&nbsp;headerCell.setEncoding(HSSFCell.ENCODING_UTF_16);<br />
&nbsp;&nbsp;&nbsp;headerCell.setCellValue(tableHeader[i]);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * 创建行<br />
&nbsp; * @param data 要写入的数据<br />
&nbsp; * @param rowIndex 第rowIndex行 <br />
&nbsp; */<br />
&nbsp;public void createTableRow(String[] data, int rowIndex) {<br />
&nbsp;&nbsp;HSSFRow row = sheet.createRow(rowIndex);<br />
&nbsp;&nbsp;for (int i = 0; i &lt; data.length; i++) {<br />
&nbsp;&nbsp;&nbsp;HSSFCell cell = row.createCell((short)i);<br />
&nbsp;&nbsp;&nbsp;cell.setEncoding(HSSFCell.ENCODING_UTF_16);<br />
&nbsp;&nbsp;&nbsp;cell.setCellValue(data[i]);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * 创建整个Excel表<br />
&nbsp; * @param headerName<br />
&nbsp; */<br />
&nbsp;public void createExcelSheet(String headerName, String[][] data) {<br />
&nbsp;&nbsp;this.createTableHeader(headerName);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;String[] rowData;<br />
&nbsp;&nbsp;for (int i = 0; i &lt; data.length; i++) {<br />
&nbsp;&nbsp;&nbsp;rowData = data[i];<br />
&nbsp;&nbsp;&nbsp;createTableRow(rowData, i + 1);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * 导出Excel表格<br />
&nbsp; * @param os<br />
&nbsp; * @throws IOException<br />
&nbsp; */<br />
&nbsp;public void exportExcel(OutputStream os) throws IOException {<br />
&nbsp;&nbsp;sheet.setGridsPrinted(true);<br />
&nbsp;&nbsp;HSSFFooter footer = sheet.getFooter();<br />
&nbsp;&nbsp;footer.setRight("Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages());<br />
&nbsp;&nbsp;workbook.write(os);<br />
&nbsp;}</p>
<p>&nbsp;public HSSFSheet getSheet() {<br />
&nbsp;&nbsp;return sheet;<br />
&nbsp;}</p>
<p>&nbsp;public void setSheet(HSSFSheet sheet) {<br />
&nbsp;&nbsp;this.sheet = sheet;<br />
&nbsp;}</p>
<p>&nbsp;public String[] getTableHeader() {<br />
&nbsp;&nbsp;return tableHeader;<br />
&nbsp;}</p>
<p>&nbsp;public void setTableHeader(String[] tableHeader) {<br />
&nbsp;&nbsp;this.tableHeader = tableHeader;<br />
&nbsp;}<br />
}</p>
<img src ="http://www.blogjava.net/chou/aggbug/258909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chou/" target="_blank">chou</a> 2009-03-10 20:27 <a href="http://www.blogjava.net/chou/archive/2009/03/10/258909.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>邮件客户端</title><link>http://www.blogjava.net/chou/archive/2009/03/10/258908.html</link><dc:creator>chou</dc:creator><author>chou</author><pubDate>Tue, 10 Mar 2009 12:26:00 GMT</pubDate><guid>http://www.blogjava.net/chou/archive/2009/03/10/258908.html</guid><wfw:comment>http://www.blogjava.net/chou/comments/258908.html</wfw:comment><comments>http://www.blogjava.net/chou/archive/2009/03/10/258908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chou/comments/commentRss/258908.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chou/services/trackbacks/258908.html</trackback:ping><description><![CDATA[<p>/**<br />
&nbsp;* 邮件客户端<br />
&nbsp;* <br />
&nbsp;* @author zhouqian<br />
&nbsp;* <br />
&nbsp;*/<br />
public class MailClient {<br />
&nbsp;/** 日志实例 */<br />
&nbsp;Log logger = LogFactory.getLog(MailClient.class);</p>
<p>&nbsp;/** 消息对象 */<br />
&nbsp;private Message message;</p>
<p>&nbsp;/** 邮件会话 */<br />
&nbsp;private Session session;</p>
<p>&nbsp;public MailClient() {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;this.session = createDefaultSession();<br />
&nbsp;}</p>
<p>&nbsp;public MailClient(Session session) {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;this.session = session;<br />
&nbsp;}</p>
<p>&nbsp;public MailClient(Message message) {<br />
&nbsp;&nbsp;this();<br />
&nbsp;&nbsp;this.message = message;<br />
&nbsp;}</p>
<p>&nbsp;public MailClient(Session session, Message message) {<br />
&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;this.session = session;<br />
&nbsp;&nbsp;this.message = message;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建邮件会话<br />
&nbsp; * <br />
&nbsp; * @return<br />
&nbsp; */<br />
&nbsp;protected Session createDefaultSession() {<br />
&nbsp;&nbsp;Properties props = new Properties();<br />
&nbsp;&nbsp;props.put("mail.smtp.host", "smtp.163.com");<br />
&nbsp;&nbsp;props.put("mail.smtp.auth", "true");<br />
&nbsp;&nbsp;Session session = Session.getInstance(props);<br />
&nbsp;&nbsp;session.setDebug(true);<br />
&nbsp;&nbsp;return session;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建纯文本邮件<br />
&nbsp; * <br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; * @return<br />
&nbsp; * @throws MessagingException<br />
&nbsp; */<br />
&nbsp;protected Message createMimeMessage(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;String recipientTO, String recipientCC, String recipientBCC)<br />
&nbsp;&nbsp;&nbsp;throws MessagingException {<br />
&nbsp;&nbsp;Message message = createBlankMessage(recipientTO, recipientCC,<br />
&nbsp;&nbsp;&nbsp;&nbsp;recipientBCC);</p>
<p>&nbsp;&nbsp;// 设置邮件标题<br />
&nbsp;&nbsp;message.setSubject(subject);</p>
<p>&nbsp;&nbsp;// 设置邮件内容<br />
&nbsp;&nbsp;message.setText(content);</p>
<p>&nbsp;&nbsp;// 设置发送时间<br />
&nbsp;&nbsp;message.setSentDate(new Date(System.currentTimeMillis()));</p>
<p>&nbsp;&nbsp;// 存储邮件信息<br />
&nbsp;&nbsp;message.saveChanges();</p>
<p>&nbsp;&nbsp;return message;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建带HTML内容的邮件<br />
&nbsp; * <br />
&nbsp; * @param subject<br />
&nbsp; * @param content<br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; * @return<br />
&nbsp; * @throws MessagingException<br />
&nbsp; */<br />
&nbsp;protected Message createHTMLMessage(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;String recipientTO, String recipientCC, String recipientBCC)<br />
&nbsp;&nbsp;&nbsp;throws MessagingException {<br />
&nbsp;&nbsp;Message message = createBlankMessage(recipientTO, recipientCC,<br />
&nbsp;&nbsp;&nbsp;&nbsp;recipientBCC);</p>
<p>&nbsp;&nbsp;// 设置邮件标题<br />
&nbsp;&nbsp;message.setSubject(subject);</p>
<p>&nbsp;&nbsp;// 设置发送时间<br />
&nbsp;&nbsp;message.setSentDate(new Date(System.currentTimeMillis()));</p>
<p>&nbsp;&nbsp;// 创建存放邮件内容的BodyPart对象<br />
&nbsp;&nbsp;BodyPart bp = new MimeBodyPart();<br />
&nbsp;&nbsp;bp.setContent(content, "text/html;charset=gb2312");</p>
<p>&nbsp;&nbsp;// 创建一个MimeMultipart来存放BodyPart对象<br />
&nbsp;&nbsp;Multipart mp = new MimeMultipart();<br />
&nbsp;&nbsp;mp.addBodyPart(bp);</p>
<p>&nbsp;&nbsp;message.setContent(mp);<br />
&nbsp;&nbsp;message.saveChanges();</p>
<p>&nbsp;&nbsp;return message;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建带附件的邮件<br />
&nbsp; * <br />
&nbsp; * @param subject<br />
&nbsp; * @param content<br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; * @return<br />
&nbsp; * @throws MessagingException<br />
&nbsp; */<br />
&nbsp;protected Message createAttachMessage(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;File attachment, String recipientTO, String recipientCC,<br />
&nbsp;&nbsp;&nbsp;String recipientBCC) throws MessagingException {<br />
&nbsp;&nbsp;Message message = createBlankMessage(recipientTO, recipientCC,<br />
&nbsp;&nbsp;&nbsp;&nbsp;recipientBCC);</p>
<p>&nbsp;&nbsp;// 设置邮件标题<br />
&nbsp;&nbsp;message.setSubject(subject);</p>
<p>&nbsp;&nbsp;// 设置发送时间<br />
&nbsp;&nbsp;message.setSentDate(new Date(System.currentTimeMillis()));</p>
<p>&nbsp;&nbsp;// 创建存放邮件内容的BodyPart对象<br />
&nbsp;&nbsp;BodyPart bp = new MimeBodyPart();<br />
&nbsp;&nbsp;bp.setContent(content, "text/html;charset=gb2312");</p>
<p>&nbsp;&nbsp;// 创建一个MimeMultipart来存放BodyPart对象<br />
&nbsp;&nbsp;Multipart mp = new MimeMultipart();<br />
&nbsp;&nbsp;mp.addBodyPart(bp);</p>
<p>&nbsp;&nbsp;// 设置邮件的附件<br />
&nbsp;&nbsp;bp = new MimeBodyPart();<br />
&nbsp;&nbsp;FileDataSource fds = new FileDataSource(attachment.getName());<br />
&nbsp;&nbsp;DataHandler dh = new DataHandler(fds);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;bp.setFileName(new String(attachment.getName().getBytes("gb2312")));<br />
&nbsp;&nbsp;} catch (UnsupportedEncodingException e) {<br />
&nbsp;&nbsp;&nbsp;final String errMess = "Caught exception while encoding file name:"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ attachment.getName();<br />
&nbsp;&nbsp;&nbsp;logger.error(errMess);<br />
&nbsp;&nbsp;&nbsp;throw new MailException(errMess, e);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;bp.setDataHandler(dh);<br />
&nbsp;&nbsp;mp.addBodyPart(bp);</p>
<p>&nbsp;&nbsp;message.setContent(mp);<br />
&nbsp;&nbsp;message.saveChanges();<br />
&nbsp;&nbsp;return message;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 创建空白邮件<br />
&nbsp; * <br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; * @return<br />
&nbsp; * @throws MessagingException<br />
&nbsp; */<br />
&nbsp;protected Message createBlankMessage(String recipientTO,<br />
&nbsp;&nbsp;&nbsp;String recipientCC, String recipientBCC) throws MessagingException {<br />
&nbsp;&nbsp;Message message = new MimeMessage(session);</p>
<p>&nbsp;&nbsp;// 设置发件人<br />
&nbsp;&nbsp;InternetAddress from = new InternetAddress("mfktfp2004@163.com");<br />
&nbsp;&nbsp;message.setFrom(from);</p>
<p>&nbsp;&nbsp;// 设置收件人<br />
&nbsp;&nbsp;InternetAddress to = new InternetAddress(recipientTO);<br />
&nbsp;&nbsp;message.setRecipient(Message.RecipientType.TO, to);<br />
&nbsp;&nbsp;if (StringUtil.isNotEmpty(recipientCC)) {<br />
&nbsp;&nbsp;&nbsp;InternetAddress cc = new InternetAddress(recipientCC);<br />
&nbsp;&nbsp;&nbsp;message.setRecipient(Message.RecipientType.CC, cc);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;if (StringUtil.isNotEmpty(recipientBCC)) {<br />
&nbsp;&nbsp;&nbsp;InternetAddress bcc = new InternetAddress(recipientBCC);<br />
&nbsp;&nbsp;&nbsp;message.setRecipient(Message.RecipientType.BCC, bcc);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return message;<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 发送邮件<br />
&nbsp; * <br />
&nbsp; * @param message<br />
&nbsp; * @throws MessagingException<br />
&nbsp; */<br />
&nbsp;public void sendEmail(Message message) throws MessagingException {<br />
&nbsp;&nbsp;// 以smtp方式登陆邮箱<br />
&nbsp;&nbsp;Transport transport = session.getTransport("smtp");<br />
&nbsp;&nbsp;transport.connect("smtp.163.com", "mfktfp2004", "19850921"); // SMTP地址，用户名，密码</p>
<p>&nbsp;&nbsp;// 发送邮件<br />
&nbsp;&nbsp;transport.sendMessage(message, message.getAllRecipients());<br />
&nbsp;&nbsp;transport.close();<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 发送纯文本邮件<br />
&nbsp; * <br />
&nbsp; * @param subject<br />
&nbsp; * @param content<br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; */<br />
&nbsp;public void sendMimeEmail(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;String recipientTO, String recipientCC, String recipientBCC) {<br />
&nbsp;&nbsp;Message message = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;message = createMimeMessage(subject, content, recipientTO,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recipientCC, recipientBCC);<br />
&nbsp;&nbsp;&nbsp;sendEmail(message);<br />
&nbsp;&nbsp;} catch (MessagingException e) {<br />
&nbsp;&nbsp;&nbsp;logger.error("Send mime email failure", e);<br />
&nbsp;&nbsp;&nbsp;throw new MailException("Error sending email, failure", e);<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 发送带HTML内容的邮件<br />
&nbsp; * <br />
&nbsp; * @param subject<br />
&nbsp; * @param content<br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; */<br />
&nbsp;public void sendHTMLEmail(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;String recipientTO, String recipientCC, String recipientBCC) {<br />
&nbsp;&nbsp;Message message = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;message = createHTMLMessage(subject, content, recipientTO,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recipientCC, recipientBCC);<br />
&nbsp;&nbsp;&nbsp;sendEmail(message);<br />
&nbsp;&nbsp;} catch (MessagingException e) {<br />
&nbsp;&nbsp;&nbsp;logger.error("Send html email failure", e);<br />
&nbsp;&nbsp;&nbsp;throw new MailException("Error sending email, failure", e);<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;/**<br />
&nbsp; * 发送带附件的邮件<br />
&nbsp; * <br />
&nbsp; * @param subject<br />
&nbsp; * @param content<br />
&nbsp; * @param recipientTO<br />
&nbsp; * @param recipientCC<br />
&nbsp; * @param recipientBCC<br />
&nbsp; */<br />
&nbsp;public void sendAttachEmail(String subject, String content,<br />
&nbsp;&nbsp;&nbsp;File attachment, String recipientTO, String recipientCC,<br />
&nbsp;&nbsp;&nbsp;String recipientBCC) {<br />
&nbsp;&nbsp;Message message = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;message = createAttachMessage(subject, content, attachment,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recipientTO, recipientCC, recipientBCC);<br />
&nbsp;&nbsp;&nbsp;sendEmail(message);<br />
&nbsp;&nbsp;} catch (MessagingException e) {<br />
&nbsp;&nbsp;&nbsp;logger.error("Send html email failure", e);<br />
&nbsp;&nbsp;&nbsp;throw new MailException("Error sending email, failure", e);<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public Message getMessage() {<br />
&nbsp;&nbsp;return message;<br />
&nbsp;}</p>
<p>&nbsp;public void setMessage(Message message) {<br />
&nbsp;&nbsp;this.message = message;<br />
&nbsp;}</p>
<p>&nbsp;public Session getSession() {<br />
&nbsp;&nbsp;return session;<br />
&nbsp;}</p>
<p>&nbsp;public void setSession(Session session) {<br />
&nbsp;&nbsp;this.session = session;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;MailClient client = new MailClient();<br />
&nbsp;&nbsp;client.sendMimeEmail("test", "test", "zhouqian1103@163.com", null, null);<br />
&nbsp;}<br />
}<br />
<br />
<br />
</p>
<p>public class MailException extends RuntimeException {<br />
&nbsp;private static final long serialVersionUID = 1L;<br />
&nbsp;<br />
&nbsp;/** Throwable实例 */<br />
&nbsp;protected Throwable throwable;<br />
&nbsp;<br />
&nbsp;public MailException() {<br />
&nbsp;&nbsp;super();<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public MailException(String message) {<br />
&nbsp;&nbsp;super(message);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public MailException(Throwable cause) {<br />
&nbsp;&nbsp;this.throwable = cause;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public MailException(String message, Throwable cause) {<br />
&nbsp;&nbsp;super(message);<br />
&nbsp;&nbsp;this.throwable = cause;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void printStackTrace(PrintStream ps) {<br />
&nbsp;&nbsp;super.printStackTrace(ps);<br />
&nbsp;&nbsp;if (throwable != null) {<br />
&nbsp;&nbsp;&nbsp;ps.println("with nested Exception:" + throwable);<br />
&nbsp;&nbsp;&nbsp;throwable.printStackTrace(ps);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public void printStackTrace(PrintWriter pw) {<br />
&nbsp;&nbsp;super.printStackTrace(pw);<br />
&nbsp;&nbsp;if (throwable != null) {<br />
&nbsp;&nbsp;&nbsp;pw.println("with nested Exception:" + throwable);<br />
&nbsp;&nbsp;&nbsp;throwable.printStackTrace(pw);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String toString() {<br />
&nbsp;&nbsp;if (throwable == null) {<br />
&nbsp;&nbsp;&nbsp;return super.toString();<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;return super.toString() + "with nested exception:" + throwable;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public Throwable getThrowable() {<br />
&nbsp;&nbsp;return throwable;<br />
&nbsp;}<br />
}</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/chou/aggbug/258908.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chou/" target="_blank">chou</a> 2009-03-10 20:26 <a href="http://www.blogjava.net/chou/archive/2009/03/10/258908.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml提交数据</title><link>http://www.blogjava.net/chou/archive/2008/08/28/225252.html</link><dc:creator>chou</dc:creator><author>chou</author><pubDate>Thu, 28 Aug 2008 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/chou/archive/2008/08/28/225252.html</guid><wfw:comment>http://www.blogjava.net/chou/comments/225252.html</wfw:comment><comments>http://www.blogjava.net/chou/archive/2008/08/28/225252.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chou/comments/commentRss/225252.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chou/services/trackbacks/225252.html</trackback:ping><description><![CDATA[<p>前台：<br />
&nbsp;&nbsp;&nbsp;&nbsp; var url = "filter.do?action=filter";<br />
&nbsp;&nbsp;&nbsp;&nbsp; var xmlDocument = XmlDocument.create();<br />
&nbsp;&nbsp;&nbsp;&nbsp; var filterInfo = xmlDocument.createElement("filterInfo");<br />
&nbsp;&nbsp;&nbsp;&nbsp; xmlDocument.appendChild(filterInfo);<br />
&nbsp;&nbsp;&nbsp;&nbsp; appendSimpleChildNode(xmlDocument, filterInfo, "type", type);<br />
&nbsp;&nbsp;&nbsp;&nbsp; appendSimpleChildNode(xmlDocument, filterInfo, "condition", condition);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp = XmlHttp.create();<br />
&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp.open("POST", url, false);<br />
&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp.send(xmlDocument.xml);<br />
&nbsp;&nbsp;&nbsp;&nbsp; var xmlString = xmlHttp.responseText;<br />
&nbsp;&nbsp;&nbsp;&nbsp; return xmlString;</p>
<p>后台：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAXBuilder saxb = new SAXBuilder();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Document doc = saxb.build(request.getInputStream());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element root = doc.getRootElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String type = root.getChildText("type"); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String inputCondition = root.getChildText("condition"); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<img src ="http://www.blogjava.net/chou/aggbug/225252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chou/" target="_blank">chou</a> 2008-08-28 12:37 <a href="http://www.blogjava.net/chou/archive/2008/08/28/225252.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>最近写的一些东西</title><link>http://www.blogjava.net/chou/archive/2008/08/09/220996.html</link><dc:creator>chou</dc:creator><author>chou</author><pubDate>Sat, 09 Aug 2008 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/chou/archive/2008/08/09/220996.html</guid><wfw:comment>http://www.blogjava.net/chou/comments/220996.html</wfw:comment><comments>http://www.blogjava.net/chou/archive/2008/08/09/220996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chou/comments/commentRss/220996.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chou/services/trackbacks/220996.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 工作中写的一些东西：<br />
/**<br />
&nbsp;* 操作配置文件<br />
&nbsp;* @author&nbsp;chou<br />
&nbsp;* @version [版本号,2008-07-20]<br />
&nbsp;* @see [相关类/方法]<br />
&nbsp;* @since [产品/模块版本]<br />
&nbsp;*/<br />
public class ResourceConfig<br />
{<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获得指定文件的流对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param fileName&nbsp; 文件名<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return&nbsp; 指向文件的流<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static InputStream getConfigFileStream(String fileName)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ResourceConfig.class.getResourceAsStream(fileName);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获取配置文件内容<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param fileName 文件名<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return&nbsp; 文件内容<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String getConfigFileContent(String fileName)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStream inputStream = ResourceConfig.class.getResourceAsStream(fileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedInputStream in = new BufferedInputStream(inputStream);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByteArrayOutputStream out = new ByteArrayOutputStream(10240);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buf = new byte[1024];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len;<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;&nbsp;&nbsp;&nbsp; while ((len = in.read(buf)) &gt;= 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.write(buf, 0, len);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (IOException e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO Auto-generated catch block<br />
&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; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new String(out.toByteArray());<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获取匹配文件的路径<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return 匹配文件的路径<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String getConfigFilePath()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResourceConfig resConf = new ResourceConfig();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // web工程Clasess本地路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String webPath = resConf.getClass().getClassLoader().getResource("")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .getPath();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 获得配置文件中的包名<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String packagepath = resConf.getClass().getPackage().toString();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 转换配置文件本地路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String packagePath = packagepath.substring(8).replace(".","/")+"/";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String configFilePath = webPath+packagePath;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return configFilePath;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获取class文件的绝对路径<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String getClassPath(Class cls) {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.net.URL url = getClassLocationURL(cls);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (url != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = url.getPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ("jar".equalsIgnoreCase(url.getProtocol())) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; path = new java.net.URL(path).getPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int location = path.indexOf("!/");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (location != -1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = path.substring(0, location);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<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; java.io.File file = new java.io.File(path);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = file.getCanonicalPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return pathChange(path);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获取class文件位置的URL<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static java.net.URL getClassLocationURL(final Class cls) {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.net.URL result = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String clsAsResource = cls.getName().replace('.', '/').concat(".class");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.security.ProtectionDomain pd = cls.getProtectionDomain();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * java.lang.Class contract does not specify if 'pd' can ever be null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * it is not the case for Sun's implementations, but guard against null<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * just in case:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pd != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.security.CodeSource cs = pd.getCodeSource();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 'cs' can be null depending on the classloader behavior:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cs != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = cs.getLocation();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ("file".equals(result.getProtocol())) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result.toExternalForm().endsWith(".jar")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; || result.toExternalForm().endsWith(".zip"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = new java.net.URL("jar:".concat(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.toExternalForm()).concat("!/")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .concat(clsAsResource));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (new File(result.getFile()).isDirectory())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = new java.net.URL(result, clsAsResource);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ClassLoader clsLoader = cls.getClassLoader();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = clsLoader != null ? clsLoader.getResource(clsAsResource)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ClassLoader.getSystemResource(clsAsResource);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 将"\"转变"/",用于路径转换<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String pathChange(String befstr) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer afStr = new StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; befstr.length(); i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((befstr.charAt(i)) == '\\')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; afStr.append(String.valueOf('/'));<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; afStr.append(befstr.substring(i, i + 1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return afStr.toString();<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(getConfigFileContent("formattedfilter.xml"));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // System.out.println(getClassPath(StringUtil.class));<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
<br />
</p>
<p>/**<br />
&nbsp;* XML文件解析成对象的接口实现类<br />
&nbsp;* @author&nbsp;chou<br />
&nbsp;* @version [版本,2008-07-26]<br />
&nbsp;* @see [相关类/方法]<br />
&nbsp;* @since [产品/模块版本]<br />
&nbsp;*/<br />
public class SQLFilterConfigManagerImpl implements SQLFilterConfigManager,<br />
&nbsp;&nbsp;InitializingBean {<br />
<br />
&nbsp;// &nbsp;常量定义<br />
&nbsp;private static final String ATTRIBUTE_NAME = "name";<br />
&nbsp;private static final String ATTRIBUTE_PREFIXION = "prefixion";<br />
&nbsp;private static final String ATTRIBUTE_PROPERTY = "property";<br />
&nbsp;private static final String ATTRIBUTE_CONTENT = "content";<br />
&nbsp;private static final String FILENAME = "formattedfilter.xml";<br />
&nbsp;<br />
&nbsp;/** 配置文件对应的对象 */<br />
&nbsp;private Map data = null;</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * InitializingBean接口方法<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;public void afterPropertiesSet() throws Exception <br />
&nbsp;{<br />
&nbsp;&nbsp;loadXml();<br />
&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 将XML文件内容解析为对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private void loadXml() <br />
&nbsp;{<br />
&nbsp;&nbsp;Map ldata = new HashMap();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStream fileStream = ResourceConfig.getConfigFileStream(FILENAME);<br />
&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;<br />
&nbsp; &nbsp;//&nbsp; 获取配置文件的根结点<br />
&nbsp;&nbsp;&nbsp;Element root = OperateXML.getRoot(fileStream);</p>
<p>&nbsp;&nbsp;&nbsp;// 获取根结点下的子结点<br />
&nbsp;&nbsp;&nbsp;List typeList = OperateXML.getSubNodes(root);<br />
&nbsp;&nbsp;&nbsp;if (typeList != null) <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;for (Iterator iterator = typeList.iterator(); iterator<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hasNext();) <br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element e = (Element) iterator.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TypeConfig type = loadTypeConfig(e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (type != null) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fillTypeConfig(type, e);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldata.put(type.getName(), type);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;data = ldata;<br />
&nbsp;&nbsp;} <br />
&nbsp;&nbsp;finally <br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;if (fileStream != null)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;try <br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileStream.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;catch (IOException e) <br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 生成并初始化TypeConfig对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param e XML结点元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private TypeConfig loadTypeConfig(Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;TypeConfig type = new TypeConfig();<br />
&nbsp;&nbsp;type.setName(e.attributeValue(ATTRIBUTE_NAME));<br />
&nbsp;&nbsp;return type;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;private void fillTypeConfig(TypeConfig type, Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;List typeList = OperateXML.getSubNodes(e);<br />
&nbsp;&nbsp;if (typeList != null &amp;&amp; typeList.size() &gt; 0)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;Set set = new HashSet();<br />
&nbsp;&nbsp;&nbsp;for (Iterator iterator = typeList.iterator(); iterator.hasNext();) <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Element ef = (Element) iterator.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;FilterFormatter formatter = loadFilterFormatter(ef);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (formatter != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fillFilterFormatter(formatter, ef);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set.add(formatter);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;type.setFomatters(set);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 给FilterFormatter对象设定属性值<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param formatter 要设定属性值的FilterFormatter对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param e XML文件结点元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private void fillFilterFormatter(FilterFormatter formatter, Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;List typeList = OperateXML.getSubNodes(e);<br />
&nbsp;&nbsp;if (typeList != null &amp;&amp; typeList.size() &gt; 0)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;Set set = new HashSet();<br />
&nbsp;&nbsp;&nbsp;for (Iterator iterator = typeList.iterator(); iterator.hasNext();) <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Element ef = (Element) iterator.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;FormatterCondition formatterCondition = loadFormatterCondition(ef);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (formatterCondition != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fillFormatterCondition(formatterCondition, ef);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set.add(formatterCondition);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;formatter.setConditions(set);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 给FormatterCondition对象设定属性值<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param formatter 要设定属性值的FormatterCondition对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param e XML文件结点元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private void fillFormatterCondition(FormatterCondition formatterCondition, Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;List typeList = OperateXML.getSubNodes(e);<br />
&nbsp;&nbsp;if (typeList != null &amp;&amp; typeList.size() &gt; 0)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;Set set = new HashSet();<br />
&nbsp;&nbsp;&nbsp;for (Iterator iterator = typeList.iterator(); iterator.hasNext();) <br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Element ef = (Element) iterator.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;Example eg = new Example();<br />
&nbsp;&nbsp;&nbsp;&nbsp;//eg.setExample(e.attributeValue(ATTRIBUTE_EXAMPLE));<br />
&nbsp;&nbsp;&nbsp;&nbsp;eg.setExample(ef.getText());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set.add(eg);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;formatterCondition.setExamples(set);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; /* private void fillExample(Example example, Element e)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; example.setExample(e.getText());<br />
&nbsp;&nbsp;&nbsp; }*/<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 生成并初始化FormatterCondition对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param e XML结点元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private FormatterCondition loadFormatterCondition(Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;FormatterCondition formatterCondition = new FormatterCondition();<br />
&nbsp;&nbsp;formatterCondition.setContent(e.attributeValue(ATTRIBUTE_CONTENT));<br />
&nbsp;&nbsp;return formatterCondition;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 生成并初始化FilterFormatter对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param e XML结点元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;private FilterFormatter loadFilterFormatter(Element e)<br />
&nbsp;{<br />
&nbsp;&nbsp;FilterFormatter formatter = new FilterFormatter();<br />
&nbsp;&nbsp;formatter.setPrefixion(e.attributeValue(ATTRIBUTE_PREFIXION));<br />
&nbsp;&nbsp;formatter.setProperty(e.attributeValue(ATTRIBUTE_PROPERTY));<br />
&nbsp;&nbsp;return formatter;<br />
&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 获取指定类型字段的过滤格式和例子的Map<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param type&nbsp; 字段类型<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return&nbsp; 封装了该字段类型的过滤格式和例子的Map<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;public TypeConfig getTypeConfig(String key) {<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;return (TypeConfig)data.get(key);<br />
&nbsp;}</p>
<p>}<br />
<br />
<br />
</p>
<p>/**<br />
&nbsp;* 文件操作类<br />
&nbsp;* @author&nbsp;chou<br />
&nbsp;* @version [版本号,2008-8-4]<br />
&nbsp;* @see [相关类/方法]<br />
&nbsp;* @since [产品/模块版本]<br />
&nbsp;*/<br />
public class OperateFile<br />
{<br />
&nbsp;&nbsp;&nbsp; /**下载文件的编码格式*/<br />
&nbsp;&nbsp;&nbsp; private static final String FILECODING = "UTF-8";<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**日志类*/<br />
&nbsp;&nbsp;&nbsp; private final Logger log = Logger.getLogger(getClass()); <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; private static final String CONTENT_TYPE = "application/octet-stream";<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 下载文件<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param fileName 文件名称加路径<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IOException<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public void downFile(String fileName, byte[] fileContent, HttpServletResponse res, HttpServletRequest req) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws BaseException<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String downFileName = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedOutputStream bos = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (fileContent != null &amp;&amp; fileContent.length &gt;= 0&nbsp; &amp;&amp; res != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<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; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res.setContentType(CONTENT_TYPE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(fileName == null || fileName.equals("") == true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileName = "anonymous";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; downFileName = URLEncoder.encode(fileName, FILECODING);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.getHeader("User-Agent").indexOf("MSIE 5.5") != -1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res.setHeader("Content-disposition", "filename=" + downFileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res.setHeader("Content-disposition", "attachment; filename=" + downFileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] buff = fileContent;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos = new BufferedOutputStream(res.getOutputStream());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.write(buff);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<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; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("文件下载: " + e + " 文件下载异常！");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bos != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("文件下载: " + e + " 文件下载异常！");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bos.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.info("文件下载: " + e + " 文件下载异常！");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
</p>
<p><br />
<br />
<br />
<br />
</p>
<p>public class OperateJson<br />
{<br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 本方法提供将List集合中的convertObj对象转换到JSONArray集合中JSONObject,<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 返回转换为JSONObject之后的JSONArray集合<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param convertObj List集合中对象的Class<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param list 需要转换为JSONArray集合的数据<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IllegalAccessException<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IllegalArgumentException<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws Exception<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public JSONArray convertJSONArray(Class&lt;?&gt; convertObj, List list)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws IllegalArgumentException, IllegalAccessException<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONArray array = new JSONArray();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject jObj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Field[] fields = convertObj.getDeclaredFields();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object obj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = list.iterator(); iter.hasNext(); array.add(jObj))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj = iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj = new JSONObject();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; fields.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element(fields[i].getName(), fields[i].get(obj));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return array;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public JSONArray convertJSONArrayByField(Class&lt;?&gt; convertObj, List list)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws IllegalArgumentException, IllegalAccessException, SecurityException,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NoSuchMethodException, InvocationTargetException<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONArray array = new JSONArray();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject jObj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Field[] fields = convertObj.getDeclaredFields();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object obj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = list.iterator(); iter.hasNext(); array.add(jObj))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj = iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj = new JSONObject();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; fields.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String name = fields[i].getName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String xx = name.substring(0, 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = name.substring(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = xx.toUpperCase() + name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Method method = convertObj.getMethod("get" + name);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element(fields[i].getName(), method.invoke(obj));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return array;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param convertObj<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param list<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IllegalArgumentException<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IllegalAccessException<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public String toJSONString(Class&lt;?&gt; convertObj, List list) throws IllegalArgumentException,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IllegalAccessException<br />
&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Field[] fields = convertObj.getFields();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object obj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer value = new StringBuffer("[");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator iter = list.iterator(); iter.hasNext();)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj = iter.next();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; fields.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i != 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append(",{");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&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; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("{");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("'" + fields[i].getName() + "':'" + fields[i].get(obj) + "',");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("]");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value.toString();<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 该方法把数组对象转换成jsonObj形式的字符串<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param arrayObj<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String toJSONString(String[][] arrayObj)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer value = new StringBuffer("[");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; arrayObj.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] field = arrayObj[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i != 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append(",{");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<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; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("{");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("'id':'" + field[0] + "',");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("'name':'" + field[1] + "',");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("'descn':'" + field[2] + "'");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("}");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value.append("]");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return value.toString();<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param arrayObj<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static String convertJSONArray(String[][] arrayObj)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONArray array = new JSONArray();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject jObj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; arrayObj.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] field = arrayObj[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj = new JSONObject();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("id", field[0]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("name", field[1]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("descn", field[2]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array.add(jObj);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return array.toString();<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 通过List对象获得公告的JSON对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param list<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param loginUser 当前登陆用户编号<br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return JSONObject<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public JSONObject convertJSONBulletin(List list, User loginUser, int count)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 创建一个JSONArray对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONArray array = new JSONArray();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 创建一个保存公告的对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject jObj = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JSONObject totle = new JSONObject();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 格式化时间格式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 确定集合的大小<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int size = list.size();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 遍历List对象</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; size; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj = new JSONObject();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bulletins bulletins = (Bulletins) list.get(i);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("newsID", bulletins.getNewsId()); // 设置公告编号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("status", bulletins.getNewsStatus()); // 设置公告的状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("newsType", bulletins.getNewsType()); // 设置公告的类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("newTitle", bulletins.getNewsTitle()); // 设置公告标题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("newsGroup", bulletins.getGroupName()); // 设置公告的归属<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("startDate", sdf.format(bulletins.getBeginTime()).substring(0, 10)); // 设置公告开始时间<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("endDate", sdf.format(bulletins.getEndTime()).substring(0, 10)); // 设置公告结束时间<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("popType", bulletins.getPopType()); // 设置公告的弹出方式<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("groupCode", bulletins.getFGroupcode()); // 设置公告的归属部门编号<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jObj.element("userId", loginUser.getId()); // 设置公告创建人编号</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array.add(jObj);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totle.accumulate("totalRecord", count);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totle.accumulate("records", array);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return totle;<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public static void main(String[] args)<br />
&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[][] array = new String[10][3];</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; array.length; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array[i][0] = i + "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array[i][1] = "name " + i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array[i][2] = "descn " + i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long jsona = System.currentTimeMillis();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String json1 = OperateJson.convertJSONArray(array);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long jsonb = System.currentTimeMillis();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(json1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("===========" + (jsonb - jsona));</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long a = System.currentTimeMillis();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String c = OperateJson.toJSONString(array);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long b = System.currentTimeMillis();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(c);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("===========" + (b - a));<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/chou/aggbug/220996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chou/" target="_blank">chou</a> 2008-08-09 13:08 <a href="http://www.blogjava.net/chou/archive/2008/08/09/220996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>