﻿<?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-hyljava-随笔分类-java</title><link>http://www.blogjava.net/hyljava/category/51537.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 04 Apr 2016 15:35:21 GMT</lastBuildDate><pubDate>Mon, 04 Apr 2016 15:35:21 GMT</pubDate><ttl>60</ttl><item><title>java发送邮件</title><link>http://www.blogjava.net/hyljava/archive/2016/04/03/429948.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Sun, 03 Apr 2016 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2016/04/03/429948.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/429948.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2016/04/03/429948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/429948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/429948.html</trackback:ping><description><![CDATA[<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Java<font face="宋体">使用网易邮箱服务器发送邮件实例</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">1 <font face="宋体">下载发送</font><font face="Calibri">mail</font><font face="宋体">需要的</font><font face="Calibri">jar</font><font face="宋体">包</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">a</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">ctivation.jar</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">&nbsp;&nbsp;与 &nbsp;<font face="Calibri">mail.jar</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">2 <font face="宋体">创建 </font><font face="Calibri">SendMail &nbsp;</font><font face="宋体">类</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">3 <font face="宋体">代码如下</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import java.util.Date;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import java.util.Properties;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.Address;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.Message;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.Session;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.Transport;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.internet.InternetAddress;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import javax.mail.internet.MimeMessage;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">import cn.founder.common.globals.Constants;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">public class SendMail {</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">public int send(String tfrom, String tto, String ttitle, String tcontent) {</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Properties props = new Properties();</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">props.put("mail.smtp.host", "smtp.263.net");</span><span style="font-family: 宋体; color: rgb(255,0,0); font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">//<font face="宋体">自己到网上查找网易发邮件的</font><font face="Calibri">smtp</font><font face="宋体">服务地址 你的发件邮箱如果是</font><font face="Calibri">163 &nbsp;</font><font face="宋体">你就查找</font><font face="Calibri">163</font><font face="宋体">的发件服务器</font></span><span style="font-family: 宋体; color: rgb(255,0,0); font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">props.put("mail.smtp.auth", "true");</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Session s = Session.getInstance(props, null);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">s.setDebug(true);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Message message = new MimeMessage(s);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">try {</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Address from = new InternetAddress(tfrom);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.setFrom(from);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Address to = new InternetAddress(tto);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.setRecipient(Message.RecipientType.TO, to);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); &nbsp;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.setSubject("=?utf-8?B?"+enc.encode(ttitle.getBytes("utf-8"))+"?=");</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.setContent(tcontent, "text/html;charset=utf-8");</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.setSentDate(new Date());</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">message.saveChanges();</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Transport transport = s.getTransport("smtp");</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="text-indent: 21pt; margin: 0pt 0pt 0pt 42pt; mso-para-margin-left: 0.0000gd; mso-char-indent-count: 0.0000" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">//</span><span style="font-family: 宋体; color: rgb(255,0,0); font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">第一个参数是发件服务器 &nbsp;&nbsp;第二个是你发件的邮箱名 &nbsp;第三个是你发件邮箱的密码</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">transport.connect("smtp.263.net",</span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-family: 宋体; color: rgb(255,0,0); font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">发件邮箱</span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">,</span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-family: 宋体; color: rgb(255,0,0); font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">发件邮箱密码</span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">);</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">transport.sendMessage(message, message.getAllRecipients());</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">transport.close();</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">return 0;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">} catch (Exception e) {</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">e.printStackTrace();</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">return 1;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">}</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">}</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">/**</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">&nbsp;* getEmailServiceIp</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">&nbsp;* @return EmailServiceIp</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">&nbsp;*/</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">public static void main(String[] args) {</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="text-indent: 21pt; margin: 0pt; mso-char-indent-count: 0.0000" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">//<font face="宋体">第一个参数 发件邮箱 &nbsp;&nbsp;第二个收件邮箱 &nbsp;第三个 邮件内容</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">&nbsp;</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"> </span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">new SendMail().send("yunlong090614@163.com", "1063342004@qq.com", "<font face="宋体">更改密码校验</font><font face="Calibri">", "</font><font face="宋体">尊敬的用户你好，您的校验码为：</font><font face="Calibri">65432&lt;/br&gt;xxxx");</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">}</span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p><!--EndFragment--><img src ="http://www.blogjava.net/hyljava/aggbug/429948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2016-04-03 11:04 <a href="http://www.blogjava.net/hyljava/archive/2016/04/03/429948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打 war包命令</title><link>http://www.blogjava.net/hyljava/archive/2015/08/19/426883.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Wed, 19 Aug 2015 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2015/08/19/426883.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/426883.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2015/08/19/426883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/426883.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/426883.html</trackback:ping><description><![CDATA[<!--StartFragment -->

<div>jar&nbsp;-cvf&nbsp;safety.war&nbsp;*<br />打 war包命令</div><img src ="http://www.blogjava.net/hyljava/aggbug/426883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2015-08-19 10:18 <a href="http://www.blogjava.net/hyljava/archive/2015/08/19/426883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打开eclipse弹出Error:could not open D:\java\lib\i386\jvm.cfg'</title><link>http://www.blogjava.net/hyljava/archive/2014/05/24/414060.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Sat, 24 May 2014 14:05:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2014/05/24/414060.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/414060.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2014/05/24/414060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/414060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/414060.html</trackback:ping><description><![CDATA[<pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" id="best-content-636257027" class="best-text mb-10" accuse="aContent"><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: bold 14px/26px Tahoma, Arial, Helvetica, sans-serif, SimSun; white-space: normal; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-stroke-width: 0px">打开eclipse弹出Error:could not open D:\java\lib\i386\jvm.cfg'</span></pre><pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" class="best-text mb-10" accuse="aContent">运行中 输入regedit </pre><pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" class="best-text mb-10" accuse="aContent">&nbsp;</pre><pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" class="best-text mb-10" accuse="aContent">没有修改注册表,解决办法是: <br />  重新安装JDK时注册表中\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environemt\1.6 项目下的JavaHome和RuntimeLib设置没有更新,将这两个项目更正即可. </pre><pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" class="best-text mb-10" accuse="aContent">&nbsp;</pre><pre style="padding-bottom: 0px; text-transform: none; background-color: rgb(241,254,221); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: 14px/24px arial, 'courier new', courier, 宋体, monospace; word-wrap: break-word; white-space: pre-wrap; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px" class="best-text mb-10" accuse="aContent">&nbsp;</pre><img src ="http://www.blogjava.net/hyljava/aggbug/414060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2014-05-24 22:05 <a href="http://www.blogjava.net/hyljava/archive/2014/05/24/414060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SpringMVC做二级联动</title><link>http://www.blogjava.net/hyljava/archive/2013/04/12/397747.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 12 Apr 2013 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2013/04/12/397747.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/397747.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2013/04/12/397747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/397747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/397747.html</trackback:ping><description><![CDATA[<div>&lt;select id="myCol" onchange="getChange()"&gt;</div><div><span style="white-space:pre">				</span>&lt;option value="1"&gt;</div><div><span style="white-space:pre">					</span>大连交大</div><div><span style="white-space:pre">				</span>&lt;/option&gt;</div><div><span style="white-space:pre">				</span>&lt;option value="2"&gt;</div><div><span style="white-space:pre">					</span>东北财经</div><div><span style="white-space:pre">				</span>&lt;/option&gt;</div><div><span style="white-space:pre">				</span>&lt;option value="3"&gt;</div><div><span style="white-space:pre">					</span>大连海事</div><div><span style="white-space:pre">				</span>&lt;/option&gt;</div><div>&lt;/select&gt;</div><div></div><div>&lt;select id="myGet"&gt;</div><div></div><div>&lt;/select&gt;<br /><br /><br /><div>&lt;script type="text/javascript" &nbsp;&gt;</div><div>function getChange() {</div><div><span style="white-space:pre">	</span>//获取到第一个select表单value值</div><div><span style="white-space:pre">	</span>var myCol = document.getElementById("myCol").value;</div><div>&nbsp;<span style="white-space:pre">	</span>//拼接成要获取值的url<span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>var url = "getCateGory?myCol=" + myCol; //url &nbsp;</div><div><span style="white-space:pre">	</span> //利用jquery的ajax方法，使用此方法要引jquery包</div><div><span style="white-space:pre">	</span>htmlobj = $.ajax( {</div><div><span style="white-space:pre">		</span>url : url,</div><div><span style="white-space:pre">		</span>async : false</div><div><span style="white-space:pre">	</span>});</div><div><span style="white-space:pre">	</span>//此处利用json处理值，还需要引json包，在服务器端可以使用GSON转化数据，响应当前页面</div><div><span style="white-space:pre">	</span>/*服务器端：</div><div><span style="white-space:pre">		</span>//需要引GSON包</div><div><span style="white-space:pre">	</span> &nbsp; //创建一个Gson对象</div><div><span style="white-space:pre">		</span>Gson gson = new Gson();</div><div><span style="white-space:pre">		</span>//返回一个json格式的字符串&nbsp;</div><div><span style="white-space:pre">	</span> <span style="white-space:pre">	</span>String pStr = gson.toJson(user);</div><div>&nbsp; &nbsp; &nbsp; <span style="white-space:pre">	</span>System.out.println(pStr);</div><div><span style="white-space:pre">		</span> out.print(pStr);</div><div><span style="white-space:pre">	</span>*/</div><div><span style="white-space:pre">	</span>//接取响应值，并且转化成JSON对象</div><div><span style="white-space:pre">	</span>var obj = JSON.parse(htmlobj.responseText);</div><div><span style="white-space:pre">	</span> //此变量是为拼接而做</div><div><span style="white-space:pre">	</span>var options = "";</div><div><span style="white-space:pre">	</span>var myGet = document.getElementById("myGet");</div><div></div><div><span style="white-space:pre">	</span>//myGet.removeChild("option");</div><div><span style="white-space:pre">	</span>//删除现有option节点</div><div><span style="white-space:pre">	</span>for ( var i = 1; i &lt;= myGet.length; i++) {</div><div><span style="white-space:pre">		</span>myGet.remove(i);</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span>myGet.remove(myGet.selectedIndex);</div><div>&nbsp; &nbsp;//利用循环，在此将新的option添加上</div><div>&nbsp; &nbsp;for(var i=0;i&lt;obj.length;i++){</div><div>&nbsp;<span style="white-space:pre">	</span> alert(obj[i].uUserName);</div><div>&nbsp; &nbsp; &nbsp;var myOption=document.createElement("option");</div><div>&nbsp;<span style="white-space:pre">	</span>myOption.setAttribute("value",obj[i].uId);</div><div>&nbsp;<span style="white-space:pre">	</span>var testN=document.createTextNode(obj[i].uUserName);</div><div><span style="white-space:pre">	</span> myOption.appendChild(testN);</div><div>&nbsp;<span style="white-space:pre">	</span> myGet.appendChild(myOption);</div><div>&nbsp;&nbsp;</div><div>&nbsp;//此种方法最简单，但是没有技术含量</div><div>&nbsp;//options+="&lt;option value='"+obj[i].uId+"'&gt;"+obj[i].uUserName+"&lt;/option&gt;";</div><div></div><div>&nbsp;}</div><div>// myGet.innerHTML=options;</div><div>&nbsp;&nbsp;</div><div>}</div><div></div><div></div><div>&lt;/script&gt;</div></div><img src ="http://www.blogjava.net/hyljava/aggbug/397747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2013-04-12 15:30 <a href="http://www.blogjava.net/hyljava/archive/2013/04/12/397747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>包含分页的JDBC工具类</title><link>http://www.blogjava.net/hyljava/archive/2013/02/28/395880.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Thu, 28 Feb 2013 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2013/02/28/395880.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/395880.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2013/02/28/395880.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/395880.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/395880.html</trackback:ping><description><![CDATA[包含分页的JDBC工具类<br /><div>package com.shxt.tool;</div><div></div><div>import java.sql.Connection;</div><div>import java.sql.DriverManager;</div><div>import java.sql.ParameterMetaData;</div><div>import java.sql.PreparedStatement;</div><div>import java.sql.ResultSet;</div><div>import java.sql.ResultSetMetaData;</div><div>import java.sql.SQLException;</div><div>import java.sql.Statement;</div><div>import java.util.ArrayList;</div><div>import java.util.HashMap;</div><div>import java.util.Map;</div><div></div><div>/**</div><div>&nbsp;* @Author：何云龙</div><div>&nbsp;* @Version:JDBC封装1.1 2012-11-29 下午06:38:55</div><div>&nbsp;* @Description:jdbc的封装</div><div>&nbsp;*/</div><div>public class DBUtil {</div><div><span style="white-space:pre">	</span>private String url = "jdbc:mysql://localhost:3306/sduentdb";</div><div><span style="white-space:pre">	</span>private String userName = "root";</div><div><span style="white-space:pre">	</span>private String passWord = "root";</div><div><span style="white-space:pre">	</span>private Connection conn = null;</div><div><span style="white-space:pre">	</span>private Statement st = null;</div><div><span style="white-space:pre">	</span>private PreparedStatement ps = null;</div><div><span style="white-space:pre">	</span>private ResultSet rs=null;</div><div><span style="white-space:pre">	</span></div><div></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div></div><div><span style="white-space:pre">	</span>// 加载驱动，只加载一次即可</div><div><span style="white-space:pre">	</span>static {</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>// System.out.println("加载驱动正在进行");</div><div><span style="white-space:pre">			</span>Class.forName("com.mysql.jdbc.Driver");</div><div><span style="white-space:pre">		</span>} catch (ClassNotFoundException e) {</div><div><span style="white-space:pre">			</span>System.out.println("加载驱动遇到异常");</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>public Connection getConnection() {</div><div><span style="white-space:pre">		</span>// 创建连接</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>conn = DriverManager.getConnection(url, userName, passWord);</div><div><span style="white-space:pre">			</span>return conn;</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>System.out.println("创建连接出现异常！！");</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div></div><div><span style="white-space:pre">		</span>return null;</div><div></div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>public int update(String sql) {</div><div><span style="white-space:pre">		</span>// row是指受影响的行数</div><div><span style="white-space:pre">		</span>int row = -1;</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>// 当前连接如果是空或者被关闭，需要重新创建一个连接</div><div><span style="white-space:pre">			</span>if (conn == null || conn.isClosed()) {</div><div><span style="white-space:pre">				</span>conn = getConnection();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">			</span>st = conn.createStatement();</div><div><span style="white-space:pre">			</span>row = st.executeUpdate(sql);</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}finally{</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>//关闭资源</div><div><span style="white-space:pre">			</span>release();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>return row;</div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>public int update(String sql, Object[] obj) {</div><div><span style="white-space:pre">		</span>int row = -1;</div><div></div><div><span style="white-space:pre">		</span>// 当前连接如果是空或者被关闭，需要重新创建一个连接</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if (conn == null || conn.isClosed()) {</div><div><span style="white-space:pre">				</span>conn = getConnection();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">			</span>ps = conn.prepareStatement(sql);</div><div><span style="white-space:pre">			</span>// 参数结构数据对象</div><div><span style="white-space:pre">			</span>ParameterMetaData pmd = ps.getParameterMetaData();</div><div></div><div><span style="white-space:pre">			</span>int varCount = pmd.getParameterCount();</div><div></div><div><span style="white-space:pre">			</span>// 给sql语句中的问号？附上值</div><div><span style="white-space:pre">			</span>for (int i = 0; i &lt; varCount; i++) {</div><div><span style="white-space:pre">				</span>ps.setObject(i + 1, obj[i]);</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">			</span>row = ps.executeUpdate();</div><div></div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}finally{</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>//关闭资源</div><div><span style="white-space:pre">			</span> release();</div><div><span style="white-space:pre">		</span>}</div><div></div><div><span style="white-space:pre">		</span>return row;</div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>public ArrayList&lt;Map&lt;String, Object&gt;&gt; queryToList(String sql) {</div><div><span style="white-space:pre">		</span>ArrayList&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;Map&lt;String, Object&gt;&gt;();</div><div><span style="white-space:pre">		</span>// 当前连接如果是空或者被关闭，需要重新创建一个连接</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if (conn == null || conn.isClosed()) {</div><div><span style="white-space:pre">				</span>conn = getConnection();</div><div><span style="white-space:pre">			</span>}</div><div></div><div><span style="white-space:pre">			</span>st = conn.createStatement();</div><div><span style="white-space:pre">			</span> rs = st.executeQuery(sql);</div><div></div><div><span style="white-space:pre">			</span>ResultSetMetaData rsmd = rs.getMetaData();</div><div><span style="white-space:pre">			</span>int col = rsmd.getColumnCount();</div><div>&nbsp;</div><div><span style="white-space:pre">			</span>while (rs.next()) {</div><div><span style="white-space:pre">				</span>Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();</div><div></div><div><span style="white-space:pre">				</span>for (int i = 1; i &lt;= col; i++) {</div><div><span style="white-space:pre">					</span>map.put(rsmd.getColumnName(i),</div><div><span style="white-space:pre">							</span>rs.getObject(rsmd.getColumnName(i)));</div><div><span style="white-space:pre">				</span>}</div><div></div><div><span style="white-space:pre">				</span>list.add(map);</div><div><span style="white-space:pre">				</span></div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>//<span style="white-space:pre">	</span>System.out.println(list);</div><div><span style="white-space:pre">			</span>return list;</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">		</span>} catch (Exception e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}finally{</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>//关闭资源</div><div><span style="white-space:pre">			</span>release();</div><div><span style="white-space:pre">		</span>&nbsp;</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>return null;</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>public ArrayList&lt;Map&lt;String, Object&gt;&gt; queryToList(String sql,String[] str) {</div><div><span style="white-space:pre">		</span>ArrayList&lt;Map&lt;String, Object&gt;&gt; list = new ArrayList&lt;Map&lt;String, Object&gt;&gt;();</div><div><span style="white-space:pre">		</span>// 当前连接如果是空或者被关闭，需要重新创建一个连接</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if (conn == null || conn.isClosed()) {</div><div><span style="white-space:pre">				</span>conn = getConnection();</div><div><span style="white-space:pre">			</span>}</div><div></div><div><span style="white-space:pre">			</span>ps = conn.prepareStatement(sql);</div><div><span style="white-space:pre">			</span>// 参数结构数据对象</div><div><span style="white-space:pre">			</span>ParameterMetaData pmd = ps.getParameterMetaData();</div><div></div><div><span style="white-space:pre">			</span>int varCount = pmd.getParameterCount();</div><div></div><div><span style="white-space:pre">			</span>// 给sql语句中的问号？附上值</div><div><span style="white-space:pre">			</span>for (int i = 0; i &lt; varCount; i++) {</div><div><span style="white-space:pre">				</span>ps.setString(i + 1, str[i]);</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span> rs = ps.executeQuery();</div><div></div><div><span style="white-space:pre">			</span>ResultSetMetaData rsmd = rs.getMetaData();</div><div><span style="white-space:pre">			</span>int col = rsmd.getColumnCount();</div><div></div><div><span style="white-space:pre">			</span>while (rs.next()) {</div><div><span style="white-space:pre">				</span>Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();</div><div></div><div><span style="white-space:pre">				</span>for (int i = 1; i &lt;= col; i++) {</div><div><span style="white-space:pre">					</span>map.put(rsmd.getColumnName(i),</div><div><span style="white-space:pre">							</span>rs.getObject(rsmd.getColumnName(i)));</div><div><span style="white-space:pre">				</span>}</div><div></div><div><span style="white-space:pre">				</span>list.add(map);</div><div><span style="white-space:pre">				</span></div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">			</span>return list;</div><div><span style="white-space:pre">		</span>} catch (Exception e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}finally{</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>//关闭资源</div><div><span style="white-space:pre">			</span>release();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>return null;</div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>private int pageSize;//页容量</div><div><span style="white-space:pre">	</span>private int rowsCount;//总记录数</div><div><span style="white-space:pre">	</span>private int start;//开始位置</div><div><span style="white-space:pre">	</span>private int end;//结束位置</div><div><span style="white-space:pre">	</span>private int pageNow;//当前页</div><div><span style="white-space:pre">	</span>public static int pageCount;//总页数</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>public &nbsp;ArrayList&lt;Map&lt;String, Object&gt;&gt; &nbsp;getPage(int pageSize,int pageNow,String sql){</div><div><span style="white-space:pre">		</span>rowsCount=queryToList(sql).size();//获取到总记录数</div><div><span style="white-space:pre">		</span>pageCount=rowsCount%pageSize==0?rowsCount/pageSize:(rowsCount/pageSize+1);//获取到总页数</div><div><span style="white-space:pre">		</span>start=pageNow*pageSize-pageSize;//开始位置</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>String sqlPage="select * from &nbsp;("+sql+") as t limit "+start+" , "+pageSize;</div><div><span style="white-space:pre">		</span></div><div>&nbsp;<span style="white-space:pre">		</span>ArrayList&lt;Map&lt;String, Object&gt;&gt; list=queryToList(sqlPage);</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>return list;</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">	</span>}</div><div>&nbsp;</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>//关闭资源 &nbsp;释放资源</div><div><span style="white-space:pre">	</span>public void release(){</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>if(rs!=null){</div><div><span style="white-space:pre">				</span>rs.close();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if(st!=null){</div><div><span style="white-space:pre">				</span>st.close();</div><div><span style="white-space:pre">			</span>}&nbsp;</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if(ps!=null){</div><div><span style="white-space:pre">				</span>ps.close();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>if(conn!=null){</div><div><span style="white-space:pre">				</span>conn.close();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>} catch (SQLException e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">	</span>&nbsp;</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">	</span>}</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>&nbsp;</div><div></div><div>}</div><div></div><img src ="http://www.blogjava.net/hyljava/aggbug/395880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2013-02-28 22:20 <a href="http://www.blogjava.net/hyljava/archive/2013/02/28/395880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现文件浏览功能</title><link>http://www.blogjava.net/hyljava/archive/2013/02/23/395632.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Sat, 23 Feb 2013 12:55:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2013/02/23/395632.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/395632.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2013/02/23/395632.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/395632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/395632.html</trackback:ping><description><![CDATA[<div>用java的图形用户界面实现文件浏览功能（需要导包）</div><div><div>import org.eclipse.swt.SWT;</div><div>import org.eclipse.swt.widgets.Display;</div><div>import org.eclipse.swt.widgets.FileDialog;</div><div>import org.eclipse.swt.widgets.MessageBox;</div><div>import org.eclipse.swt.widgets.Shell;</div><div>import org.eclipse.swt.widgets.Label;</div><div>import org.eclipse.swt.widgets.Text;</div><div>import org.eclipse.swt.widgets.Button;</div><div>import org.eclipse.swt.events.SelectionAdapter;</div><div>import org.eclipse.swt.events.SelectionEvent;</div><div>import org.eclipse.swt.widgets.Group;</div><div>import org.eclipse.wb.swt.SWTResourceManager;</div></div><div></div><div>public class TestShell &nbsp;{</div><div></div><div><span style="white-space:pre">	</span>protected Shell shell;</div><div>&nbsp;</div><div><span style="white-space:pre">	</span>private Text text_file;</div><div></div><div><span style="white-space:pre">	</span>&nbsp;</div><div><span style="white-space:pre">	</span>public static void main(String[] args) {</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>TestShell window = new TestShell();</div><div><span style="white-space:pre">			</span>window.open();</div><div><span style="white-space:pre">		</span>} catch (Exception e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>/**</div><div><span style="white-space:pre">	</span> * Open the window.</div><div><span style="white-space:pre">	</span> */</div><div><span style="white-space:pre">	</span>public void open() {</div><div><span style="white-space:pre">		</span>Display display = Display.getDefault();</div><div><span style="white-space:pre">		</span>createContents();</div><div><span style="white-space:pre">		</span>shell.open();</div><div><span style="white-space:pre">		</span>shell.layout();</div><div><span style="white-space:pre">		</span>while (!shell.isDisposed()) {</div><div><span style="white-space:pre">			</span>if (!display.readAndDispatch()) {</div><div><span style="white-space:pre">				</span>display.sleep();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div></div><div><span style="white-space:pre">	</span>/**</div><div><span style="white-space:pre">	</span> * Create contents of the window.</div><div><span style="white-space:pre">	</span> */</div><div><span style="white-space:pre">	</span>protected void createContents() {</div><div><span style="white-space:pre">		</span>shell = new Shell();</div><div><span style="white-space:pre">		</span>shell.setSize(500, 200);</div><div><span style="white-space:pre">		</span>shell.setText("解析WSDL");</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>text_file = new Text(shell, SWT.BORDER);</div><div><span style="white-space:pre">		</span>text_file.setBounds(80, 33, 290, 24);</div><div><span style="white-space:pre">		</span>//实现文件浏览功能</div><div><span style="white-space:pre">		</span>Button browseButton = new Button(shell,SWT.PUSH);</div><div><span style="white-space:pre">		</span>browseButton.setText("浏览...");</div><div><span style="white-space:pre">		</span>browseButton.setFont(SWTResourceManager.getFont("Tahoma", 12, SWT.NORMAL));</div><div><span style="white-space:pre">		</span>browseButton.setBounds(383, 33, 80, 24);</div><div><span style="white-space:pre">		</span>browseButton.addSelectionListener(new SelectionAdapter(){</div><div></div><div><span style="white-space:pre">			</span>/* (non-Javadoc)</div><div><span style="white-space:pre">			</span> * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)</div><div><span style="white-space:pre">			</span> */</div><div><span style="white-space:pre">			</span>public void widgetSelected(SelectionEvent e){</div><div><span style="white-space:pre">				</span> FileDialog dialog = new FileDialog (shell, SWT.OPEN);</div><div><span style="white-space:pre">				</span> dialog.setText("Source Folder Selection");</div><div><span style="white-space:pre">				</span> dialog.setFilterExtensions(new String[] {"*.txt","*.jpg","*.*"});</div><div><span style="white-space:pre">				</span> String filePath = dialog.open();</div><div><span style="white-space:pre">				</span> if(dialog!=null){</div><div><span style="white-space:pre">					</span> text_file.setText(filePath);</div><div><span style="white-space:pre">				</span> }</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>});</div><div><span style="white-space:pre">		</span>Button button_exe = new Button(shell, SWT.NONE);</div><div><span style="white-space:pre">		</span>button_exe.addSelectionListener(new SelectionAdapter() {</div><div><span style="white-space:pre">			</span>@Override</div><div><span style="white-space:pre">			</span>public void widgetSelected(SelectionEvent e) {</div><div><span style="white-space:pre">				</span>MessageBox msgbox = new MessageBox(shell,</div><div><span style="white-space:pre">					</span>SWT.ICON_QUESTION | SWT.OK);</div><div><span style="white-space:pre">				</span>msgbox.setText("提示");</div><div><span style="white-space:pre">				</span></div><div><span style="white-space:pre">				</span>String file = "";</div><div><span style="white-space:pre">				</span>file = text_file.getText();</div><div><span style="white-space:pre">				</span>if(file.equals("") || file == null){</div><div><span style="white-space:pre">					</span>msgbox.setMessage("WSDL文件不能为空");</div><div><span style="white-space:pre">					</span>msgbox.open();</div><div><span style="white-space:pre">					</span>return;</div><div><span style="white-space:pre">				</span>}else{</div><div><span style="white-space:pre">					</span>msgbox.setMessage("文件获取到了！！！");</div><div><span style="white-space:pre">					</span>System.out.println(file);</div><div><span style="white-space:pre">					</span>msgbox.open();</div><div><span style="white-space:pre">				</span>}</div><div><span style="white-space:pre">				</span></div><div></div><div></div><div><span style="white-space:pre">				</span></div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>});</div><div><span style="white-space:pre">		</span>button_exe.setFont(SWTResourceManager.getFont("Tahoma", 12, SWT.NORMAL));</div><div><span style="white-space:pre">		</span>button_exe.setBounds(214, 133, 87, 23);</div><div><span style="white-space:pre">		</span>button_exe.setText("\u6267\u884C");</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>Group group = new Group(shell, SWT.NONE);</div><div><span style="white-space:pre">		</span>group.setBounds(10, 10, 472, 117);</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>Label label = new Label(group, SWT.NONE);</div><div><span style="white-space:pre">		</span>label.setBounds(10, 23, 105, 24);</div><div><span style="white-space:pre">		</span>label.setFont(SWTResourceManager.getFont("Tahoma", 12, SWT.NORMAL));</div><div><span style="white-space:pre">		</span>label.setText("源文件：");</div><div><span style="white-space:pre">		</span></div><div></div><div><span style="white-space:pre">	</span>}</div><div>}</div><img src ="http://www.blogjava.net/hyljava/aggbug/395632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2013-02-23 20:55 <a href="http://www.blogjava.net/hyljava/archive/2013/02/23/395632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>线程和进程</title><link>http://www.blogjava.net/hyljava/archive/2012/12/08/392656.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Sat, 08 Dec 2012 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/12/08/392656.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/392656.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/12/08/392656.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/392656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/392656.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 线程和进程一，线程的一些基本知识。进程与线程所有的操作系统都支持同时运行多个任务，一个任务通常就是一个程序，每个运行中就是一个进程，当一个程序运行时，内部可能包含了多个顺序执行流，每个顺序执行流就是一个线程。进程(process)当一个程序进入内存运行即变成一个进程，进程处于运行过程中的程序，并且具有一定的独立功能，进程是系统进行资源分配和调用的独立单位，进程切换开销大。多进程在操作系...&nbsp;&nbsp;<a href='http://www.blogjava.net/hyljava/archive/2012/12/08/392656.html'>阅读全文</a><img src ="http://www.blogjava.net/hyljava/aggbug/392656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-12-08 13:24 <a href="http://www.blogjava.net/hyljava/archive/2012/12/08/392656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java多线程下载</title><link>http://www.blogjava.net/hyljava/archive/2012/11/30/392268.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 30 Nov 2012 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/11/30/392268.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/392268.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/11/30/392268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/392268.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/392268.html</trackback:ping><description><![CDATA[<p><font face="Verdana">import java.io.BufferedInputStream;<br />import java.io.IOException;<br />import java.io.RandomAccessFile;<br />import java.net.HttpURLConnection;<br />import java.net.URL;<br />import java.net.URLConnection;<br />import java.util.concurrent.CountDownLatch;<br />import java.util.concurrent.ExecutorService;<br />import java.util.concurrent.Executors;</font></p><font face="Verdana">
<p><br />public class FileDownLoadTest {<br />&nbsp;<br />&nbsp;<br />&nbsp;private static final int TCOUNT = 10;<br />&nbsp;<br />&nbsp;private CountDownLatch latch = new CountDownLatch(TCOUNT);</p>
<p>&nbsp;private long completeLength = 0;<br />&nbsp;<br />&nbsp;private long fileLength;<br />&nbsp;/**<br />&nbsp; * @param args<br />&nbsp; * @throws Exception <br />&nbsp; */<br />&nbsp;public static void main(String[] args) throws Exception {<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;new FileDownLoadTest().download("http://localhost:8080/test/IESSAction.docx");<br />&nbsp;}<br />&nbsp;<br />&nbsp;<br />&nbsp;public void download(String address) throws Exception{<br />&nbsp;&nbsp;ExecutorService service = Executors.newFixedThreadPool(TCOUNT);<br />&nbsp;&nbsp;URL url = new URL(address);<br />&nbsp;&nbsp;URLConnection cn = url.openConnection();<br />&nbsp;&nbsp;cn.setRequestProperty("Referer", "http://www.test.com");<br />&nbsp;&nbsp;fileLength = cn.getContentLength();<br />&nbsp;&nbsp;long packageLength = fileLength/TCOUNT;<br />&nbsp;&nbsp;long leftLength = fileLength%TCOUNT;<br />&nbsp;&nbsp;RandomAccessFile file = new RandomAccessFile("d:\\test.docx","rw");<br />&nbsp;&nbsp;//计算每个线程请求文件的开始和结束位置<br />&nbsp;&nbsp;long pos = 0;<br />&nbsp;&nbsp;long endPos = pos + packageLength;<br />&nbsp;&nbsp;for(int i=0; i&lt;TCOUNT; i++){<br />&nbsp;&nbsp;&nbsp;if(leftLength &gt;0){<br />&nbsp;&nbsp;&nbsp;&nbsp;endPos ++;<br />&nbsp;&nbsp;&nbsp;&nbsp;leftLength--;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;service.execute(new DownLoadThread(url, file, pos, endPos));<br />&nbsp;&nbsp;&nbsp;pos = endPos;<br />&nbsp;&nbsp;&nbsp;endPos = pos + packageLength;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;System.out.println("waiting........................................");<br />&nbsp;&nbsp;long begin = System.currentTimeMillis();<br />&nbsp;&nbsp;latch.await();<br />&nbsp;&nbsp;file.close();<br />&nbsp;&nbsp;System.out.println("end........................................");<br />&nbsp;&nbsp;System.out.println(System.currentTimeMillis() - begin + "ms");<br />&nbsp;&nbsp;service.shutdown();<br />&nbsp;}<br />&nbsp;<br />&nbsp;class DownLoadThread implements Runnable{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;private URL url;<br />&nbsp;&nbsp;private RandomAccessFile file;<br />&nbsp;&nbsp;private long from;<br />&nbsp;&nbsp;private long end;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;DownLoadThread(URL url, RandomAccessFile file, long from, long end){<br />&nbsp;&nbsp;&nbsp;this.url = url;<br />&nbsp;&nbsp;&nbsp;this.file = file;<br />&nbsp;&nbsp;&nbsp;this.from = from;<br />&nbsp;&nbsp;&nbsp;this.end = end;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;public void run() {<br />&nbsp;&nbsp;&nbsp;long pos = from;<br />&nbsp;&nbsp;&nbsp;byte[] buf = new byte[512];<br />&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection cn = (HttpURLConnection) url.openConnection();<br />&nbsp;&nbsp;&nbsp;&nbsp;cn.setRequestProperty("Range", "bytes=" + from + "-" + end);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(cn.getResponseCode() != 200 &amp;&amp; cn.getResponseCode()!=206){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;BufferedInputStream bis = new BufferedInputStream(cn.getInputStream());<br />&nbsp;&nbsp;&nbsp;&nbsp;int len ;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((len = bis.read(buf)) != -1){<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;synchronized(file){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.seek(pos);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.write(buf, 0, len);<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos += len;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;completeLength +=len;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("threadName: " + Thread.currentThread().getName() <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ "persent: " + completeLength * 100 /fileLength + "%");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cn.disconnect();<br />&nbsp;&nbsp;&nbsp;&nbsp;latch.countDown();<br />&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}</font></p><img src ="http://www.blogjava.net/hyljava/aggbug/392268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-11-30 11:57 <a href="http://www.blogjava.net/hyljava/archive/2012/11/30/392268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA直接操作excel</title><link>http://www.blogjava.net/hyljava/archive/2012/11/16/391458.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 16 Nov 2012 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/11/16/391458.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/391458.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/11/16/391458.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/391458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/391458.html</trackback:ping><description><![CDATA[JAVA直接操作excel<br /><br />
<p>/**<br />&nbsp;* @Author：何云龙<br />&nbsp;* @Version: 2012-11-16 下午03:45:16<br />&nbsp;* @Description:<br />&nbsp;*/<br />import jxl.*;<br />import java.io.*;<br />import jxl.write.*;</p>
<p>/**<br />&nbsp;* &lt;p&gt;<br />&nbsp;* java读取Excel表格，复制、更新Excel工作薄<br />&nbsp;* &lt;/p&gt;<br />&nbsp;*/<br />public class Test {<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;jxl.Workbook rwb = null;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;// 构建Workbook对象 只读Workbook对象<br />&nbsp;&nbsp;&nbsp;// 直接从本地文件创建Workbook<br />&nbsp;&nbsp;&nbsp;// 从输入流创建Workbook<br />&nbsp;&nbsp;&nbsp;InputStream is = new FileInputStream("D://Book1.xls");<br />&nbsp;&nbsp;&nbsp;rwb = Workbook.getWorkbook(is);<br />&nbsp;&nbsp;&nbsp;// Sheet(术语：工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中<br />&nbsp;&nbsp;&nbsp;// Sheet的下标是从0开始的<br />&nbsp;&nbsp;&nbsp;// 获取第一张Sheet表<br />&nbsp;&nbsp;&nbsp;Sheet rs = rwb.getSheet(0);<br />&nbsp;&nbsp;&nbsp;// 获取Sheet表中所包含的总列数<br />&nbsp;&nbsp;&nbsp;int rsColumns = rs.getColumns();<br />&nbsp;&nbsp;&nbsp;// 获取Sheet表中所包含的总行数<br />&nbsp;&nbsp;&nbsp;int rsRows = rs.getRows();<br />&nbsp;&nbsp;&nbsp;// 获取指这下单元格的对象引用<br />&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; rsRows; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;for (int j = 0; j &lt; rsColumns; j++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cell cell = rs.getCell(j, i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(cell.getContents() + " ");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 利用已经创建的Excel工作薄创建新的可写入的Excel工作薄<br />&nbsp;&nbsp;&nbsp;jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"D://Book2.xls"), rwb);<br />&nbsp;&nbsp;&nbsp;// 读取第一张工作表<br />&nbsp;&nbsp;&nbsp;jxl.write.WritableSheet ws = wwb.getSheet(0);<br />&nbsp;&nbsp;&nbsp;// 获取第一个单元格对象<br />&nbsp;&nbsp;&nbsp;jxl.write.WritableCell wc = ws.getWritableCell(0, 0);<br />&nbsp;&nbsp;&nbsp;// 决断单元格的类型，做出相应的转化<br />&nbsp;&nbsp;&nbsp;if (wc.getType() == CellType.LABEL) {<br />&nbsp;&nbsp;&nbsp;&nbsp;Label l = (Label) wc;<br />&nbsp;&nbsp;&nbsp;&nbsp;l.setString("The value has been modified.");<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 写入Excel对象<br />&nbsp;&nbsp;&nbsp;wwb.write();<br />&nbsp;&nbsp;&nbsp;wwb.close();<br />&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;} finally {<br />&nbsp;&nbsp;&nbsp;// 操作完成时，关闭对象，翻译占用的内存空间<br />&nbsp;&nbsp;&nbsp;rwb.close();<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<br /></p><img src ="http://www.blogjava.net/hyljava/aggbug/391458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-11-16 15:48 <a href="http://www.blogjava.net/hyljava/archive/2012/11/16/391458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用java生成缩略图</title><link>http://www.blogjava.net/hyljava/archive/2012/11/16/391456.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 16 Nov 2012 07:41:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/11/16/391456.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/391456.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/11/16/391456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/391456.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/391456.html</trackback:ping><description><![CDATA[方法1：[第一种方法比后一种生成的缩略图要清晰] 
<div class="code">import javax.imageio.ImageIO;<br />import java.awt.image.BufferedImage;<br />import java.awt.image.ColorModel;<br />import java.awt.image.WritableRaster;<br />import java.awt.*;<br />import java.awt.geom.AffineTransform;<br />import java.io.InputStream;<br />import java.io.File;<br />import java.io.FileOutputStream;<br /><br />public class Test {<br />&nbsp;public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {<br />&nbsp;// targetW，targetH分别表示目标长和宽<br />&nbsp;int type = source.getType();<br />&nbsp;BufferedImage target = null;<br />&nbsp;double sx = (double) targetW / source.getWidth();<br />&nbsp;double sy = (double) targetH / source.getHeight();<br />&nbsp;//这里想实现在targetW，targetH范围内实现等比缩放。如果不需要等比缩放<br />&nbsp;//则将下面的if else语句注释即可<br />&nbsp;if(sx&gt;sy)<br />&nbsp;{<br />&nbsp;sx = sy;<br />&nbsp;targetW = (int)(sx * source.getWidth());<br />&nbsp;}else{<br />&nbsp;sy = sx;<br />&nbsp;targetH = (int)(sy * source.getHeight());<br />&nbsp;}<br />&nbsp;if (type == BufferedImage.TYPE_CUSTOM) { //handmade<br />&nbsp;ColorModel cm = source.getColorModel();<br />&nbsp;WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH);<br />&nbsp;boolean alphaPremultiplied = cm.isAlphaPremultiplied();<br />&nbsp;target = new BufferedImage(cm, raster, alphaPremultiplied, null);<br />&nbsp;} else<br />&nbsp;target = new BufferedImage(targetW, targetH, type);<br />&nbsp;Graphics2D g = target.createGraphics();<br />&nbsp;//smoother than exlax:<br />&nbsp;g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );<br />&nbsp;g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));<br />&nbsp;g.dispose();<br />&nbsp;return target;<br />&nbsp;}<br />&nbsp;public static void saveImageAsJpg (String fromFileStr,String saveToFileStr,int width,int hight)<br />&nbsp;throws Exception {<br />&nbsp;BufferedImage srcImage;<br />// String ex = fromFileStr.substring(fromFileStr.indexOf("."),fromFileStr.length());<br />&nbsp;String imgType = "JPEG";<br />&nbsp;if (fromFileStr.toLowerCase().endsWith(".png")) {<br />&nbsp;imgType = "PNG";<br />&nbsp;}<br />// System.out.println(ex);<br />&nbsp;File saveFile=new File(saveToFileStr);<br />&nbsp;File fromFile=new File(fromFileStr);<br />&nbsp;srcImage = ImageIO.read(fromFile);<br />&nbsp;if(width &gt; 0 || hight &gt; 0)<br />&nbsp;{<br />&nbsp;srcImage = resize(srcImage, width, hight);<br />&nbsp;}<br />&nbsp;ImageIO.write(srcImage, imgType, saveFile);<br /><br />&nbsp;}<br />&nbsp;<br />&nbsp;public static void main (String argv[]) {<br />&nbsp;try{<br />&nbsp;//参数1(from),参数2(to),参数3(宽),参数4(高)<br />&nbsp;Test.saveImageAsJpg("E:/Document/My Pictures/3.gif","c:/6.gif",50,50);<br />&nbsp;} catch(Exception e)<br />&nbsp;{<br />&nbsp;e.printStackTrace();<br />&nbsp;}<br /><br />&nbsp;}<br />}</div><br />方法2： 
<div class="code">&nbsp;import java.io.*;<br />&nbsp;import java.util.*;<br />&nbsp;import com.sun.image.codec.jpeg.*;<br />&nbsp;import java.awt.image.*;<br />&nbsp;import java.awt.*;<br />&nbsp;import java.net.*;<br />&nbsp;import java.applet.*;<br />&nbsp;import java.sql.*;<br /><br />//缩略图类，<br />//本java类能将jpg图片文件，进行等比或非等比的大小转换。<br />//具体使用方法<br />//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))<br />&nbsp;public class Tes {<br />&nbsp;String InputDir; //输入图路径<br />&nbsp;String OutputDir; //输出图路径<br />&nbsp;String InputFileName; //输入图文件名<br />&nbsp;String OutputFileName; //输出图文件名<br />&nbsp;int OutputWidth = 80; //默认输出图片宽<br />&nbsp;int OutputHeight = 80; //默认输出图片高<br />&nbsp;int rate = 0;<br />&nbsp;boolean proportion = true; //是否等比缩放标记(默认为等比缩放)<br /><br />&nbsp;public Tes() {<br />//初始化变量<br />&nbsp;InputDir = "";<br />&nbsp;OutputDir = "";<br />&nbsp;InputFileName = "";<br />&nbsp;OutputFileName = "";<br />&nbsp;OutputWidth = 80;<br />&nbsp;OutputHeight = 80;<br />&nbsp;rate = 0;<br />&nbsp;}<br /><br />&nbsp;public void setInputDir(String InputDir) {<br />&nbsp;this.InputDir = InputDir;<br />&nbsp;}<br /><br />&nbsp;public void setOutputDir(String OutputDir) {<br />&nbsp;this.OutputDir = OutputDir;<br />&nbsp;}<br /><br />&nbsp;public void setInputFileName(String InputFileName) {<br />&nbsp;this.InputFileName = InputFileName;<br />&nbsp;}<br /><br />&nbsp;public void setOutputFileName(String OutputFileName) {<br />&nbsp;this.OutputFileName = OutputFileName;<br />&nbsp;}<br /><br />&nbsp;public void setOutputWidth(int OutputWidth) {<br />&nbsp;this.OutputWidth = OutputWidth;<br />&nbsp;}<br /><br />&nbsp;public void setOutputHeight(int OutputHeight) {<br />&nbsp;this.OutputHeight = OutputHeight;<br />&nbsp;}<br /><br />&nbsp;public void setW_H(int width, int height) {<br />&nbsp;this.OutputWidth = width;<br />&nbsp;this.OutputHeight = height;<br />&nbsp;}<br /><br />&nbsp;public String s_pic() {<br />&nbsp;BufferedImage image;<br />&nbsp;String NewFileName;<br />//建立输出文件对象<br />&nbsp;File file = new File(OutputDir + OutputFileName);<br />&nbsp;FileOutputStream tempout = null;<br />&nbsp;try {<br />&nbsp;tempout = new FileOutputStream(file);<br />&nbsp;} catch (Exception ex) {<br />&nbsp;System.out.println(ex.toString());<br />&nbsp;}<br />&nbsp;Image img = null;<br />&nbsp;Toolkit tk = Toolkit.getDefaultToolkit();<br />&nbsp;Applet app = new Applet();<br />&nbsp;MediaTracker mt = new MediaTracker(app);<br />&nbsp;try {<br />&nbsp;img = tk.getImage(InputDir + InputFileName);<br />&nbsp;mt.addImage(img, 0);<br />&nbsp;mt.waitForID(0);<br />&nbsp;} catch (Exception e) {<br />&nbsp;e.printStackTrace();<br />&nbsp;}<br /><br />&nbsp;if (img.getWidth(null) == -1) {<br />&nbsp;System.out.println(" can't read,retry!" + "&lt;BR&gt;");<br />&nbsp;return "no";<br />&nbsp;} else {<br />&nbsp;int new_w;<br />&nbsp;int new_h;<br />&nbsp;if (this.proportion == true) { //判断是否是等比缩放.<br />//为等比缩放计算输出的图片宽度及高度<br />&nbsp;double rate1 = ((double) img.getWidth(null)) /<br />&nbsp;(double) OutputWidth + 0.1;<br />&nbsp;double rate2 = ((double) img.getHeight(null)) /<br />&nbsp;(double) OutputHeight + 0.1;<br />&nbsp;double rate = rate1 &gt; rate2 ? rate1 : rate2;<br />&nbsp;new_w = (int) (((double) img.getWidth(null)) / rate);<br />&nbsp;new_h = (int) (((double) img.getHeight(null)) / rate);<br />&nbsp;} else {<br />&nbsp;new_w = OutputWidth; //输出的图片宽度<br />&nbsp;new_h = OutputHeight; //输出的图片高度<br />&nbsp;}<br />&nbsp;BufferedImage buffImg = new BufferedImage(new_w, new_h,<br />&nbsp;BufferedImage.TYPE_INT_RGB);<br /><br />&nbsp;Graphics g = buffImg.createGraphics();<br /><br />&nbsp;g.setColor(Color.white);<br />&nbsp;g.fillRect(0, 0, new_w, new_h);<br /><br />&nbsp;g.drawImage(img, 0, 0, new_w, new_h, null);<br />&nbsp;g.dispose();<br /><br />&nbsp;JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);<br />&nbsp;try {<br />&nbsp;encoder.encode(buffImg);<br />&nbsp;tempout.close();<br />&nbsp;} catch (IOException ex) {<br />&nbsp;System.out.println(ex.toString());<br />&nbsp;}<br />&nbsp;}<br />&nbsp;return "ok";<br />&nbsp;}<br /><br />&nbsp;public String s_pic(String InputDir, String OutputDir, String InputFileName,<br />&nbsp;String OutputFileName) {<br />//输入图路径<br />&nbsp;this.InputDir = InputDir;<br />//输出图路径<br />&nbsp;this.OutputDir = OutputDir;<br />//输入图文件名<br />&nbsp;this.InputFileName = InputFileName;<br />//输出图文件名<br />&nbsp;this.OutputFileName = OutputFileName;<br />&nbsp;return s_pic();<br />&nbsp;}<br /><br />&nbsp;public String s_pic(String InputDir, String OutputDir, String InputFileName,<br />&nbsp;String OutputFileName, int width, int height,<br />&nbsp;boolean gp) {<br />//输入图路径<br />&nbsp;this.InputDir = InputDir;<br />//输出图路径<br />&nbsp;this.OutputDir = OutputDir;<br />//输入图文件名<br />&nbsp;this.InputFileName = InputFileName;<br />//输出图文件名<br />&nbsp;this.OutputFileName = OutputFileName;<br />//设置图片长宽<br />&nbsp;setW_H(width, height);<br />//是否是等比缩放 标记<br />&nbsp;this.proportion = gp;<br />&nbsp;return s_pic();<br />&nbsp;}<br /><br />&nbsp;public static void main(String[] a) {<br />//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度)<br />&nbsp;Tes mypic = new Tes();<br />&nbsp;System.out.println(<br />&nbsp;mypic.s_pic("E://Document//My Pictures//",<br />&nbsp;"E://Document//My Pictures//",<br />&nbsp;"topbg-3.gif", "3.gif", 400, 400, true)<br />&nbsp;);<br /><br />&nbsp;}<br />&nbsp;}</div><br />3.jsp方式 
<div class="code">java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,<br /><br />&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;java.io.File file = new java.io.File("E://Document//My Pictures//3.gif");<br />&nbsp;String newurl="E://Document//My Pictures//32.gif"; //新的缩略图保存地址<br />&nbsp;Image src = javax.imageio.ImageIO.read(file); //构造Image对象<br />&nbsp;float tagsize=200;<br />&nbsp;int old_w=src.getWidth(null); //得到源图宽<br />&nbsp;int old_h=src.getHeight(null);<br />&nbsp;int new_w=0;<br />&nbsp;int new_h=0; //得到源图长<br />&nbsp;int tempsize;<br />&nbsp;float tempdouble;<br />&nbsp;if(old_w&gt;old_h){<br />&nbsp;tempdouble=old_w/tagsize;<br />&nbsp;}else{<br />&nbsp;tempdouble=old_h/tagsize;<br />&nbsp;}<br />&nbsp;new_w=Math.round(old_w/tempdouble);<br />&nbsp;new_h=Math.round(old_h/tempdouble);//计算新图长宽<br />&nbsp;BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />&nbsp;tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图<br />&nbsp;FileOutputStream newimage=new FileOutputStream(newurl); //输出到文件流<br />&nbsp;JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);<br />&nbsp;encoder.encode(tag); //近JPEG编码<br />&nbsp;newimage.close();<br /><br />}catch (Exception e){<br /><br />e.toString();<br /><br />}<br /></div><img src ="http://www.blogjava.net/hyljava/aggbug/391456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-11-16 15:41 <a href="http://www.blogjava.net/hyljava/archive/2012/11/16/391456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaSE读取Properties文件的六种方法</title><link>http://www.blogjava.net/hyljava/archive/2012/11/16/391452.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 16 Nov 2012 07:24:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/11/16/391452.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/391452.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/11/16/391452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/391452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/391452.html</trackback:ping><description><![CDATA[<div id="article_content" class="article_content"><span style="line-height: 18px; font-family: Helvetica, Tahoma, Arial, sans-serif"></span>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">使用JavaSEAPI读取Properties文件的六种方法</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">1。使用java.util.Properties类的load()方法</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=lnewBufferedInputStream(newFileInputStream(name));</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Propertiesp=newProperties();</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">p.load(in);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">2。使用java.util.ResourceBundle类的getBundle()方法</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：ResourceBundlerb=ResourceBundle.getBundle(name,Locale.getDefault());</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">3。使用java.util.PropertyResourceBundle类的构造函数</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=newBufferedInputStream(newFileInputStream(name));</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">ResourceBundlerb=newPropertyResourceBundle(in);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">4。使用class变量的getResourceAsStream()方法</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=JProperties.class.getResourceAsStream(name);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Propertiesp=newProperties();</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">p.load(in);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=JProperties.class.getClassLoader().getResourceAsStream(name);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Propertiesp=newProperties();</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">p.load(in);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong><span style="font-size: 13px">6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法</span></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><strong></strong></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=ClassLoader.getSystemResourceAsStream(name);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Propertiesp=newProperties();</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">p.load(in);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">补充</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">示例：InputStreamin=context.getResourceAsStream(path);</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">Propertiesp=newProperties();</span></p>
<p style="padding-bottom: 0px; margin-top: 0px; text-indent: 2em; margin-bottom: 0px; padding-top: 0px"><span style="font-size: 13px">p.load(in);</span></p></div><img src ="http://www.blogjava.net/hyljava/aggbug/391452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-11-16 15:24 <a href="http://www.blogjava.net/hyljava/archive/2012/11/16/391452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDBC另一次封装</title><link>http://www.blogjava.net/hyljava/archive/2012/10/15/389566.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Mon, 15 Oct 2012 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/10/15/389566.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/389566.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/10/15/389566.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/389566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/389566.html</trackback:ping><description><![CDATA[<p>jdbc继续改进版<br />/**<br />&nbsp;* @author sign<br />&nbsp;* @describe 改进第三版<br />&nbsp;*<br />&nbsp;*/<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.ResultSet;<br />import java.sql.ResultSetMetaData;<br />import java.sql.SQLException;<br />import java.sql.Statement;<br />import java.util.LinkedList;<br />import java.util.Map;<br />import java.util.TreeMap;</p>
<p>public class JDBCUtil {<br />Connection conn=null;<br />Statement stmt=null;<br />ResultSet rs=null;<br />String url="jdbc:mysql://localhost:3306/theatermanagement";<br />String user="root";<br />String psw="root";</p>
<p>static{<br />&nbsp;try {<br />&nbsp;&nbsp;Class.forName("com.mysql.jdbc.Driver");<br />&nbsp;&nbsp;<br />&nbsp;} catch (ClassNotFoundException e) {<br />&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;}<br />&nbsp;<br />&nbsp;}</p>
<p>&nbsp; public Connection getConn(){<br />&nbsp; <br />&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp; conn=DriverManager.getConnection(url, user, psw);<br />&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;}<br />&nbsp;return conn;<br />&nbsp;}<br />&nbsp; <br />&nbsp; public int update(String sql){<br />&nbsp;&nbsp; try {<br />&nbsp;&nbsp;stmt=this.getConn().createStatement();<br />&nbsp;&nbsp;return stmt.executeUpdate(sql);<br />&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;return -1;<br />&nbsp;}finally{<br />&nbsp;&nbsp;release();<br />&nbsp;&nbsp;<br />&nbsp;}</p>
<p>&nbsp; }<br />&nbsp; &nbsp;public LinkedList&lt;Map&lt;String,Object&gt;&gt; query(String sql){<br />&nbsp; &nbsp;&nbsp;LinkedList&lt;Map&lt;String,Object&gt;&gt; list=new LinkedList&lt;Map&lt;String,Object&gt;&gt;();<br />&nbsp; &nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;stmt=getConn().createStatement();<br />&nbsp;&nbsp;&nbsp;rs=stmt.executeQuery(sql);<br />&nbsp;&nbsp;&nbsp;ResultSetMetaData rsmd=rs.getMetaData();<br />&nbsp;&nbsp;&nbsp;int count=rsmd.getColumnCount();<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(rs.next()){<br />&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;String,Object&gt; map=new TreeMap&lt;String,Object&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; count; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String key=rsmd.getColumnName(i+1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String keyy="";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(key.equals("")){// 聚合函数bug<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("聚合函数bug"+key);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyy="count";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object value=rs.getObject(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(keyy, value);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object value=rs.getObject(key);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(key, value);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;list.add(map);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}finally{<br />&nbsp;&nbsp;&nbsp;release();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return list;<br />&nbsp; &nbsp;&nbsp;<br />&nbsp; &nbsp;}<br />&nbsp; &nbsp;/**批量更新*/<br />&nbsp; &nbsp;public void excuteBatch(String[] sqls){<br />&nbsp; &nbsp;&nbsp;conn=this.getConn();<br />&nbsp; &nbsp;&nbsp;<br />&nbsp; &nbsp;&nbsp;/**设置提交模式为手动提交*/<br />&nbsp; &nbsp;&nbsp;try{<br />&nbsp; &nbsp;&nbsp;&nbsp;conn.setAutoCommit(false);<br />&nbsp; &nbsp;&nbsp;&nbsp;stmt=conn.createStatement();<br />&nbsp; &nbsp;&nbsp;&nbsp;for(String sql:sqls){<br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;stmt.addBatch(sql);<br />&nbsp; &nbsp;&nbsp;&nbsp;}<br />&nbsp; &nbsp;&nbsp;&nbsp;stmt.executeBatch();<br />&nbsp; &nbsp;&nbsp;&nbsp;/**手动提交*/<br />&nbsp; &nbsp;&nbsp;&nbsp;conn.commit();//事务<br />&nbsp; &nbsp;&nbsp;}catch(SQLException e){<br />&nbsp; &nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp; &nbsp;&nbsp;}finally{<br />&nbsp; &nbsp;&nbsp;&nbsp;release();<br />&nbsp; &nbsp;&nbsp;}<br />&nbsp; &nbsp;}<br />&nbsp; &nbsp;<br />&nbsp; &nbsp;/**释放资源*/<br />&nbsp; public void release(){<br />&nbsp;&nbsp; if(rs!=null){<br />&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;rs.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; if(stmt!=null){<br />&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;stmt.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; if(conn!=null){<br />&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; }<br />&nbsp;&nbsp; <br />&nbsp; } <br />}<br /></p><img src ="http://www.blogjava.net/hyljava/aggbug/389566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-10-15 13:09 <a href="http://www.blogjava.net/hyljava/archive/2012/10/15/389566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>枚举类型(enum)在Switch中的使用以及遍历枚举类型(enum)中的内容</title><link>http://www.blogjava.net/hyljava/archive/2012/09/25/388512.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Tue, 25 Sep 2012 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/09/25/388512.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/388512.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/09/25/388512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/388512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/388512.html</trackback:ping><description><![CDATA[<p>枚举类型(enum)在Switch中的使用以及遍历枚举类型(enum)中的内容<br />public class EnumDemo {<br />&nbsp;<br />&nbsp;//定义枚举类型<br />&nbsp;enum Month {&nbsp;&nbsp; <br />&nbsp;&nbsp;January, February, March, April, May, June, July,August,September,October,November,December<br />&nbsp;}<br />&nbsp;<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;Month mon = Month.August; <br />&nbsp;&nbsp;switch (mon) {&nbsp;&nbsp; <br />&nbsp;&nbsp;case August:&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("这是个旅游的季节");&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;&nbsp;&nbsp; <br />&nbsp;&nbsp;case December:&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("这是个滑雪的季节");&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;&nbsp;&nbsp; <br />&nbsp;&nbsp;} <br />&nbsp;&nbsp;//循环遍历枚举类型Month<br />&nbsp;&nbsp;for (Month month : Month.values()) {&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(month + ", 顺序: " + month.ordinal());&nbsp;&nbsp; <br />&nbsp;&nbsp;} <br />&nbsp;}</p>
<p>}<br /></p><img src ="http://www.blogjava.net/hyljava/aggbug/388512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-09-25 14:55 <a href="http://www.blogjava.net/hyljava/archive/2012/09/25/388512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA执行存储过程</title><link>http://www.blogjava.net/hyljava/archive/2012/07/25/383979.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Wed, 25 Jul 2012 11:27:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/07/25/383979.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/383979.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/07/25/383979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/383979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/383979.html</trackback:ping><description><![CDATA[<p>以SQLServer为例<br />import java.sql.CallableStatement;<br />import java.sql.Connection;<br />import java.sql.DriverManager;</p>
<p>public class TestCall {<br />&nbsp;public static void main(String[] args) {<br />&nbsp;&nbsp;try{<br />&nbsp;&nbsp;&nbsp;Connection conn=null;<br />&nbsp;&nbsp;&nbsp;CallableStatement cs=null;<br />&nbsp;&nbsp;&nbsp;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");<br />&nbsp;&nbsp;&nbsp;String url="jdbc:sqlserver://127.0.0.1:1433;databaseName=studentdb";<br />&nbsp;&nbsp;&nbsp;conn=DriverManager.getConnection(url,"sa","sqlserver");<br />&nbsp;&nbsp;&nbsp;String sql="{call s_insert(?,?)}";<br />&nbsp;&nbsp;&nbsp;cs=conn.prepareCall(sql);<br />&nbsp;&nbsp;&nbsp;cs.setString(1,"张三");<br />&nbsp;&nbsp;&nbsp;cs.setInt(2, 12);<br />&nbsp;&nbsp;&nbsp;int num=-1;<br />&nbsp;&nbsp;&nbsp;num=cs.executeUpdate();<br />&nbsp;&nbsp;&nbsp;System.out.println("num:"+num);<br />&nbsp;&nbsp;}catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<br /></p><img src ="http://www.blogjava.net/hyljava/aggbug/383979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-07-25 19:27 <a href="http://www.blogjava.net/hyljava/archive/2012/07/25/383979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对数数组中的内容强排序</title><link>http://www.blogjava.net/hyljava/archive/2012/07/20/383567.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 20 Jul 2012 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/07/20/383567.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/383567.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/07/20/383567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/383567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/383567.html</trackback:ping><description><![CDATA[<p>对数数组中的内容强排序<br />import java.util.ArrayList;<br />import java.util.Collections;<br />import java.util.Comparator;<br />public class TestComparator {<br />&nbsp; public static void main(String[] args){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ArrayList list = new ArrayList();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(new Persion("lcl",28));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(new Persion("fx",23));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list.add(new Persion("wqx",29));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Comparator comp = new Comparator(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int compare(Object o1,Object o2) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Persion p1=(Persion)o1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Persion p2=(Persion)o2; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(p1.age&lt;p2.age)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br />&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;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br />&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Collections.sort(list,comp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;list.size();i++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Persion p=(Persion) list.get(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println(p.age+"+"+p.name);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp; }</p>
<p>}</p><img src ="http://www.blogjava.net/hyljava/aggbug/383567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-07-20 09:42 <a href="http://www.blogjava.net/hyljava/archive/2012/07/20/383567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>升级版JDBC工具类</title><link>http://www.blogjava.net/hyljava/archive/2012/05/31/379691.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Thu, 31 May 2012 14:07:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/05/31/379691.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/379691.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/05/31/379691.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/379691.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/379691.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.ParameterMetaData;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.ResultSetMetaData;<br />import java.sql.SQLException;<br />import java.sql.Statement;<br />import java.util.HashMap;<br />import java.util.LinkedList;<br />import java.util.List;<br />import java.util.Map;</p>
<p><br />/**<br />&nbsp;* 用户数据库访问的类<br />&nbsp;*@作者Administrator<br />&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#42;&#64;&#99;&#114;&#101;&#97;&#116;&#101;&#84;&#105;&#109;&#101;">*@createTime</a> 2011-12-5 上午11:55:18<br />&nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#42;&#64;&#118;&#101;&#114;&#115;&#105;&#111;&#110;">*@version</a> 1.0<br />&nbsp;*/<br />public class DButil1 {</p>
<p>&nbsp;private Connection conn;<br />&nbsp;private Statement st;<br />&nbsp;private PreparedStatement pps;<br />&nbsp;private ResultSet rs;<br />&nbsp;public&nbsp; String url="jdbc:oracle:thin:@localhost:1521:orcl";<br />&nbsp;private String user="hyl";<br />&nbsp;private String password="hyl";<br />&nbsp;<br />&nbsp;//加载驱动、放在静态代码块中，保证驱动在整个项目中只加载一次，提高效率<br />&nbsp;static{<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;Class.forName("oracle.jdbc.driver.OracleDriver");<br />&nbsp;&nbsp;} catch (ClassNotFoundException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;<br />&nbsp;/**<br />&nbsp; * 获取连接的方法<br />&nbsp; * @return Connection 一个有效的数据库连接<br />&nbsp; */<br />&nbsp;public Connection getConnection()<br />&nbsp;{<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;//注意链接时，要换成自己的数据库名，数据库用户名及密码<br />&nbsp;&nbsp;&nbsp;Connection con=DriverManager.getConnection(url,user,password);<br />&nbsp;&nbsp;&nbsp;return con;<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return null;<br />&nbsp;}</p>
<p>&nbsp;/**<br />&nbsp; * 用于执行更新的方法,包括（insert delete update）操作<br />&nbsp; * @param sql String 类型的SQL语句<br />&nbsp; * @return Integer 表示受影响的行数<br />&nbsp; */<br />&nbsp;public int update(String sql)<br />&nbsp;{<br />&nbsp;&nbsp;//定义变量用来判断更新操作是否成功，如果返回-1说明没有影响到更新操作的数据库记录条数，即更新操作失败<br />&nbsp;&nbsp;int row=-1;<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;//如果数据库链接被关闭了，就要既得一个新的链接<br />&nbsp;&nbsp;&nbsp;if(conn==null||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp; conn=getConnection();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//使用Connection对象conn的createStatement()创建Statement（数据库语句对象）st<br />&nbsp;&nbsp;&nbsp;st=conn.createStatement();<br />&nbsp;&nbsp;&nbsp;//执行更新操作，返回影响的记录条数row<br />&nbsp;&nbsp;&nbsp;row=st.executeUpdate(sql);<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;finally{<br />&nbsp;&nbsp;&nbsp;close();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return row;<br />&nbsp;}<br />&nbsp;<br />&nbsp;/**<br />&nbsp; * 基于PreparedStatement的修改方法 PreparedStatement:表示预编译的 SQL 语句的对象<br />&nbsp; * @param sql&nbsp; String 类型的SQL语句（insert delete update）<br />&nbsp; * @param obj 存放动态参数的数组<br />&nbsp; * @return Integer 表示受影响的行数<br />&nbsp; */<br />&nbsp;public int update(String sql,Object ...obj)<br />&nbsp;{<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;//获取链接<br />&nbsp;&nbsp;&nbsp;if(conn==null||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp; conn=getConnection();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//创建预编译的 SQL 语句对象<br />&nbsp;&nbsp;&nbsp;pps=conn.prepareStatement(sql);<br />&nbsp;&nbsp;&nbsp;//定义变量length代表数组长度，也就是预处理的sql语句中的参数个数 <br />&nbsp;&nbsp;&nbsp;int length=0;<br />&nbsp;&nbsp;&nbsp;//ParameterMetaData：用于获取关于 PreparedStatement 对象中每个参数的类型和属性信息的对象<br />&nbsp;&nbsp;&nbsp;ParameterMetaData pmd=pps.getParameterMetaData();<br />&nbsp;&nbsp;&nbsp;length=pmd.getParameterCount();<br />&nbsp;&nbsp;&nbsp;//循环将sql语句中的?设置为obj数组中对应的值，注意从1开始，所以i要加1<br />&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;length;i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;pps.setObject(i+1, obj[i]);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;//执行更新操作<br />&nbsp;&nbsp;&nbsp;return pps.executeUpdate();<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}finally{<br />&nbsp;&nbsp;&nbsp;close();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;return -1;<br />&nbsp;}<br />&nbsp;/**<br />&nbsp; * 获取一条记录的方法，要依赖于下面的queryToList方法，注意泛型的使用<br />&nbsp; * @param sql<br />&nbsp; * @return　Map&lt;String,Object&gt;<br />&nbsp; */<br />&nbsp;public Map&lt;String,Object&gt; getOneRow(String sql)<br />&nbsp;{<br />&nbsp;&nbsp;//执行下面的queryToList方法<br />&nbsp;&nbsp;List&lt;Map&lt;String,Object&gt;&gt; list=queryToList(sql);<br />&nbsp;&nbsp;//三目运算，查询结果list不为空返回list中第一个对象,否则返回null<br />&nbsp;&nbsp;return list.size()&gt;0?list.get(0):null;<br />&nbsp;}<br />&nbsp;<br />&nbsp;/**<br />&nbsp; * 返回查询结果列表，形如：[{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}, {TEST_NAME=bbb, TEST_NO=3, TEST_PWD=bbb}...]<br />&nbsp; * @param sql<br />&nbsp; * @return List&lt;Map&lt;String,Object&gt;&gt;<br />&nbsp; */<br />&nbsp;public List&lt;Map&lt;String,Object&gt;&gt; queryToList(String sql)<br />&nbsp;{<br />&nbsp;&nbsp;//创建集合列表用以保存所有查询到的记录<br />&nbsp;&nbsp;List&lt;Map&lt;String, Object&gt;&gt; list=new LinkedList&lt;Map&lt;String, Object&gt;&gt;();<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;if(conn==null||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp; conn=getConnection();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;st=conn.createStatement();<br />&nbsp;&nbsp;&nbsp;rs=st.executeQuery(sql);<br />&nbsp;&nbsp;&nbsp;//ResultSetMetaData 是结果集元数据，可获取关于 ResultSet 对象中列的类型和属性信息的对象 例如：结果集中共包括多少列，每列的名称和类型等信息<br />&nbsp;&nbsp;&nbsp;ResultSetMetaData rsmd=rs.getMetaData();<br />&nbsp;&nbsp;&nbsp;//获取结果集中的列数<br />&nbsp;&nbsp;&nbsp;int columncount=rsmd.getColumnCount();<br />&nbsp;&nbsp;&nbsp;//while条件成立表明结果集中存在数据<br />&nbsp;&nbsp;&nbsp;while(rs.next())<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;//创建一个HashMap用于存储一条数据<br />&nbsp;&nbsp;&nbsp;&nbsp;HashMap&lt;String, Object&gt; onerow=new HashMap&lt;String, Object&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;//循环获取结果集中的列名及列名所对应的值，每次循环都得到一个对象，形如：{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}<br />&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;columncount;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//获取指定列的名称，注意orcle中列名的大小写<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String columnName=rsmd.getColumnName(i+1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onerow.put(columnName, rs.getObject(i+1));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//将获取到的对象onewrow={TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}放到集合列表中<br />&nbsp;&nbsp;&nbsp;&nbsp;list.add(onerow);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;finally{<br />&nbsp;&nbsp;&nbsp;close();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return list;<br />&nbsp;}<br />&nbsp;/**<br />&nbsp; * 返回查询结果列表,使用的是预编绎SQL 语句对象PreparedStatement<br />&nbsp; * 形如：[{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}, {TEST_NAME=bbb, TEST_NO=3, TEST_PWD=bbb}]<br />&nbsp; * @param sql<br />&nbsp; * @param paramValues<br />&nbsp; * @return List&lt;Map&lt;String,Object&gt;&gt;<br />&nbsp; */<br />&nbsp;public List&lt;Map&lt;String,Object&gt;&gt; queryWithParam(String sql,Object ...paramValues){<br />&nbsp;&nbsp;//创建集合列表用以保存所有查询到的记录<br />&nbsp;&nbsp;List&lt;Map&lt;String, Object&gt;&gt; list=new LinkedList&lt;Map&lt;String, Object&gt;&gt;();<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;if(conn==null||conn.isClosed()){<br />&nbsp;&nbsp;&nbsp;&nbsp; conn=getConnection();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;pps = conn.prepareStatement(sql);<br />&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; paramValues.length; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;pps.setObject(i + 1, paramValues[i]);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;rs = pps.executeQuery();<br />&nbsp;&nbsp;&nbsp;//ResultSetMetaData 是结果集元数据，可获取关于 ResultSet 对象中列的类型和属性信息的对象 例如：结果集中共包括多少列，每列的名称和类型等信息<br />&nbsp;&nbsp;&nbsp;ResultSetMetaData rsmd=rs.getMetaData();<br />&nbsp;&nbsp;&nbsp;//获取结果集中的列数<br />&nbsp;&nbsp;&nbsp;int columncount=rsmd.getColumnCount();<br />&nbsp;&nbsp;&nbsp;//while条件成立表明结果集中存在数据<br />&nbsp;&nbsp;&nbsp;while (rs.next()) {<br />&nbsp;&nbsp;&nbsp;&nbsp;//创建一个HashMap用于存储一条数据<br />&nbsp;&nbsp;&nbsp;&nbsp;HashMap&lt;String, Object&gt; onerow=new HashMap&lt;String, Object&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;//循环获取结果集中的列名及列名所对应的值，每次循环都得到一个对象，形如：{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}<br />&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;columncount;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//获取指定列的名称，注意orcle中列名的大小写<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String columnName=rsmd.getColumnName(i+1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onerow.put(columnName, rs.getObject(i+1));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//将获取到的对象onewrow={TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}放到集合列表中<br />&nbsp;&nbsp;&nbsp;&nbsp;list.add(onerow);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;finally{<br />&nbsp;&nbsp;&nbsp;close();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return list;<br />&nbsp;}<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;/**<br />&nbsp; * 实现oracle分页功能<br />&nbsp; * @param sql<br />&nbsp; * @param pagesize<br />&nbsp; * @param pagenow<br />&nbsp; * @return PageBean<br />&nbsp; */<br />&nbsp;public PageBean getPage(String sql,int pagesize,int pagenow)<br />&nbsp;{<br />&nbsp;&nbsp;PageBean pb=new PageBean();<br />&nbsp;&nbsp;int end=pagenow*pagesize;<br />&nbsp;&nbsp;int start=end-pagesize+1;<br />&nbsp;&nbsp;String exesql="select a.* from (select t.*,rownum as rowindex from ("+sql+") t where rownum&lt;="+end+" ) a where a.rowindex&gt;="+start;<br />&nbsp;&nbsp;String countsql="select count(*) as rowcount from ("+sql+")";<br />&nbsp;&nbsp;pb.setResult(queryToList(exesql));<br />&nbsp;&nbsp;pb.setPagenow(pagenow);<br />&nbsp;&nbsp;pb.setPagesize(pagesize);<br />&nbsp;&nbsp;Map&lt;String,Object&gt; map=this.getOneRow(countsql);<br />&nbsp;&nbsp;int rows=Integer.parseInt(map.get("ROWCOUNT").toString());<br />&nbsp;&nbsp;pb.setRows(rows);<br />&nbsp;&nbsp;int pages=rows%pagesize==0?rows/pagesize:rows/pagesize+1;<br />&nbsp;&nbsp;pb.setPages(pages);<br />&nbsp;&nbsp;pb.setSql(sql);<br />&nbsp;&nbsp;return pb;<br />&nbsp;}<br />&nbsp;/**<br />&nbsp; * 关闭数据库各种资源Connection Statement PreparedStatement ResultSet的方法<br />&nbsp; */<br />&nbsp;private void close()<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp; if(rs!=null)<br />&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;rs.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; if(st!=null)<br />&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;st.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; if(pps!=null){<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;pps.close();<br />&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;if(conn!=null&amp;&amp;!conn.isClosed())<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;} catch (SQLException e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;<br />}</p><img src ="http://www.blogjava.net/hyljava/aggbug/379691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-05-31 22:07 <a href="http://www.blogjava.net/hyljava/archive/2012/05/31/379691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j的作用  </title><link>http://www.blogjava.net/hyljava/archive/2012/05/25/379099.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Fri, 25 May 2012 01:32:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/05/25/379099.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/379099.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/05/25/379099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/379099.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/379099.html</trackback:ping><description><![CDATA[<div class="mcnt ztag">
<div class="nbw-bitm bdwb bds2 bdc0 ">
<div class="multicntwrap">
<div class="multicnt">
<div>
<h3 class="title pre fs1"><span class="tcnt"><font size="5" face="微软雅黑">log4j的作用</font></span>&nbsp;&nbsp;<span class="bgc0 fc07 fw0 fs0"></span></h3>
<p style="line-height: 20px" class="tdep clearfix nbw-act fc06"><span class="pleft"><span class="blogsep">&nbsp;</span></span></p></div></div></div>
<div></div>
<div class="nbw-blog-start"></div>
<div class="bct fc05 fc11 nbw-blog ztag js-fs2" __1337909406607__="ev_4088252749"><span>
<p><font face="Times New Roman">一、什么是log4j<br />Log4j 是Apache的一个开放源代码项目，通过使用Log4j，我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等；我们也可以控制每一条日志的输出格式；通过定义每一条日志信息的级别，我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是，这些可以通过一个配置文件来灵活地进行配置，而不需要修改应用的代码。 </font></p>
<p><font face="Times New Roman">二、日志简介<br />日志指在程序中插入语句以提供调试信息。使用日志能够监视程序的执行。例如，用户利用日志可以获得关于应用程序故障的完整信息。用户可以将调试语句（如 System.out.println）插入到程序中以获得详细的调试信息。 </font></p>
<p><font face="Times New Roman">三、项目中为什么要用log4j<br />大家在编程时经常不可避免地要使用到一些日志操作，比如开发阶段的调试信息、运行时的日志记录及审计。调查显示，日志代码占代码总量的4％。通常大家可以简单地使用System.out.println()语句输出日志信息，但是往往会有一些判断，比如： <br />&nbsp;<br />if (someCondition) <br />{<br />&nbsp;&nbsp;System.out.println("some information.");<br />}</font></p>
<p><font face="Times New Roman">这些判断造成正常的程序逻辑中混杂了大量的输出语句。而在开发阶段写下的这些判断仅为了调试的语句，在开发完成时需要查找并移除。部署运行后，尤其是在一些企业应用系统中，还经常需要进一步调试，这时就遇到了更大的麻烦。所以，我们需要一套完备的、灵活的、可配置的日志工具log4J就是优秀的选择。 </font></p>
<p><font face="Times New Roman">四、log4j组件<br />Log4j 由 logger、appender 和 layout 三个组件组成。可以通过同名的 Java 类访问 Log4j 的这三个组件。</font></p>
<p><span><font face="Times New Roman">Logger - 在执行应用程序时，接收日志语句生成的日志请求。它是一种重要的日志处理组件， 可以通过 log4j API 的 logger 类对其进行访问。它的方法有：debug、info、warn、error、fatal 和 log。这些方法用于记录消息。 <br />Appender - 管理日志语句的输出结果。执行日志语句时，Logger 对象将接收来自日志语句的记录请求。此请求是通过 logger 发送至 appender 的。然后，Appender 将输出结果写入到用户选择的目的地。对于不同的日志目的地，提供不同的 appender 类型。这些 appender 包括：用于文件的 file appender、用于数据库的 JDBC appender 和用于 SMTP 服务器的 SMTP appender。 <br />Layout - 用于指定 appender 将日志语句写入日志目的地所采用的格式。appender 可以用来格式化输出结果的各种布局包括：简单布局、模式布局和 HTML 布局。</font></span></p></span></div></div></div><img src ="http://www.blogjava.net/hyljava/aggbug/379099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-05-25 09:32 <a href="http://www.blogjava.net/hyljava/archive/2012/05/25/379099.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>验证身份证的工具类（10、15、18位身份证号都能验证出性别，省份、、、）</title><link>http://www.blogjava.net/hyljava/archive/2012/04/26/376713.html</link><dc:creator>何云隆</dc:creator><author>何云隆</author><pubDate>Thu, 26 Apr 2012 10:26:00 GMT</pubDate><guid>http://www.blogjava.net/hyljava/archive/2012/04/26/376713.html</guid><wfw:comment>http://www.blogjava.net/hyljava/comments/376713.html</wfw:comment><comments>http://www.blogjava.net/hyljava/archive/2012/04/26/376713.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hyljava/comments/commentRss/376713.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hyljava/services/trackbacks/376713.html</trackback:ping><description><![CDATA[<p>import java.text.ParseException;<br />import java.text.SimpleDateFormat;<br />import java.util.Calendar;<br />import java.util.Date;<br />import java.util.HashMap;<br />import java.util.Map;</p>
<p>import org.apache.commons.lang.StringUtils;</p>
<p>/**<br />&nbsp;* 身份证工具类<br />&nbsp;* <br />&nbsp;* @author June<br />&nbsp;* @version 1.0, 2010-06-17<br />&nbsp;*/<br />public class IdcardUtils extends StringUtils {</p>
<p>&nbsp;&nbsp;&nbsp; /** 中国公民身份证号码最小长度。 */<br />&nbsp;&nbsp;&nbsp; public static final int CHINA_ID_MIN_LENGTH = 15;</p>
<p>&nbsp;&nbsp;&nbsp; /** 中国公民身份证号码最大长度。 */<br />&nbsp;&nbsp;&nbsp; public static final int CHINA_ID_MAX_LENGTH = 18;</p>
<p>&nbsp;&nbsp;&nbsp; /** 省、直辖市代码表 */<br />&nbsp;&nbsp;&nbsp; public static final String cityCode[] = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "81", "82", "91"<br />&nbsp;&nbsp;&nbsp; };</p>
<p>&nbsp;&nbsp;&nbsp; /** 每位加权因子 */<br />&nbsp;&nbsp;&nbsp; public static final int power[] = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2<br />&nbsp;&nbsp;&nbsp; };</p>
<p>&nbsp;&nbsp;&nbsp; /** 第18位校检码 */<br />&nbsp;&nbsp;&nbsp; public static final String verifyCode[] = {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"<br />&nbsp;&nbsp;&nbsp; };<br />&nbsp;&nbsp;&nbsp; /** 最低年限 */<br />&nbsp;&nbsp;&nbsp; public static final int MIN = 1930;<br />&nbsp;&nbsp;&nbsp; public static Map&lt;String, String&gt; cityCodes = new HashMap&lt;String, String&gt;();<br />&nbsp;&nbsp;&nbsp; /** 台湾身份首字母对应数字 */<br />&nbsp;&nbsp;&nbsp; public static Map&lt;String, Integer&gt; twFirstCode = new HashMap&lt;String, Integer&gt;();<br />&nbsp;&nbsp;&nbsp; /** 香港身份首字母对应数字 */<br />&nbsp;&nbsp;&nbsp; public static Map&lt;String, Integer&gt; hkFirstCode = new HashMap&lt;String, Integer&gt;();<br />&nbsp;&nbsp;&nbsp; static {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("11", "北京");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("12", "天津");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("13", "河北");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("14", "山西");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("15", "内蒙古");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("21", "辽宁");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("22", "吉林");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("23", "黑龙江");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("31", "上海");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("32", "江苏");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("33", "浙江");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("34", "安徽");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("35", "福建");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("36", "江西");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("37", "山东");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("41", "河南");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("42", "湖北");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("43", "湖南");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("44", "广东");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("45", "广西");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("46", "海南");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("50", "重庆");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("51", "四川");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("52", "贵州");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("53", "云南");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("54", "西藏");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("61", "陕西");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("62", "甘肃");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("63", "青海");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("64", "宁夏");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("65", "新疆");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("71", "台湾");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("81", "香港");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("82", "澳门");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cityCodes.put("91", "国外");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("A", 10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("B", 11);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("C", 12);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("D", 13);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("E", 14);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("F", 15);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("G", 16);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("H", 17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("J", 18);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("K", 19);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("L", 20);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("M", 21);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("N", 22);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("P", 23);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("Q", 24);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("R", 25);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("S", 26);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("T", 27);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("U", 28);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("V", 29);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("X", 30);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("Y", 31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("W", 32);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("Z", 33);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("I", 34);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; twFirstCode.put("O", 35);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("A", 1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("B", 2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("C", 3);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("R", 18);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("U", 21);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("Z", 26);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("X", 24);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("W", 23);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("O", 15);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hkFirstCode.put("N", 14);<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 将15位身份证号码转换为18位<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15位身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 18位身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String conver15CardTo18(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String idCard18 = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.length() != CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isNum(idCard)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 获取出生年月日<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String birthday = idCard.substring(6, 12);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date birthDate = null;<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; birthDate = new SimpleDateFormat("yyMMdd").parse(birthday);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (ParseException 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;&nbsp;&nbsp;&nbsp;&nbsp; Calendar cal = Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (birthDate != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal.setTime(birthDate);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 获取出生年(完全表现形式,如：2010)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sYear = String.valueOf(cal.get(Calendar.YEAR));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard18 = idCard.substring(0, 6) + sYear + idCard.substring(8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 转换字符数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] cArr = idCard18.toCharArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cArr != null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] iCard = converCharToInt(cArr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iSum17 = getPowerSum(iCard);<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; String sVal = getCheckCode18(iSum17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (sVal.length() &gt; 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard18 += sVal;<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;&nbsp;&nbsp;&nbsp;&nbsp; return 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; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return idCard18;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证身份证是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean validateCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String card = idCard.trim();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (validateIdCard18(card)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (validateIdCard15(card)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] cardval = validateIdCard10(card);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cardval != null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cardval[2].equals("true")) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<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 false;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证18位身份编码是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean validateIdCard18(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean bTrue = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.length() == CHINA_ID_MAX_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 前17位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String code17 = idCard.substring(0, 17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 第18位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String code18 = idCard.substring(17, CHINA_ID_MAX_LENGTH);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isNum(code17)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] cArr = code17.toCharArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cArr != null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] iCard = converCharToInt(cArr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iSum17 = getPowerSum(iCard);<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; String val = getCheckCode18(iSum17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (val.length() &gt; 0) {<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 (val.equalsIgnoreCase(code18)) {<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; bTrue = true;<br />&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;&nbsp;&nbsp;&nbsp;&nbsp; return bTrue;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证15位身份编码是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean validateIdCard15(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.length() != CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isNum(idCard)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String proCode = idCard.substring(0, 2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (cityCodes.get(proCode) == null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String birthCode = idCard.substring(6, 12);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date birthDate = null;<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; birthDate = new SimpleDateFormat("yy").parse(birthCode.substring(0, 2));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (ParseException 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;&nbsp;&nbsp;&nbsp;&nbsp; Calendar cal = Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (birthDate != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal.setTime(birthDate);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!valiDate(cal.get(Calendar.YEAR), Integer.valueOf(birthCode.substring(2, 4)),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer.valueOf(birthCode.substring(4, 6)))) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证10位身份编码是否合法<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 身份证信息数组<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [0] - 台湾、澳门、香港 [1] - 性别(男M,女F,未知N) [2] - 是否合法(合法true,不合法false)<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 若不是身份证件号码则返回null<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String[] validateIdCard10(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[] info = new String[3];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String card = idCard.replaceAll("[\\(|\\)]", "");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (card.length() != 8 &amp;&amp; card.length() != 9 &amp;&amp; idCard.length() != 10) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.matches("^[a-zA-Z][0-9]{9}$")) { // 台湾<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[0] = "台湾";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("11111");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String char2 = idCard.substring(1, 2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (char2.equals("1")) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[1] = "M";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("MMMMMMM");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (char2.equals("2")) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[1] = "F";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("FFFFFFF");<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; info[1] = "N";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[2] = "false";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("NNNN");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return info;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[2] = validateTWCard(idCard) ? "true" : "false";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (idCard.matches("^[1|5|7][0-9]{6}\\(?[0-9A-Z]\\)?$")) { // 澳门<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[0] = "澳门";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[1] = "N";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (idCard.matches("^[A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?$")) { // 香港<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[0] = "香港";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[1] = "N";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info[2] = validateHKCard(idCard) ? "true" : "false";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return info;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证台湾身份证号码<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 身份证号码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 验证码是否符合<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean validateTWCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String start = idCard.substring(0, 1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String mid = idCard.substring(1, 9);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String end = idCard.substring(9, 10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer iStart = twFirstCode.get(start);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer sum = iStart / 10 + (iStart % 10) * 9;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] chars = mid.toCharArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer iflag = 8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (char c : chars) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = sum + Integer.valueOf(c + "") * iflag;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iflag--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (sum % 10 == 0 ? 0 : (10 - sum % 10)) == Integer.valueOf(end) ? true : false;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证香港身份证号码(存在Bug，部份特殊身份证无法检查)<br />&nbsp;&nbsp;&nbsp;&nbsp; * &lt;p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; * 身份证前2位为英文字符，如果只出现一个英文字符则表示第一位是空格，对应数字58 前2位英文字符A-Z分别对应数字10-35<br />&nbsp;&nbsp;&nbsp;&nbsp; * 最后一位校验码为0-9的数字加上字符"A"，"A"代表10<br />&nbsp;&nbsp;&nbsp;&nbsp; * &lt;/p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; * &lt;p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; * 将身份证号码全部转换为数字，分别对应乘9-1相加的总和，整除11则证件号码有效<br />&nbsp;&nbsp;&nbsp;&nbsp; * &lt;/p&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份证号码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 验证码是否符合<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean validateHKCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String card = idCard.replaceAll("[\\(|\\)]", "");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer sum = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (card.length() == 9) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = (Integer.valueOf(card.substring(0, 1).toUpperCase().toCharArray()[0]) - 55) * 9<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + (Integer.valueOf(card.substring(1, 2).toUpperCase().toCharArray()[0]) - 55) * 8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; card = card.substring(1, 9);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = 522 + (Integer.valueOf(card.substring(0, 1).toUpperCase().toCharArray()[0]) - 55) * 8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String mid = card.substring(1, 7);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String end = card.substring(7, 8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] chars = mid.toCharArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer iflag = 7;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (char c : chars) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = sum + Integer.valueOf(c + "") * iflag;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iflag--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (end.toUpperCase().equals("A")) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = sum + 10;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = sum + Integer.valueOf(end);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (sum % 11 == 0) ? true : false;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 将字符数组转换成数字数组<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param ca<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符数组<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 数字数组<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static int[] converCharToInt(char[] ca) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len = ca.length;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] iArr = new int[len];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; len; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iArr[i] = Integer.parseInt(String.valueOf(ca[i]));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NumberFormatException e) {<br />&nbsp;&nbsp;&nbsp;&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 iArr;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 将身份证的每位和对应位的加权因子相乘之后，再得到和值<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param iArr<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 身份证编码。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static int getPowerSum(int[] iArr) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iSum = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (power.length == iArr.length) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; iArr.length; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j = 0; j &lt; power.length; j++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i == j) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iSum = iSum + iArr[i] * power[j];<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;&nbsp;&nbsp;&nbsp;&nbsp; return iSum;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 将power和值与11取模获得余数进行校验码判断<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param iSum<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 校验位<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String getCheckCode18(int iSum) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sCode = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (iSum % 11) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 10:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "2";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 9:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "3";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 8:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "4";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 7:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "5";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "6";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 5:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "7";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 4:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "8";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 3:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "9";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "x";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "0";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = "1";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sCode;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取年龄<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 年龄<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static int getAgeByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iAge = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.length() == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String year = idCard.substring(6, 10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar cal = Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iCurrYear = cal.get(Calendar.YEAR);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iAge = iCurrYear - Integer.valueOf(year);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return iAge;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取生日<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 生日(yyyyMMdd)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String getBirthByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer len = idCard.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len &lt; CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (len == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return idCard.substring(6, 14);<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取生日年<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 生日(yyyy)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static Short getYearByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer len = idCard.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len &lt; CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (len == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Short.valueOf(idCard.substring(6, 10));<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取生日月<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 生日(MM)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static Short getMonthByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer len = idCard.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len &lt; CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (len == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Short.valueOf(idCard.substring(10, 12));<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取生日天<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 生日(dd)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static Short getDateByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Integer len = idCard.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len &lt; CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (len == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Short.valueOf(idCard.substring(12, 14));<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取性别<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编号<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 性别(M-男，F-女，N-未知)<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String getGenderByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sGender = "N";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idCard.length() == CHINA_ID_MIN_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; idCard = conver15CardTo18(idCard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sCardNum = idCard.substring(16, 17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (Integer.parseInt(sCardNum) % 2 != 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sGender = "男";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sGender = "女";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sGender;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 根据身份编号获取户籍省份<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param idCard 身份编码<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 省级编码。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static String getProvinceByIdCard(String idCard) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len = idCard.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sProvince = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String sProvinNum = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len == CHINA_ID_MIN_LENGTH || len == CHINA_ID_MAX_LENGTH) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sProvinNum = idCard.substring(0, 2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sProvince = cityCodes.get(sProvinNum);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sProvince;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 数字验证<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param val<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 提取的数字。<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean isNum(String val) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return val == null || "".equals(val) ? false : val.matches("^[0-9]*$");<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp;&nbsp; * 验证小于当前日期 是否有效<br />&nbsp;&nbsp;&nbsp;&nbsp; * <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param iYear<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 待验证日期(年)<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param iMonth<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 待验证日期(月 1-12)<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param iDate<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 待验证日期(日)<br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 是否有效<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public static boolean valiDate(int iYear, int iMonth, int iDate) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar cal = Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int year = cal.get(Calendar.YEAR);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int datePerMonth;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (iYear &lt; MIN || iYear &gt;= year) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (iMonth &lt; 1 || iMonth &gt; 12) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (iMonth) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 4:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 9:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 11:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datePerMonth = 30;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean dm = ((iYear % 4 == 0 &amp;&amp; iYear % 100 != 0) || (iYear % 400 == 0))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;&amp; (iYear &gt; MIN &amp;&amp; iYear &lt; year);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datePerMonth = dm ? 29 : 28;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; datePerMonth = 31;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (iDate &gt;= 1) &amp;&amp; (iDate &lt;= datePerMonth);<br />&nbsp;&nbsp;&nbsp; }<br />}</p><img src ="http://www.blogjava.net/hyljava/aggbug/376713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hyljava/" target="_blank">何云隆</a> 2012-04-26 18:26 <a href="http://www.blogjava.net/hyljava/archive/2012/04/26/376713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>