﻿<?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-tinguo002-随笔分类-java</title><link>http://www.blogjava.net/tinguo002/category/52098.html</link><description>&lt;script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"&gt;&lt;/script&gt;
&lt;!-- iteye 460 60 --&gt;
&lt;ins class="adsbygoogle"
     style="display:inline-block;width:468px;height:60px"
     data-ad-client="ca-pub-2876867208357149"
     data-ad-slot="0418982663"&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
</description><language>zh-cn</language><lastBuildDate>Fri, 07 Nov 2014 14:49:30 GMT</lastBuildDate><pubDate>Fri, 07 Nov 2014 14:49:30 GMT</pubDate><ttl>60</ttl><item><title>Linux 下配置 JDK 环境变量</title><link>http://www.blogjava.net/tinguo002/archive/2014/08/25/417314.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 25 Aug 2014 13:38:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/25/417314.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/417314.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/25/417314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/417314.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/417314.html</trackback:ping><description><![CDATA[纯java开发的软件在linux下面也可以应用自如。那么首先就需要配置好linux下的java环境，具体说来，就是配置jdk环境变量。<br />介绍在linux下配置jdk环境变量的几种常用方法。<br /><br />首先在linux下安装jdk，如果出现提示权限不够(且root下也提示权限不够)，可用#ls -l filename命令查看一下，如果显示类似如：<br /><br />-rw-rw-rw- 1 root root &#8230;.<br /><br />则表示任何用户都没有可执行权限（即使是root用户）。<br /><br />解决方法：<br /><br />#chmod a+x filename<br /><br />这样，安装好后，就可以接下来进行环境变量的配置了。这里给出三种可选方法：<br /><br />一、修改/etc/profile文件<br /><br />当本机仅仅作为开发使用时推荐使用这种方法，因为此种配置时所有用户的shell都有权使用这些环境变量，可能会给系统带来安全性问题。<br /><br />用文本编辑器打开/etc/profile，在profile文件末尾加入：<br /><br />JAVA_HOME=/usr/share/jdk1.5.0_05<br />PATH=$JAVA_HOME/bin:$PATH<br />CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br />export JAVA_HOME<br />export PATH<br />export CLASSPATH<img class="selectsearch-hide" id="selectsearch-icon" alt="搜索" src="http://img.baidu.com/img/iknow/qb/select-search.png" /><br /><br />重新登录即可。<br /><br />二、修改.bashrc文件<br /><br />这种方法更为安全，它可以把使用这些环境变量的权限控制到用户级别，如果需要给某个用户权限使用这些环境变量，只需要修改其个人用户主目录下的.bashrc文件就可以了。<br /><br />用文本编辑器打开用户目录下的.bashrc文件，在.bashrc文件末尾加入：<br /><br />set JAVA_HOME=/usr/share/jdk1.5.0_05<br />export JAVA_HOME<br />set PATH=$JAVA_HOME/bin:$PATH<br />export PATH<br />set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br />export CLASSPATH<br /><br />重新登录。<br /><br />三、直接在shell下设置变量<br /><br />不推荐使用这种方法，因为换个shell，该设置就无效了。这种方法仅仅是临时使用，以后要使用的时候又要重新设置，比较麻烦。<br /><br />只需在shell终端执行下列命令：<br /><br />export JAVA_HOME=/usr/share/jdk1.5.0_05<br />export PATH=$JAVA_HOME/bin:$PATH<br />export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br /><br />注意：<br /><br />1.要将 /usr/share/jdk1.5.0_05jdk 改为jdk安装目录<br />2. linux下用冒号&#8221;:&#8221;来分隔路径<br />3. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值在设置环境变量时特别要注意不能把原来的值给覆盖掉了。<br />4. CLASSPATH中当前目录&#8221;.&#8221;不能丢掉。<br />5. export是把这三个变量导出为全局变量。<br />6. 大小写必须严格区分。<img src ="http://www.blogjava.net/tinguo002/aggbug/417314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-25 21:38 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/25/417314.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片转字符串 </title><link>http://www.blogjava.net/tinguo002/archive/2014/08/05/416579.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Tue, 05 Aug 2014 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/05/416579.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416579.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/05/416579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416579.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 事例1：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package&nbsp;com.apexsoft.mobile.utils;import&nbsp;java.io.FileInputStream;import&nbsp;java.io.Fil...&nbsp;&nbsp;<a href='http://www.blogjava.net/tinguo002/archive/2014/08/05/416579.html'>阅读全文</a><img src ="http://www.blogjava.net/tinguo002/aggbug/416579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-05 11:30 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/05/416579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中InputStream转化为byte[]数组 </title><link>http://www.blogjava.net/tinguo002/archive/2014/08/04/416551.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 04 Aug 2014 13:12:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/04/416551.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416551.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/04/416551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416551.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416551.html</trackback:ping><description><![CDATA[
<span style='font-family: "Comic Sans MS"; font-size: 16px;'>在commons-io包中org.apache.commons.io.IOUtils类的toByteArray(InputStream input)已经有实现了,我们可以参考下思路,完成我们的方法,我们可以用类似下面的代码实现inputStream转化为byte[]数组</span><pre style="padding: 5px; width: auto; text-align: left; line-height: 19px; margin-top: 0px; margin-bottom: 10px; -ms-overflow-x: auto; -ms-overflow-y: auto; background-color: rgb(255, 255, 255);"><span style='font-family: "Comic Sans MS"; font-size: 16px;'>public static byte[] toByteArray(InputStream input) throws IOException {
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    byte[] buffer = new byte[4096];
    int n = 0;
    while (-1 != (n = input.read(buffer))) {
        output.write(buffer, 0, n);
    }
    return output.toByteArray();
}
</span></pre><p style="margin: 20px auto 0px; text-align: left; line-height: 25px; padding-top: 0px; padding-bottom: 0px;"><span style='font-family: "Comic Sans MS"; font-size: 16px;'>下面是IOUtils中摘录出与toByteArray相关的方法</span></p><pre style="padding: 5px; width: auto; text-align: left; line-height: 19px; margin-top: 0px; margin-bottom: 10px; -ms-overflow-x: auto; -ms-overflow-y: auto; background-color: rgb(255, 255, 255);"><span style='font-family: "Comic Sans MS"; font-size: 16px;'>org.apache.commons.io.IOUtils.toByteArray

方法如下:
public static byte[] toByteArray(InputStream input)
  throws IOException
{
  ByteArrayOutputStream output = new ByteArrayOutputStream();
  copy(input, output);
  return output.toByteArray();
}

public static int copy(InputStream input, OutputStream output)
  throws IOException
{
  long count = copyLarge(input, output);
  if (count &gt; 2147483647L) {
    return -1;
  }
  return (int)count;
}

public static long copyLarge(InputStream input, OutputStream output)
  throws IOException
{
  byte[] buffer = new byte[4096];
  long count = 0L;
  int n = 0;
  while (-1 != (n = input.read(buffer))) {
    output.write(buffer, 0, n);
    count += n;
  }
  return count;
}<br /><br />文章详细出处：<a href="http://blog.csdn.net/zdwzzu2006/article/details/7745827">http://blog.csdn.net/zdwzzu2006/article/details/7745827</a></span></pre> 
<img src ="http://www.blogjava.net/tinguo002/aggbug/416551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-04 21:12 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/04/416551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat虚拟目录配置 </title><link>http://www.blogjava.net/tinguo002/archive/2014/08/04/416549.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 04 Aug 2014 12:57:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/04/416549.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416549.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/04/416549.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416549.html</trackback:ping><description><![CDATA[<p><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">虚拟目录配置</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>[</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">转</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>] <br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">设虚拟目录</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> "site"</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，通过</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <a href="http://localhost:8080/site">http://localhost:8080/site</a> </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">访问物理路径</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> D:"site </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件夹里面的内容。设置过程如下：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />1.</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">复制</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> Tomcat6.0"webapps"ROOT </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">目录下的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> WEB-INF </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件夹到</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> D:"site </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">目录下。</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />2.</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">打开</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> D:"site"WEB-INF </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">目录下的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> web.xml </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>,</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> &lt;/description&gt; </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">之后加入：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />&lt;!--JSPC servlet mappings start --&gt; <br />&lt;!--JSPC servlet mappings end --&gt; <br />3.</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">打开</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> Tomcat6.0"conf"server.xml </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件，在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> &lt;Host&gt; </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">和</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> &lt;/Host&gt; </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">之间加入：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />&lt;Context path="/site" docBase="d:"site"&gt;&lt;/Context&gt; <br />path="/site" </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">就是虚拟目录的名称</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />docBase="d:"site"&gt; </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">为物理路径</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />4.</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">打开</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> Tomcat6.0"conf"web.xml </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件，找到</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>: <br />&lt;init-param&gt; <br />&lt;param-name&gt;listings&lt;/param-name&gt; <br />&lt;param-value&gt;false&lt;/param-value&gt; <br />&lt;/init-param&gt; <br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">把</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>false</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">设成</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>true</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">保存，重启</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，现在就可以应用</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <a href="http://localhost:8080/site">http://localhost:8080/site</a> </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">虚拟目录了。</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'></span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat6</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">设置虚拟目录的方法</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>, </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">不修改</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>server.xml </span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件夹的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>conf"catalina"localhost(</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">对于</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat6</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">版本及其以上，需要自己创建</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>catalina</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">和</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>localhost</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">这两个文件夹</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>) </span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">增加</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>project .xml</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件（该文件名的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>project</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">要和下面的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>&#8220;path=&#8220;/xxx"&#8221;</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>xxx</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">相同）</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件内容</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>: </span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>&lt;Context path="/project" reloadable="true" docBase="E:"javastudio"oob" workDir="E:"javastudio"oob"work" /&gt;</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br />docBase</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">是项目文件夹的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>web-inf</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件夹的上一层目录</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />workDir</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">是指</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">解析</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Jsp</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">转换为</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Java</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件，并编译为</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>class</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">存放的文件夹，设置在项目文件夹里面，可以避免移植到其他地方首次读取</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>jsp</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件需要重新解析</span> <span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">。一般格式：项目文件夹</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>"work <br />reloadable</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">是指可以重新加载，一般设置为</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>true</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，方便使用，不需要经常重启</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">。</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> <br />&nbsp;</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">以后启动</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，在浏览器输入</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><a href="http://localhost:8080/project">http://localhost:8080/project</a></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">就能访问</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">该项目的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>welcome</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件。</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">转：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>TomCat 6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">虚拟目录配置！</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>2008</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">年</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>03</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">月</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>09</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">日</span> <span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">星期日</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> 13:51</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">之前在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>5.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">下配置虚拟目录，我一般是采用在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>conf"server.xml</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">中增加</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>&lt;Context .../&gt;</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">的方法，可是此法在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">中失效</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>(</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">后经验证有效，可能是之前实验过程中有误</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>)</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">。按照</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>tomcat 6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">启动之后的相关文档的说明</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><a href="http://localhost:8080/docs/config/context.html">http://localhost:8080/docs/config/context.html</a></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，尝试了一些方法：</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>-----------------------------tomcat6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文档中关于</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Context</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">的说明</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>-------------------<br />You may define as many Context elements as you wish. Each such Context MUST have a unique context path. In addition, a Context must be present with a context path equal to a zero-length string. This Context becomes the default web application for this virtual host, and is used to process all requests that do not match any other Context's context path.</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>For Tomcat 6, unlike Tomcat 4.x, it is NOT recommended to place &lt;Context&gt; elements directly in the server.xml file. This is because it makes modifing the Context configuration more invasive since the main conf/server.xml file cannot be reloaded without restarting Tomcat.</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br />Context elements may be explicitly defined:</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>in the $CATALINA_HOME/conf/context.xml file: the Context element information will be loaded by all webapps <br />in the $CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default file: the Context element information will be loaded by all webapps of that host <br />in individual files (with a ".xml" extension) in the $CATALINA_HOME/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml) extension will be used as the context path. Multi-level context paths may be defined using #, e.g. context#path.xml. The default web application may be defined by using a file called ROOT.xml. <br />if the previous file was not found for this application, in an individual file at /META-INF/context.xml inside the application files <br />inside a Host element in the main conf/server.xml <br />-------------------------------------------------------------------------------</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">逐一验证，方法</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>1</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>2</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">均无效，成功的有以下</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>2</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">种：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>(</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">下文用</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>%tomcat%</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">表示</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat6.0</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">的安装目录，希望在浏览器中通过</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><a href="http://localhost:8080/abc/default.jsp">http://localhost:8080/abc/default.jsp</a> </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">来访问</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>d:"myJsp"default.jsp)</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">方法一：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>(</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文档中说不建议使用</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>)</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">找到</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>%tomcat%"conf"server.xml</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>&lt;/Host&gt;</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">之前加入：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br />&lt;Context docBase="d:"myJsp" path="/abc" /&gt;<br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">保存文件之后，重启</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">即可。注意：大小写不能错</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>! </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">斜杆</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>"/"</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">或</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>"""</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">的方向别搞错。</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">方法二：该方法推荐使用，比较简单。</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">在</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>%tomcat%"conf"Catalina"locahost(</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">该目录可能需要手工创建</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>)</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">下新建一个文件</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>abc.xml</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">，注意文件名中的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>abc</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">就表示虚拟目录的名称，所以不可随意命名，该文件的内容为</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>: <br />&lt;Context docBase="d:"myJsp" /&gt;<br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">重启</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>Tomcat</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">即可。</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>-------------------------------------------------------------------------------------------<br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">其它设置：当</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>url</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">中未明确指定文件名时，是否列出相关目录下所有文件的开关设置：</span></p>
<p style="line-height: 200%"><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">打开</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'> %tomcat%"conf"web.xml </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件，找到</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>: <br />&lt;init-param&gt; <br />&lt;param-name&gt;listings&lt;/param-name&gt; <br />&lt;param-value&gt;false&lt;/param-value&gt; <br />&lt;/init-param&gt; <br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">把</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>false</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">改成</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>true</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">即可。</span></p>
<p style="line-height: 200%"><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>-------------------------------------------------------------------------------------------<br /></span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">其他人的同类经验：</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><a href="http://fengzhiyu-sh.javaeye.com/blog/153506">http://fengzhiyu-sh.javaeye.com/blog/153506</a> </span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">经验证无需设置文中的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>web application</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">下的</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'>web.xml</span><span style="font-size: 9pt; font-family: 新宋体; line-height: 200%">文件。</span><span style='font-size: 9pt; font-family: "Times New Roman"; line-height: 200%'><br /></span></p><br />文章详细参考：<a href="http://www.cnblogs.com/bingoidea/archive/2009/06/06/1497787.html">http://www.cnblogs.com/bingoidea/archive/2009/06/06/1497787.html</a><img src ="http://www.blogjava.net/tinguo002/aggbug/416549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-04 20:57 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/04/416549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat的窗口名称修改</title><link>http://www.blogjava.net/tinguo002/archive/2014/08/04/416548.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 04 Aug 2014 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/04/416548.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416548.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/04/416548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416548.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416548.html</trackback:ping><description><![CDATA[修改 <br />catalina.bat <br /><br />找到下面的东东： <br /><br /><br />:doStart <br />shift <br />if not "%OS%" == "Windows_NT" goto noTitle <br />set _EXECJAVA=start "<span style="color: red">Tomcat</span>" %_RUNJAVA% <br />goto gotTitle <br /><br />修改红色部分<img src ="http://www.blogjava.net/tinguo002/aggbug/416548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-04 20:56 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/04/416548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java下载网页内容和网络图片 </title><link>http://www.blogjava.net/tinguo002/archive/2014/08/04/416542.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 04 Aug 2014 10:38:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/08/04/416542.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416542.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/08/04/416542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416542.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416542.html</trackback:ping><description><![CDATA[
<div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; -ms-word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.BufferedReader;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.ByteArrayOutputStream;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.File;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.FileOutputStream;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.InputStream;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.io.InputStreamReader;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.net.HttpURLConnection;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;java.net.URL;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img align="top" id="Codehighlighter1_267_2137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_267_2137_Open_Text.style.display='none'; Codehighlighter1_267_2137_Closed_Image.style.display='inline'; Codehighlighter1_267_2137_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img align="top" id="Codehighlighter1_267_2137_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_267_2137_Closed_Text.style.display='none'; Codehighlighter1_267_2137_Open_Image.style.display='inline'; Codehighlighter1_267_2137_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;UrlResource&nbsp;</span><span id="Codehighlighter1_267_2137_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_267_2137_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img align="top" id="Codehighlighter1_309_530_Open_Image" onclick="this.style.display='none'; Codehighlighter1_309_530_Open_Text.style.display='none'; Codehighlighter1_309_530_Closed_Image.style.display='inline'; Codehighlighter1_309_530_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_309_530_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_309_530_Closed_Text.style.display='none'; Codehighlighter1_309_530_Open_Image.style.display='inline'; Codehighlighter1_309_530_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)</span><span id="Codehighlighter1_309_530_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_309_530_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" id="Codehighlighter1_317_477_Open_Image" onclick="this.style.display='none'; Codehighlighter1_317_477_Open_Text.style.display='none'; Codehighlighter1_317_477_Closed_Image.style.display='inline'; Codehighlighter1_317_477_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_317_477_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_317_477_Closed_Text.style.display='none'; Codehighlighter1_317_477_Open_Image.style.display='inline'; Codehighlighter1_317_477_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span id="Codehighlighter1_317_477_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_317_477_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(UrlResource.getUrlDetail(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">http://www.baidu.com</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 255);">true</span><span style="color: rgb(0, 0, 0);">));<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveUrlFile(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">http://www.baidu.com/img/baidu_jgylogo3.gif</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">D:\\1.gif</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img align="top" id="Codehighlighter1_499_527_Open_Image" onclick="this.style.display='none'; Codehighlighter1_499_527_Open_Text.style.display='none'; Codehighlighter1_499_527_Closed_Image.style.display='inline'; Codehighlighter1_499_527_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_499_527_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_499_527_Closed_Text.style.display='none'; Codehighlighter1_499_527_Open_Image.style.display='inline'; Codehighlighter1_499_527_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">&nbsp;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_499_527_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_499_527_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">获取网络文件，转存到fileDes中，fileDes需要带文件后缀名</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;saveUrlFile(String&nbsp;fileUrl,String&nbsp;fileDes)&nbsp;</span><span style="color: rgb(0, 0, 255);">throws</span><span style="color: rgb(0, 0, 0);">&nbsp;Exception<br /><img align="top" id="Codehighlighter1_653_934_Open_Image" onclick="this.style.display='none'; Codehighlighter1_653_934_Open_Text.style.display='none'; Codehighlighter1_653_934_Closed_Image.style.display='inline'; Codehighlighter1_653_934_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_653_934_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_653_934_Closed_Text.style.display='none'; Codehighlighter1_653_934_Open_Image.style.display='inline'; Codehighlighter1_653_934_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_653_934_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_653_934_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;toFile&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;File(fileDes);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;(toFile.exists())<br /><img align="top" id="Codehighlighter1_715_770_Open_Image" onclick="this.style.display='none'; Codehighlighter1_715_770_Open_Text.style.display='none'; Codehighlighter1_715_770_Closed_Image.style.display='inline'; Codehighlighter1_715_770_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_715_770_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_715_770_Closed_Text.style.display='none'; Codehighlighter1_715_770_Open_Image.style.display='inline'; Codehighlighter1_715_770_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_715_770_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_715_770_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception("file&nbsp;exist");</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toFile.createNewFile();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;outImgStream&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;FileOutputStream(toFile);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outImgStream.write(getUrlFileData(fileUrl));<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outImgStream.close();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">获取链接地址文件的byte数据</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[]&nbsp;getUrlFileData(String&nbsp;fileUrl)&nbsp;</span><span style="color: rgb(0, 0, 255);">throws</span><span style="color: rgb(0, 0, 0);">&nbsp;Exception<br /><img align="top" id="Codehighlighter1_1028_1500_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1028_1500_Open_Text.style.display='none'; Codehighlighter1_1028_1500_Closed_Image.style.display='inline'; Codehighlighter1_1028_1500_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_1028_1500_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1028_1500_Closed_Text.style.display='none'; Codehighlighter1_1028_1500_Open_Image.style.display='inline'; Codehighlighter1_1028_1500_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1028_1500_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1028_1500_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;URL(fileUrl);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection&nbsp;httpConn&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(HttpURLConnection)&nbsp;url.openConnection();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpConn.connect();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;cin&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;httpConn.getInputStream();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ByteArrayOutputStream&nbsp;outStream&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ByteArrayOutputStream();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[]&nbsp;buffer&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[</span><span style="color: rgb(0, 0, 0);">1024</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;len&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">;<br /><img align="top" id="Codehighlighter1_1357_1397_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1357_1397_Open_Text.style.display='none'; Codehighlighter1_1357_1397_Closed_Image.style.display='inline'; Codehighlighter1_1357_1397_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_1357_1397_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1357_1397_Closed_Text.style.display='none'; Codehighlighter1_1357_1397_Open_Image.style.display='inline'; Codehighlighter1_1357_1397_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">&nbsp;((len&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;cin.read(buffer))&nbsp;</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">)&nbsp;</span><span id="Codehighlighter1_1357_1397_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1357_1397_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStream.write(buffer,&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">,&nbsp;len);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin.close();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[]&nbsp;fileData&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;outStream.toByteArray();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStream.close();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;fileData;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">获取链接地址的字符数据，wichSep是否换行标记</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;String&nbsp;getUrlDetail(String&nbsp;urlStr,</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;withSep)&nbsp;</span><span style="color: rgb(0, 0, 255);">throws</span><span style="color: rgb(0, 0, 0);">&nbsp;Exception<br /><img align="top" id="Codehighlighter1_1617_2133_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1617_2133_Open_Text.style.display='none'; Codehighlighter1_1617_2133_Closed_Image.style.display='inline'; Codehighlighter1_1617_2133_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_1617_2133_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1617_2133_Closed_Text.style.display='none'; Codehighlighter1_1617_2133_Open_Image.style.display='inline'; Codehighlighter1_1617_2133_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1617_2133_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1617_2133_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;URL(urlStr);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpURLConnection&nbsp;httpConn&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;(HttpURLConnection)url.openConnection();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpConn.connect();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;cin&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;httpConn.getInputStream();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;BufferedReader(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;InputStreamReader(cin,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">UTF-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;sb&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;StringBuffer();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rl&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">((rl&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;reader.readLine())&nbsp;</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">)<br /><img align="top" id="Codehighlighter1_1975_2106_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1975_2106_Open_Text.style.display='none'; Codehighlighter1_1975_2106_Closed_Image.style.display='inline'; Codehighlighter1_1975_2106_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_1975_2106_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1975_2106_Closed_Text.style.display='none'; Codehighlighter1_1975_2106_Open_Image.style.display='inline'; Codehighlighter1_1975_2106_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1975_2106_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1975_2106_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;(withSep)<br /><img align="top" id="Codehighlighter1_1996_2065_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1996_2065_Open_Text.style.display='none'; Codehighlighter1_1996_2065_Closed_Image.style.display='inline'; Codehighlighter1_1996_2065_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_1996_2065_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1996_2065_Closed_Text.style.display='none'; Codehighlighter1_1996_2065_Open_Image.style.display='inline'; Codehighlighter1_1996_2065_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1996_2065_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1996_2065_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(rl).append(System.getProperty(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">line.separator</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);"><br /><img align="top" id="Codehighlighter1_2078_2102_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2078_2102_Open_Text.style.display='none'; Codehighlighter1_2078_2102_Closed_Image.style.display='inline'; Codehighlighter1_2078_2102_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img align="top" id="Codehighlighter1_2078_2102_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_2078_2102_Closed_Text.style.display='none'; Codehighlighter1_2078_2102_Open_Image.style.display='inline'; Codehighlighter1_2078_2102_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2078_2102_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2078_2102_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(rl);<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;sb.toString();<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div><br />// 禁止图像缓存<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Pragma", "no-cache");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Cache-Control", "no-cache");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setDateHeader("Expires", 0);<br /><br /><br />文章详细参考：<a href="http://blog.csdn.net/pandakong/article/details/7430844">http://blog.csdn.net/pandakong/article/details/7430844</a><br /> 
<img src ="http://www.blogjava.net/tinguo002/aggbug/416542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-08-04 18:38 <a href="http://www.blogjava.net/tinguo002/archive/2014/08/04/416542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>redis使用</title><link>http://www.blogjava.net/tinguo002/archive/2014/07/30/416340.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Wed, 30 Jul 2014 04:13:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/07/30/416340.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416340.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/07/30/416340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416340.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416340.html</trackback:ping><description><![CDATA[<a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"><p><span style="color: rgb(255, 0, 0); font-size: 14pt;"><span style="color: rgb(255, 0, 0);">阅读</span></span></p><p>&nbsp;</p><p><br />下载的windows版本是redis-2.0.2，解压到D盘下：</p><p>D:\redis-2.0.2</p><p><br />进到该目录下，有下列文件：</p><p><img alt="" src="http://pic002.cnblogs.com/images/2011/282432/2011110919355050.jpg" /></p><p><strong><span style="color: rgb(0, 0, 0);">　redis-server.exe</span></strong>：服务程序</p><div><p>&nbsp;&nbsp; <span style="color: rgb(0, 0, 0);"><strong>redis-check-dump.exe</strong>：本地数据库检查</span></p><p><span style="color: rgb(0, 0, 0);"><strong>&nbsp;&nbsp; redis-check-aof.exe</strong>：更新日志检查</span></p></div><div><span style="color: rgb(0, 0, 0);"><strong>&nbsp;&nbsp; redis-benchmark.exe</strong>：性能测试，用以模拟同时由N</span>个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).</div><div><br /><br /></div><p><span style="color: rgb(255, 0, 0);">启动Redis服务</span>（conf文件指定配置文件，若不指定则默认）：</p><p>D:\redis-2.0.2&gt;<span style="color: rgb(255, 0, 0);">redis-server.exe</span> redis.conf<br /><br /></p><p><img alt="" src="http://pic002.cnblogs.com/images/2011/282432/2011110920095415.jpg" /></p><p><br /><br /><span style="color: rgb(255, 0, 0);">启动cmd窗口要一直开着，关闭后则Redis服务关闭</span>。</p><p>这时服务开启着，另外开一个窗口进行，设置客户端：</p><p>D:\redis-2.0.2&gt;<span style="color: rgb(255, 0, 0);">redis-cli.exe</span> -h <span style="color: rgb(255, 0, 0);">202.117.16.133</span> -p 6379</p><p>然后可以开始玩了：</p><p><img alt="" src="http://pic002.cnblogs.com/images/2011/282432/2011110920151780.jpg" /></p><p><br /><br />--------------------------------------------------------------------------------------------------------------------------------</p><p>&nbsp;</p><p>Redis提供了多种语言的客户端，包括Java，C++，python。</p><p>&nbsp;</p><p>Redis官网上推荐的Java包是Jedis，去下载Jedis，在Java项目中导入Jedis包，开始发现有错误，是因为缺少org.apache.commons这个包，</p><p>去网上找此包，下载导入后，Jedis就没有错误了。</p><p><br />可以开始了，用Jedis来操作Redis：</p></a><div class="cnblogs_code"><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a><div class="cnblogs_code_toolbar"><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a><span class="cnblogs_code_copy"><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a><a title="复制代码" href="javascript:void(0);"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a></span><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a></div><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"><pre><span style="color: rgb(0, 0, 255);">package</span> test;<br /><br /><span style="color: rgb(0, 0, 255);">import</span> redis.clients.jedis.Jedis;<br /><br /><span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">class</span> Client {<br /><br />    <span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />     * </span><span style="color: rgb(128, 128, 128);">@param</span><span style="color: rgb(0, 128, 0);"> args<br />     </span><span style="color: rgb(0, 128, 0);">*/</span><br />    <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">static</span> <span style="color: rgb(0, 0, 255);">void</span> main(String[] args) {<br />        <span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> TODO Auto-generated method stub</span><span style="color: rgb(0, 128, 0);"><br /></span>        Jedis jj = <span style="color: rgb(0, 0, 255);">new</span>  Jedis("localhost");<br />        jj.set("key1", "I am value 1");<br />        String ss = jj.get("key1");<br />        System.out.println(ss);<br />    }<br />    <br />}</pre></a><div class="cnblogs_code_toolbar"><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a><span class="cnblogs_code_copy"><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a><a title="复制代码" href="javascript:void(0);"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a></span><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a></div><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"></a></div><a href="http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html"><p><br /><br /><br /><br /><br />http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.htm <br /></p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;"><br /><br /><br />你的</span><span>redis</span><span style="font-family: 宋体;">在真实环境中不可以谁想访问就访问，所以，必须要设置密码。</span><span></span></p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">设置密码的步骤如下：</span><span></span></p><p class="MsoListParagraph">&lt;!--[if !supportLists]--&gt;<span>1.<span style='font-family: "Times New Roman"; font-size: 7pt;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&lt;!--[endif]--&gt;<span style="font-family: 宋体;">修改</span><span>redis.conf</span><span style="font-family: 宋体;">文件配置</span><span></span></p><p>&nbsp;</p><table class="MsoTableGrid" style="border: currentColor; margin-left: 18pt; border-collapse: collapse; border-image: none;" border="1" cellspacing="0" cellpadding="0"><tbody><tr><td width="568" style="padding: 0cm 5.4pt; width: 426.1pt;"><p class="MsoListParagraph" style="text-align: left; text-indent: 0cm;"><span>root@ubuntu:/usr/local/redis-2.4.14#&nbsp; vim redis.conf</span></p><p class="MsoListParagraph" style="text-align: left; text-indent: 0cm;"><span>#&nbsp; requirepass foobared</span><span style="font-family: 宋体;">去掉注释，</span><span>foobared</span><span style="font-family: 宋体;">改为自己的密码，我在这里改为</span><span>123456</span></p><p class="MsoListParagraph" style="text-align: left; text-indent: 0cm;"><span>requirepass&nbsp; 123456</span></p></td></tr></tbody></table><p>&nbsp;</p><p class="MsoListParagraph">&lt;!--[if !supportLists]--&gt;<span>2.<span style='font-family: "Times New Roman"; font-size: 7pt;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&lt;!--[endif]--&gt;<span style="font-family: 宋体;">启动服务</span><span></span></p><p>&nbsp;</p><table class="MsoTableGrid" style="border: currentColor; border-collapse: collapse; border-image: none;" border="1" cellspacing="0" cellpadding="0"><tbody><tr><td width="568" style="padding: 0cm 5.4pt; width: 426.1pt;"><p class="MsoNormal" style="text-align: left;"><span>root@ubuntu:/usr/local/redis-2.4.14# ./src/redis-server redis.conf</span></p></td></tr></tbody></table><p>&nbsp;</p><p class="MsoListParagraph">&lt;!--[if !supportLists]--&gt;<span>3.<span style='font-family: "Times New Roman"; font-size: 7pt;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&lt;!--[endif]--&gt;<span style="font-family: 宋体;">客户端连接</span><span></span></p><p>&nbsp;</p><table class="MsoTableGrid" style="border: currentColor; border-collapse: collapse; border-image: none;" border="1" cellspacing="0" cellpadding="0"><tbody><tr><td width="568" style="padding: 0cm 5.4pt; width: 426.1pt;"><p class="MsoNormal" style="text-align: left;"><span>naxsu@ubuntu:/usr/local/redis-2.4.14$ ./src/redis-cli </span></p><p class="MsoNormal" style="text-align: left;"><span>redis 127.0.0.1:6379&gt; get a</span></p><p class="MsoNormal" style="text-align: left;"><span>(error) ERR operation not permitted</span></p><p class="MsoNormal" style="text-align: left;"><span>redis 127.0.0.1:6379&gt;</span></p><p class="MsoNormal" style="text-align: left;"><span style="color: red; font-family: 宋体;">提示没有权限</span><span style="color: red;"></span></p><p class="MsoNormal" style="text-align: left;"><span>naxsu@ubuntu:/usr/local/redis-2.4.14$ ./src/redis-cli -a 123456</span></p><p class="MsoNormal" style="text-align: left;"><span>redis 127.0.0.1:6379&gt; get a</span></p><p class="MsoNormal" style="text-align: left;"><span>"b"</span></p></td></tr></tbody></table><p>&nbsp;</p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">到此说明设置密码有效了。</span><span></span></p><h1><span style="font-family: 宋体;">设置随机启动</span><span></span> </h1><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">在服务器上，你每次重启机器后再去启动</span><span>redis</span><span style="font-family: 宋体;">的服务，这是很麻烦的，所以将</span><span>Redis</span><span style="font-family: 宋体;">作为</span><span> Linux </span><span style="font-family: 宋体;">服务随机启动是很有必要的。</span><span></span></p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">修改</span><span>/etc/rc.local</span><span style="font-family: 宋体;">文件</span><span></span></p><p>&nbsp;</p><table class="MsoTableGrid" style="border: currentColor; border-collapse: collapse; border-image: none;" border="1" cellspacing="0" cellpadding="0"><tbody><tr><td width="568" style="padding: 0cm 5.4pt; width: 426.1pt;"><p class="MsoNormal" style="text-align: left;"><span>root@ubuntu:/usr/local/redis-2.4.14# vim /etc/rc.local</span></p></td></tr></tbody></table><p>&nbsp;</p><p class="MsoNormal" style="text-align: left;"><span>在最后加入下面一行代码</span><span></span></p><p>&nbsp;</p><table class="MsoTableGrid" style="border: currentColor; border-collapse: collapse; border-image: none;" border="1" cellspacing="0" cellpadding="0"><tbody><tr><td width="568" style="padding: 0cm 5.4pt; width: 426.1pt;"><p class="MsoNormal" style="text-align: left;"><span>./usr/local/redis-2.4.14/src/redis-server /usr/local/redis-2.4.14/redis.conf</span></p></td></tr></tbody></table><p>&nbsp;</p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">重启机器看看效果</span><span></span></p><p class="MsoNormal" style="text-align: left;"><span>&nbsp;</span></p><p class="MsoNormal" style="text-align: left;"><span style="font-family: 宋体;">根据我的测试，设置是成功的。</span></p><p>l<br /></p></a><p>文章详细参考：</p><a href="http://www.iteye.com/topic/1124400">http://www.iteye.com/topic/1124400</a><img src ="http://www.blogjava.net/tinguo002/aggbug/416340.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-07-30 12:13 <a href="http://www.blogjava.net/tinguo002/archive/2014/07/30/416340.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java request 获取域名</title><link>http://www.blogjava.net/tinguo002/archive/2014/07/23/416121.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Wed, 23 Jul 2014 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/07/23/416121.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416121.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/07/23/416121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416121.html</trackback:ping><description><![CDATA[<br />获取域名，如：http://f0rb.iteye.com/ <br /><pre title="Java Request 获取域名" class="java" style="display: none" name="code" pre_index="0" source_url="http://f0rb.iteye.com/blog/1253746" codeable_type="Blog" codeable_id="1253746">StringBuffer url = request.getRequestURL();
String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append("/").toString();
</pre><br /><br />获取带部署环境上下文的域名，如： http://www.iteye.com/admin/ <br />
<p><span>StringBuffer&nbsp;url&nbsp;=&nbsp;request.getRequestURL();&nbsp;&nbsp;</span></p>
<p><span>String&nbsp;tempContextUrl&nbsp;=&nbsp;url.delete(url.length()&nbsp;-&nbsp;request.getRequestURI().length(),&nbsp;url.length()).append(request.getServletContext().getContextPath()).append(<span class="string"><font color="#0000ff">"/"</font></span><span>).toString();&nbsp;&nbsp;<br /><br />文章详细参考：<a href="http://f0rb.iteye.com/blog/1253746">http://f0rb.iteye.com/blog/1253746</a></span></span></p><img src ="http://www.blogjava.net/tinguo002/aggbug/416121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-07-23 11:44 <a href="http://www.blogjava.net/tinguo002/archive/2014/07/23/416121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA反射机制，把JavaBean属性转成字符串</title><link>http://www.blogjava.net/tinguo002/archive/2014/07/22/416089.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Tue, 22 Jul 2014 07:14:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/07/22/416089.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416089.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/07/22/416089.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416089.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416089.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package&nbsp;com.jetsum.util;import&nbsp;java.io.StringReader;import&nbsp;java.lang.reflect.Field;impo...&nbsp;&nbsp;<a href='http://www.blogjava.net/tinguo002/archive/2014/07/22/416089.html'>阅读全文</a><img src ="http://www.blogjava.net/tinguo002/aggbug/416089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-07-22 15:14 <a href="http://www.blogjava.net/tinguo002/archive/2014/07/22/416089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java String转Float精度不准确问题</title><link>http://www.blogjava.net/tinguo002/archive/2014/07/21/416058.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 21 Jul 2014 11:39:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/07/21/416058.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/416058.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/07/21/416058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/416058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/416058.html</trackback:ping><description><![CDATA[String floatValStr = "4.5";<br />BigDecimal b1 = new BigDecimal(floatValStr );<br />BigDecimal b2 = new BigDecimal(100);<br />dqll = b1.multiply(b2).toString();&nbsp;&nbsp;&nbsp;&nbsp;//4.5*100<br /><br />有关BigDecimal&nbsp; api参考：<br /><a href="http://blog.sina.com.cn/s/blog_6a0cd5e501011soa.html">http://blog.sina.com.cn/s/blog_6a0cd5e501011soa.html</a><img src ="http://www.blogjava.net/tinguo002/aggbug/416058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-07-21 19:39 <a href="http://www.blogjava.net/tinguo002/archive/2014/07/21/416058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.net.SocketException: Connection reset 解决方法</title><link>http://www.blogjava.net/tinguo002/archive/2014/06/27/415170.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Fri, 27 Jun 2014 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/06/27/415170.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/415170.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/06/27/415170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/415170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/415170.html</trackback:ping><description><![CDATA[推荐好文：<a href="http://www.cnblogs.com/zmc/p/3295761.html">http://www.cnblogs.com/zmc/p/3295761.html</a><br /><br />
<p>当数据库连接池中的连接被创建而长时间不使用的情况下，该连接会自动回收并失效，但客户端并不知道，在进行数据库操作时仍然使用的是无效的数据库连接，这样，就导致客户端程序报&#8220; java.sql.SQLException: Io 异常: Connection reset&#8221; 或&#8220;java.sql.SQLException 关闭的连接&#8221;异常。</p>
<p><br />解决办法：客户端在使用一个无效的连接时会先对该连接进行测试，如果发现该连接已经无效，则重新从连接池获取有效数据库连接来使用。<br /></p>
<p>在tomcat的<span style="color: red">context.xml</span>里面设置数据源时候可参考：</p>
<p>&nbsp;&lt;Resource auth="Container"<br />&nbsp;&nbsp;driverClassName="oracle.jdbc.OracleDriver"<br />&nbsp;&nbsp;type="javax.sql.DataSource" <br />&nbsp;&nbsp;url="jdbc:oracle:thin:@11.11.11.45:1521:orcl"<br />&nbsp;&nbsp;name="jdbc/login"<br />&nbsp;&nbsp;username="login"<br />&nbsp;&nbsp;password="login"<br />&nbsp;&nbsp;maxActive="15"<br />&nbsp;&nbsp;maxIdle="10"<br />&nbsp;&nbsp;maxWait="-1"<br />&nbsp;&nbsp;minIdle="2"<br />&nbsp;&nbsp;removeAbandonedTimeout="5"<br />&nbsp;&nbsp;<span style="color: red">testOnBorrow="true"</span><br /><span style="color: red">&nbsp;&nbsp;testWhileIdle="true"</span><br /><span style="color: red">&nbsp;&nbsp;testOnReturn="true"</span><br /><span style="color: red">&nbsp;&nbsp;removeAbandoned="true"</span><br /><span style="color: red">&nbsp;&nbsp;logAbandoned="true"</span><br /><span style="color: red">&nbsp;&nbsp;validationQuery="select 1 from dual"</span><br />&nbsp;/&gt;&nbsp;<br />&nbsp;<br />&nbsp;<br />参考：<a href="http://www.cnblogs.com/younes/archive/2012/06/01/2529483.html">http://www.cnblogs.com/younes/archive/2012/06/01/2529483.html</a><br /><br /><br /><br /><br /></p>
<h2 class="title content-title">DBCP数据库连接失效的解决方法(Io 异常：Connection reset)</h2>
<div id="content" class="content mod-cs-content text-content clearfix">
<p><br />网上很多评论说DBCP有很多BUG，但是都没有指明是什么BUG，只有一部分人说数据库如果因为某种原因断掉后再DBCP取道的连接都是失效的连接，而没有重新取。有的时候会报Io 异常：Connection reset。</p>
<p>解决方法：</p>
<p>spring中datasource的配置如下：<br />&nbsp;&nbsp;&nbsp; &lt;bean id="dispatchdataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:myserver" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="username" value="user1" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="password" value="pwd" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="maxActive" value="10000" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="maxIdle" value="30" /&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="minIdle" value="2" /&gt; <br />&nbsp;&nbsp;&nbsp; &lt;property name="maxWait" value="600000" /&gt; <br /><span style="color: red">&nbsp;&nbsp;&nbsp; &lt;property name="testOnBorrow" value="true"/&gt; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp; &lt;property name="testWhileIdle" value="true"/&gt; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp; &lt;property name="validationQuery" value="select 1 from dual"/&gt; </span><br />&lt;/bean&gt; </p>
<p>&nbsp;</p>
<p>分析:</p>
<p>DBCP使用apache的对象池ObjectPool作为连接池的实现，有以下主要的方法</p>
<p>Object borrowObject() throws Exception;从对象池取得一个有效对象</p>
<p>void returnObject(Object obj) throws Exception;使用完的对象放回对象池</p>
<p>void invalidateObject(Object obj) throws Exception;使对象失效</p>
<p>void addObject() throws Exception;生成一个新对象</p>
<p><br />ObjectPool的一个实现就是GenericObjectPool，这个类使用对象工厂PoolableObjectFactory实现对象的生成，失效检查等等功能，以其实现数据库连接工厂PoolableConnectionFactory做以说明，主要方法：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Object makeObject() throws Exception; 使用ConnectionFactory生成新连接</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; void destroyObject(Object obj) throws Exception;关闭连接</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; boolean validateObject(Object obj); 验证连接是否有效，如果_validationQuery不空，则使用该属性作为验证连接是否有效的sql语句，查询数据库</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; void activateObject(Object obj) throws Exception;激活连接对象</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; void passivateObject(Object obj) throws Exception; 关闭连接生成过的Statement和ResultSet，使连接处于非活动状态</p>
<p>&nbsp;&nbsp;&nbsp; 而GenericObjectPool有几个主要属性</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; _timeBetweenEvictionRunsMillis：失效检查线程运行时间间隔，默认-1</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; _maxIdle：对象池中对象最大个数</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; _minIdle：对象池中对象最小个数</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; _maxActive：可以从对象池中取出的对象最大个数，为0则表示没有限制，默认为8</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 在构造GenericObjectPool时，会生成一个内嵌类Evictor，实现自Runnable接口。如果 _timeBetweenEvictionRunsMillis大于0，每过_timeBetweenEvictionRunsMillis毫秒 Evictor会调用evict()方法，检查对象的闲置时间是否大于 _minEvictableIdleTimeMillis毫秒（_minEvictableIdleTimeMillis小于等于0时则忽略，默认为30 分钟），是则销毁此对象，否则就激活并校验对象，然后调用ensureMinIdle方法检查确保池中对象个数不小于_minIdle。在调用 returnObject方法把对象放回对象池，首先检查该对象是否有效，然后调用PoolableObjectFactory 的passivateObject方法使对象处于非活动状态。再检查对象池中对象个数是否小于_maxIdle，是则可以把此对象放回对象池，否则销毁此对象。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 还有几个很重要的属性<span style="color: red">，_testOnBorrow、_testOnReturn、_testWhileIdle</span>，这些属性的意义是<span style="color: red">取得、返回对象和空闲时是否进行验证</span>，检查对象是否有效，<span style="color: red">默认都为false即不验证</span>。所以当使用DBCP时，数据库连接因为某种原因断掉后，再从连接池中取得连接又不进行验证，这时取得的连接实际已经时无效的数据库连接了。网上很多说 DBCP的bug应该都是如此吧，只有把这些属性设为true，再提供_validationQuery语句就可以保证数据库连接始终有效了，oracle数据库可以使用SELECT COUNT(*) FROM DUAL，不过DBCP要求_validationQuery语句查询的记录集必须不为空，可能这也可以算一个小小的BUG，其实只要_validationQuery语句执行通过就可以了。</p></div>
<p>参考：<a href="http://hi.baidu.com/dobodo/item/7d95e3384d181cc4392ffab5">http://hi.baidu.com/dobodo/item/7d95e3384d181cc4392ffab5<br /><br /><br /><br />Tomcat Resource可配置的属性<br /><br /></a><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/tinguo002/Tomcat-Resource可配置属性.png" /><br /><br /><br /></p><img src ="http://www.blogjava.net/tinguo002/aggbug/415170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-06-27 11:43 <a href="http://www.blogjava.net/tinguo002/archive/2014/06/27/415170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>web 打印</title><link>http://www.blogjava.net/tinguo002/archive/2014/06/26/415154.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 26 Jun 2014 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/06/26/415154.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/415154.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/06/26/415154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/415154.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/415154.html</trackback:ping><description><![CDATA[<a href="http://www.jb51.net/article/21444.htm">http://www.jb51.net/article/21444.htm</a> <br /><a href="http://www.downdiy.com/kfyy/php/20140323/9e7b9b20201d3a49bb835efc2edc23d3.html">http://www.downdiy.com/kfyy/php/20140323/9e7b9b20201d3a49bb835efc2edc23d3.html</a>&nbsp; 保持线条被打印 <br /><br /><img src ="http://www.blogjava.net/tinguo002/aggbug/415154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-06-26 14:40 <a href="http://www.blogjava.net/tinguo002/archive/2014/06/26/415154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>时间比较</title><link>http://www.blogjava.net/tinguo002/archive/2014/05/26/414127.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 26 May 2014 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/05/26/414127.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/414127.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/05/26/414127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/414127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/414127.html</trackback:ping><description><![CDATA[<br /><br /><br />import java.util.Date;<br />import java.text.ParseException;<img id="selectsearch-icon" class="selectsearch-hide" alt="搜索" src="http://img.baidu.com/img/iknow/qb/select-search.png" /><br />import java.text.SimpleDateFormat;<br /><br />public class TimeCompare {<br /><br />public static int Hour(Date time){<br />SimpleDateFormat st=new SimpleDateFormat("yyyyMMddHH");<br />return Integer.parseInt(st.format(time));<br />}<br /><br />public static Date StringToDate(String s){<br />Date time=new Date();<br />SimpleDateFormat sd=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");<br />try{<br />time=sd.parse(s);<br />}<br />catch (ParseException e) { <br />System.out.println("输入的日期格式有误！"); <br />}<br />return time;<br />}<br /><br />public static void main(String[] args) {<br />String a="2012/01/01 18:08:20";<br />String b="2012/01/01 18:01:20";<br />String c="2012/01/02 01:01:01";<br />if(Hour(StringToDate(a))&lt;=Hour(StringToDate(b))&amp;&amp;Hour(StringToDate(a))&lt;Hour(StringToDate(c)))<br />System.out.println("成功");<br />else<br />System.out.println("失败");<br />}<br />} <br /><img src ="http://www.blogjava.net/tinguo002/aggbug/414127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-05-26 17:47 <a href="http://www.blogjava.net/tinguo002/archive/2014/05/26/414127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iframe应用session丢失的问题 </title><link>http://www.blogjava.net/tinguo002/archive/2014/05/22/413994.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 22 May 2014 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/05/22/413994.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/413994.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/05/22/413994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/413994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/413994.html</trackback:ping><description><![CDATA[详细参考：<a href="http://www.cnblogs.com/fengqingtao/archive/2011/03/16/1986174.html">http://www.cnblogs.com/fengqingtao/archive/2011/03/16/1986174.html</a><br /><a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/fengqingtao/archive/2011/03/16/1986174.html"><br />iframe应用session丢失的问题</a> 
<div class="clear"></div>
<div class="postBody">
<div id="cnblogs_post_body">
<p>在网站群的建设中，各子站需要共享主站的footer等公共信息。同时主站的后台管理也集成了各子站的管理，采取的方式是使用iframe嵌入各站的页面。在本机开发环境中，没有出现任何的问题。但是一放到测试环境中，便遇到session丢失的问题。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 环境：应用服务器采用tomcat6.0，各个站点单独使用一个应用服务器，部署在一台物理服务器上。外部访问采用同一个IP，但是不同的端口。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 起初以为，IE它的安全策略默认是会把iframe中的页面站点认为是不可信任的，它会阻止该站点传过来的cookie（如果你在iframe中的URL跳转是用的localhost,则不会被阻挡），所以因为没法使用cookie了，session便失效了。解决的方法是在过滤器，或者被嵌入的页面内加入属性为P3P的header信息。java为：response.addHeader("P3P","CP=CAO PSA OUR");但是依然没有成功。网上的解决方案都是这么说，况且自己以前还弄过，都成功过，这次怎么弄都不好。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天脑子安静下来，仔细的分析这里面的原因。如果是IE的安全限制，但是火狐、google浏览器没有这样的限制，为什么这两个浏览器也出现这样的情况。这肯定不仅仅和跨域引起的P3P的安全问题有关。于是在本机测试，通过iframe引入测试环境中的链接，设置了P3P，发现一切正常。这就更说明了，测试环境中的问题绝对不是P3P的问题了。而且使用了同一个IP，也应该没有跨域的说法。那原因到底是什么呢？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 慢慢的，我将视线注意到了端口上。这些网站的访问方式都是：同一IP+不同端口，难道和端口有关系。上网搜，关于这方面的内容太少了，但是总算在零星的资源中，找到了里面的原因。IP相同的两个session对应的cookie是一样的，而不幸的是sessionID就保存在cookie中，这样先访问A，再访问B的时候，B的sessionid会覆盖A的sessionid。这个事情没办法解决，所以你不要搞两个端口，最好是搞两个IP。原来都是cookie惹的祸，它不会区分端口，造成这多个站点不断的后来的覆盖前面的，从而造成session的丢失。问题解决了，将相互有引用的应用架构在不同的虚拟主机中，或者映射不同的IP。</p></div></div><img src ="http://www.blogjava.net/tinguo002/aggbug/413994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-05-22 23:07 <a href="http://www.blogjava.net/tinguo002/archive/2014/05/22/413994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java DES 加密和解密源码</title><link>http://www.blogjava.net/tinguo002/archive/2014/05/13/413610.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Tue, 13 May 2014 09:19:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/05/13/413610.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/413610.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/05/13/413610.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/413610.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/413610.html</trackback:ping><description><![CDATA[<div>文章参考：<a href="http://www.oschina.net/code/snippet_727646_18383">http://www.oschina.net/code/snippet_727646_18383</a><br /><br />Java<span>密码学结构设计遵循两个原则</span><span>:</span> 
<p>1)&nbsp;算法的独立性和可靠性。 </p>
<p>2)&nbsp;实现的独立性和相互作用性。 </p>
<p>算法的独立性是通过定义密码服务类来获得。用户只需了解密码算法的概念<span>,</span><span>而不用去关心如何实现这些概念。实现的独立性和相互作用性通过密码服务提供器来实现。密码服务提供器是实现一个或多个密码服务的一个或多个程序包。软件开发商根据一定接口</span><span>,</span><span>将各种算法实现后</span><span>,</span><span>打包成一个提供器</span><span>,</span><span>用户可以安装不同的提供器。安装和配置提供器</span><span>,</span><span>可将包含提供器的</span><span>ZIP</span><span>和</span><span>JAR</span><span>文件放在</span><span>CLASSPATH</span><span>下</span><span>,</span><span>再编辑</span><span>Java</span><span>安全属性文件来设置定义一个提供器。</span> </p>
<p><br /></p>
<p>DES<span>算法及如何利用</span><span>DES</span><span>算法加密和解密类文件的步骤</span>： </p>
<p>DES<span>算法简介</span><br />DES<span>（</span><span>Data&nbsp;Encryption&nbsp;Standard</span><span>）是发明最早的最广泛使用的分组对称加密算法。</span><span>DES</span><span>算法的入口参数有三个：</span><span>Key</span><span>、</span><span>Data</span><span>、</span><span>Mode</span><span>。其中</span><span>Key</span><span>为</span><span>8</span><span>个字节共</span><span>64</span><span>位，是</span><span>DES</span><span>算法的工作密钥；</span><span>Data</span><span>也为</span><span>8</span><span>个字节</span><span>64</span><span>位，是要被加密或被解密的数据；</span><span>Mode</span><span>为</span><span>DES</span><span>的工作方式，有两种：加密或解密。</p>
<div style="font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; width: 98%; border-bottom: #cccccc 1px solid; word-break: break-all; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: #cccccc 1px solid; padding-right: 5px; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.afreon.util;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.IOException;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.SecureRandom;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.crypto.Cipher;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.crypto.SecretKey;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.crypto.SecretKeyFactory;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.crypto.spec.DESKeySpec;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sun.misc.BASE64Decoder;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sun.misc.BASE64Encoder;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_309_2615_Open_Text.style.display='none'; Codehighlighter1_309_2615_Closed_Image.style.display='inline'; Codehighlighter1_309_2615_Closed_Text.style.display='inline';" id="Codehighlighter1_309_2615_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_309_2615_Closed_Text.style.display='none'; Codehighlighter1_309_2615_Open_Image.style.display='inline'; Codehighlighter1_309_2615_Open_Text.style.display='inline';" id="Codehighlighter1_309_2615_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;DesUtil&nbsp;</span><span id="Codehighlighter1_309_2615_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_309_2615_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;DES&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">DES</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_412_569_Open_Text.style.display='none'; Codehighlighter1_412_569_Closed_Image.style.display='inline'; Codehighlighter1_412_569_Closed_Text.style.display='inline';" id="Codehighlighter1_412_569_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_412_569_Closed_Text.style.display='none'; Codehighlighter1_412_569_Open_Image.style.display='inline'; Codehighlighter1_412_569_Open_Text.style.display='inline';" id="Codehighlighter1_412_569_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_412_569_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_412_569_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">123&nbsp;456</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;key&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">wang!@#$%</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println(encrypt(data,&nbsp;key));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println(decrypt(encrypt(data,&nbsp;key),&nbsp;key));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img onclick="this.style.display='none'; Codehighlighter1_574_683_Open_Text.style.display='none'; Codehighlighter1_574_683_Closed_Image.style.display='inline'; Codehighlighter1_574_683_Closed_Text.style.display='inline';" id="Codehighlighter1_574_683_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_574_683_Closed_Text.style.display='none'; Codehighlighter1_574_683_Open_Image.style.display='inline'; Codehighlighter1_574_683_Open_Text.style.display='inline';" id="Codehighlighter1_574_683_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_574_683_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_574_683_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Description&nbsp;根据键值进行加密<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;data&nbsp;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;key&nbsp;&nbsp;加密键byte数组<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@throws</span><span style="color: #008000">&nbsp;Exception<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img onclick="this.style.display='none'; Codehighlighter1_757_879_Open_Text.style.display='none'; Codehighlighter1_757_879_Closed_Image.style.display='inline'; Codehighlighter1_757_879_Closed_Text.style.display='inline';" id="Codehighlighter1_757_879_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_757_879_Closed_Text.style.display='none'; Codehighlighter1_757_879_Open_Image.style.display='inline'; Codehighlighter1_757_879_Open_Text.style.display='inline';" id="Codehighlighter1_757_879_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;encrypt(String&nbsp;data,&nbsp;String&nbsp;key)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_757_879_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_757_879_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;encrypt(data.getBytes(),&nbsp;key.getBytes());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BASE64Encoder().encode(bt);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;strs;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_883_1015_Open_Text.style.display='none'; Codehighlighter1_883_1015_Closed_Image.style.display='inline'; Codehighlighter1_883_1015_Closed_Text.style.display='inline';" id="Codehighlighter1_883_1015_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_883_1015_Closed_Text.style.display='none'; Codehighlighter1_883_1015_Open_Image.style.display='inline'; Codehighlighter1_883_1015_Open_Text.style.display='inline';" id="Codehighlighter1_883_1015_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_883_1015_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_883_1015_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Description&nbsp;根据键值进行解密<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;data<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;key&nbsp;&nbsp;加密键byte数组<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@throws</span><span style="color: #008000">&nbsp;IOException<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@throws</span><span style="color: #008000">&nbsp;Exception<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;decrypt(String&nbsp;data,&nbsp;String&nbsp;key)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException,<br /><img onclick="this.style.display='none'; Codehighlighter1_1105_1302_Open_Text.style.display='none'; Codehighlighter1_1105_1302_Closed_Image.style.display='inline'; Codehighlighter1_1105_1302_Closed_Text.style.display='inline';" id="Codehighlighter1_1105_1302_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1105_1302_Closed_Text.style.display='none'; Codehighlighter1_1105_1302_Open_Image.style.display='inline'; Codehighlighter1_1105_1302_Open_Text.style.display='inline';" id="Codehighlighter1_1105_1302_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_1105_1302_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1105_1302_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(data&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BASE64Decoder&nbsp;decoder&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BASE64Decoder();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;buf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;decoder.decodeBuffer(data);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;decrypt(buf,key.getBytes());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(bt);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_1306_1414_Open_Text.style.display='none'; Codehighlighter1_1306_1414_Closed_Image.style.display='inline'; Codehighlighter1_1306_1414_Closed_Text.style.display='inline';" id="Codehighlighter1_1306_1414_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1306_1414_Closed_Text.style.display='none'; Codehighlighter1_1306_1414_Open_Image.style.display='inline'; Codehighlighter1_1306_1414_Open_Text.style.display='inline';" id="Codehighlighter1_1306_1414_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1306_1414_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_1306_1414_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Description&nbsp;根据键值进行加密<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;data<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;key&nbsp;&nbsp;加密键byte数组<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@throws</span><span style="color: #008000">&nbsp;Exception<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img onclick="this.style.display='none'; Codehighlighter1_1489_1956_Open_Text.style.display='none'; Codehighlighter1_1489_1956_Closed_Image.style.display='inline'; Codehighlighter1_1489_1956_Closed_Text.style.display='inline';" id="Codehighlighter1_1489_1956_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1489_1956_Closed_Text.style.display='none'; Codehighlighter1_1489_1956_Open_Image.style.display='inline'; Codehighlighter1_1489_1956_Open_Text.style.display='inline';" id="Codehighlighter1_1489_1956_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;encrypt(</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;data,&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;key)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_1489_1956_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1489_1956_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;生成一个可信任的随机数源</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecureRandom&nbsp;sr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SecureRandom();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;从原始密钥数据创建DESKeySpec对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DESKeySpec&nbsp;dks&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DESKeySpec(key);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建一个密钥工厂，然后用它把DESKeySpec转换成SecretKey对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecretKeyFactory&nbsp;keyFactory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SecretKeyFactory.getInstance(DES);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecretKey&nbsp;securekey&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;keyFactory.generateSecret(dks);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Cipher对象实际完成加密操作</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cipher&nbsp;cipher&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Cipher.getInstance(DES);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用密钥初始化Cipher对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cipher.init(Cipher.ENCRYPT_MODE,&nbsp;securekey,&nbsp;sr);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cipher.doFinal(data);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img onclick="this.style.display='none'; Codehighlighter1_1963_2071_Open_Text.style.display='none'; Codehighlighter1_1963_2071_Closed_Image.style.display='inline'; Codehighlighter1_1963_2071_Closed_Text.style.display='inline';" id="Codehighlighter1_1963_2071_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1963_2071_Closed_Text.style.display='none'; Codehighlighter1_1963_2071_Open_Image.style.display='inline'; Codehighlighter1_1963_2071_Open_Text.style.display='inline';" id="Codehighlighter1_1963_2071_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1963_2071_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_1963_2071_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Description&nbsp;根据键值进行解密<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;data<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;key&nbsp;&nbsp;加密键byte数组<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@throws</span><span style="color: #008000">&nbsp;Exception<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img onclick="this.style.display='none'; Codehighlighter1_2146_2613_Open_Text.style.display='none'; Codehighlighter1_2146_2613_Closed_Image.style.display='inline'; Codehighlighter1_2146_2613_Closed_Text.style.display='inline';" id="Codehighlighter1_2146_2613_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_2146_2613_Closed_Text.style.display='none'; Codehighlighter1_2146_2613_Open_Image.style.display='inline'; Codehighlighter1_2146_2613_Open_Text.style.display='inline';" id="Codehighlighter1_2146_2613_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;decrypt(</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;data,&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;key)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_2146_2613_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_2146_2613_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;生成一个可信任的随机数源</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecureRandom&nbsp;sr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SecureRandom();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;从原始密钥数据创建DESKeySpec对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DESKeySpec&nbsp;dks&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DESKeySpec(key);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建一个密钥工厂，然后用它把DESKeySpec转换成SecretKey对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecretKeyFactory&nbsp;keyFactory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SecretKeyFactory.getInstance(DES);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SecretKey&nbsp;securekey&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;keyFactory.generateSecret(dks);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Cipher对象实际完成解密操作</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cipher&nbsp;cipher&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Cipher.getInstance(DES);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用密钥初始化Cipher对象</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cipher.init(Cipher.DECRYPT_MODE,&nbsp;securekey,&nbsp;sr);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cipher.doFinal(data);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br /><br /><br /></span></p></div><img src ="http://www.blogjava.net/tinguo002/aggbug/413610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-05-13 17:19 <a href="http://www.blogjava.net/tinguo002/archive/2014/05/13/413610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.lang.NoClassDefFoundError: Could not initialize class  的原因</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/24/412883.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 24 Apr 2014 06:22:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/24/412883.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412883.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/24/412883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412883.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412883.html</trackback:ping><description><![CDATA[原因1：编译出错误的class文件。<br />解决办法：通过myeclipse的 clean清除现有的class文件，重新编译。或者从以前的备份中找到此class文件替换。<br />原因2：引入的jar包冲突导致。<br />解决办法：baidu找一下，包冲突的事例。<img src ="http://www.blogjava.net/tinguo002/aggbug/412883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-24 14:22 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/24/412883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java生成uuid（转载）</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/16/412497.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Wed, 16 Apr 2014 01:07:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/16/412497.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412497.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/16/412497.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412497.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412497.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public&nbsp;class&nbsp;UniqId&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;char[...&nbsp;&nbsp;<a href='http://www.blogjava.net/tinguo002/archive/2014/04/16/412497.html'>阅读全文</a><img src ="http://www.blogjava.net/tinguo002/aggbug/412497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-16 09:07 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/16/412497.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Map、JavaBean、JSON的相互转换 </title><link>http://www.blogjava.net/tinguo002/archive/2014/04/12/412355.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Sat, 12 Apr 2014 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/12/412355.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412355.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/12/412355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412355.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->package&nbsp;com.suning.crawler.util;&nbsp;import&nbsp;java.lang.reflect.Method;&nbsp;import&nbsp;java...&nbsp;&nbsp;<a href='http://www.blogjava.net/tinguo002/archive/2014/04/12/412355.html'>阅读全文</a><img src ="http://www.blogjava.net/tinguo002/aggbug/412355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-12 17:24 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/12/412355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JQuery AJAX提交中文乱码的解决方案</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/11/412328.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Fri, 11 Apr 2014 11:35:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/11/412328.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412328.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/11/412328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412328.html</trackback:ping><description><![CDATA[解决办法1：<br />要解决这个中文乱码问题，就必须给AJAX异步提交指定显 示的charset！<br />jQuery(form).ajaxSubmit({&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;url: "ajax.aspx?a=memberlogin",&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;type: "post",&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;dataType: "json",&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: yellow">content</span><span style="background-color: yellow">Type: "application/x-www-form-urlencoded; charset=utf-8",&nbsp;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;success: showLoginResponse <br />}); <br />详细出处参考：<a href="http://www.jb51.net/article/24097.htm">http://www.jb51.net/article/24097.htm</a><br /><br /><br />解决办法2：<br />java代码中，将response.setCharacterEncoding("UTF-8")放在action方法的最前面。<br />详细出处参考：<a href="http://bbs.csdn.net/topics/360098992?page=1">http://bbs.csdn.net/topics/360098992?page=1</a><img src ="http://www.blogjava.net/tinguo002/aggbug/412328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-11 19:35 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/11/412328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java  FTP Linux系统下 文件上传下载</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/10/412256.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 10 Apr 2014 10:42:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/10/412256.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412256.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/10/412256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412256.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://www.blogjava.net/parable-myth/archive/2008/05/16/200879.htmlCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import&nbsp;java.io.Fil...&nbsp;&nbsp;<a href='http://www.blogjava.net/tinguo002/archive/2014/04/10/412256.html'>阅读全文</a><img src ="http://www.blogjava.net/tinguo002/aggbug/412256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-10 18:42 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/10/412256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sun.net.ftp异常 PORT 192,168,0,80,9,205: 550 Permission denied.</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/10/412224.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 10 Apr 2014 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/10/412224.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412224.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/10/412224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412224.html</trackback:ping><description><![CDATA[sun.net.ftp异常 PORT 192,168,0,80,9,205: 550 Permission denied.<br />
<p>我使用sun.net.ftp来连接linux的vsftp时，出现如下的异常（在windows下是没有的）</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>java.io.FileNotFoundException: PORT 192,168,0,80,9,205: 550 Permission denied.</p>
<p>&nbsp;</p>
<p><span style="white-space: pre"></span>at sun.net.ftp.FtpClient.readReply(FtpClient.java:236)</p>
<p><span style="white-space: pre"></span>at sun.net.ftp.FtpClient.issueCommand(FtpClient.java:193)</p>
<p><span style="white-space: pre"></span>at sun.net.ftp.FtpClient.openDataConnection(FtpClient.java:434)</p>
<p><span style="white-space: pre"></span>at sun.net.ftp.FtpClient.put(FtpClient.java:594)</p>
<p><span style="white-space: pre"></span>at org.lab24.util.FtpTool.processfile(FtpTool.java:193)</p>
<p><span style="white-space: pre"></span>at org.lab24.util.FtpTool.upload(FtpTool.java:116)</p>
<p><span style="white-space: pre"></span>at org.lab24.spider.Spider.run(Spider.java:55)</p>
<p><span style="white-space: pre"></span>at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)</p>
<p><span style="white-space: pre"></span>at java.lang.Thread.run(Thread.java:619)</p>
<p>exception e in ftp upload(): java.io.FileNotFoundException: PORT 192,168,0,80,9,205: 550 Permission denied.</p>
<p>&nbsp;</p>
<p>后来查过网上的解决方案，才知道：</p>
<p><span style="font-size: 14px; line-height: 23px">该类默认使用的是Port模式传输数据，但实际上Linux配的是Pasv模式，所以传不过去，修改办法：</span></p>
<p>&nbsp;</p><pre class="java" name="code">ftpclient.sendServer("quote PASV");</pre>设置一下传输模式就可以传了。 <img src ="http://www.blogjava.net/tinguo002/aggbug/412224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-10 14:19 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/10/412224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>避免HttpClient的”SSLPeerUnverifiedException: peer not authenticated”异常</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/09/412161.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Wed, 09 Apr 2014 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/09/412161.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/412161.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/09/412161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/412161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/412161.html</trackback:ping><description><![CDATA[<div style="font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; width: 98%; border-bottom: #cccccc 1px solid; word-break: break-all; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: #cccccc 1px solid; padding-right: 5px; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->/**解决办法**<br />* 1添加一个方法<br />* 2调用这个方法生成一个新的httpClient对象<br />**/<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.SecureRandom;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.cert.CertificateException;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.cert.X509Certificate;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.net.ssl.SSLContext;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.net.ssl.TrustManager;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.net.ssl.X509TrustManager;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.client.HttpClient;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.conn.ClientConnectionManager;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.conn.scheme.Scheme;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.conn.scheme.SchemeRegistry;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.conn.ssl.SSLSocketFactory;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.http.impl.client.DefaultHttpClient;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HttpUtils<br /><img onclick="this.style.display='none'; Codehighlighter1_597_2154_Open_Text.style.display='none'; Codehighlighter1_597_2154_Closed_Image.style.display='inline'; Codehighlighter1_597_2154_Closed_Text.style.display='inline';" id="Codehighlighter1_597_2154_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_597_2154_Closed_Text.style.display='none'; Codehighlighter1_597_2154_Open_Image.style.display='inline'; Codehighlighter1_597_2154_Open_Text.style.display='inline';" id="Codehighlighter1_597_2154_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_597_2154_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_597_2154_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;HttpClient&nbsp;httpClient;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;HttpUtils()<br /><img onclick="this.style.display='none'; Codehighlighter1_658_691_Open_Text.style.display='none'; Codehighlighter1_658_691_Closed_Image.style.display='inline'; Codehighlighter1_658_691_Closed_Text.style.display='inline';" id="Codehighlighter1_658_691_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_658_691_Closed_Text.style.display='none'; Codehighlighter1_658_691_Open_Image.style.display='inline'; Codehighlighter1_658_691_Open_Text.style.display='inline';" id="Codehighlighter1_658_691_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_658_691_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_658_691_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpClient&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;openConnection()<br /><img onclick="this.style.display='none'; Codehighlighter1_731_847_Open_Text.style.display='none'; Codehighlighter1_731_847_Closed_Image.style.display='inline'; Codehighlighter1_731_847_Closed_Text.style.display='inline';" id="Codehighlighter1_731_847_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_731_847_Closed_Text.style.display='none'; Codehighlighter1_731_847_Open_Image.style.display='inline'; Codehighlighter1_731_847_Open_Text.style.display='inline';" id="Codehighlighter1_731_847_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_731_847_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_731_847_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;httpClient&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultHttpClient();<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&nbsp;&nbsp;httpClient&nbsp;</span><span style="color: #000000; background-color: #ffff00">=</span><span style="color: #000000; background-color: #ffff00">&nbsp;getSecuredHttpClient(httpClient<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000; background-color: #ffff00">&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #000000">);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img onclick="this.style.display='none'; Codehighlighter1_859_1011_Open_Text.style.display='none'; Codehighlighter1_859_1011_Closed_Image.style.display='inline'; Codehighlighter1_859_1011_Closed_Text.style.display='inline';" id="Codehighlighter1_859_1011_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_859_1011_Closed_Text.style.display='none'; Codehighlighter1_859_1011_Open_Image.style.display='inline'; Codehighlighter1_859_1011_Open_Text.style.display='inline';" id="Codehighlighter1_859_1011_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_859_1011_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_859_1011_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;避免HttpClient的&#8221;SSLPeerUnverifiedException:&nbsp;peer&nbsp;not&nbsp;authenticated&#8221;异常<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;不用导入SSL证书<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;shipengzhi(shipengzhi@sogou-inc.com)<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img onclick="this.style.display='none'; Codehighlighter1_1091_2152_Open_Text.style.display='none'; Codehighlighter1_1091_2152_Closed_Image.style.display='inline'; Codehighlighter1_1091_2152_Closed_Text.style.display='inline';" id="Codehighlighter1_1091_2152_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1091_2152_Closed_Text.style.display='none'; Codehighlighter1_1091_2152_Open_Image.style.display='inline'; Codehighlighter1_1091_2152_Open_Text.style.display='inline';" id="Codehighlighter1_1091_2152_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;DefaultHttpClient&nbsp;getSecuredHttpClient(HttpClient&nbsp;httpClient)&nbsp;</span><span id="Codehighlighter1_1091_2152_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1091_2152_Open_Text"><span style="color: #000000">{<br /><img onclick="this.style.display='none'; Codehighlighter1_1160_1161_Open_Text.style.display='none'; Codehighlighter1_1160_1161_Closed_Image.style.display='inline'; Codehighlighter1_1160_1161_Closed_Text.style.display='inline';" id="Codehighlighter1_1160_1161_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1160_1161_Closed_Text.style.display='none'; Codehighlighter1_1160_1161_Open_Image.style.display='inline'; Codehighlighter1_1160_1161_Open_Text.style.display='inline';" id="Codehighlighter1_1160_1161_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;X509Certificate[]&nbsp;_AcceptedIssuers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;X509Certificate[]&nbsp;</span><span id="Codehighlighter1_1160_1161_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1160_1161_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">;<br /><img onclick="this.style.display='none'; Codehighlighter1_1170_2046_Open_Text.style.display='none'; Codehighlighter1_1170_2046_Closed_Image.style.display='inline'; Codehighlighter1_1170_2046_Closed_Text.style.display='inline';" id="Codehighlighter1_1170_2046_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1170_2046_Closed_Text.style.display='none'; Codehighlighter1_1170_2046_Open_Image.style.display='inline'; Codehighlighter1_1170_2046_Open_Text.style.display='inline';" id="Codehighlighter1_1170_2046_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_1170_2046_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1170_2046_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLContext&nbsp;ctx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SSLContext.getInstance(</span><span style="color: #000000">"</span><span style="color: #000000">TLS</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img onclick="this.style.display='none'; Codehighlighter1_1271_1646_Open_Text.style.display='none'; Codehighlighter1_1271_1646_Closed_Image.style.display='inline'; Codehighlighter1_1271_1646_Closed_Text.style.display='inline';" id="Codehighlighter1_1271_1646_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1271_1646_Closed_Text.style.display='none'; Codehighlighter1_1271_1646_Open_Image.style.display='inline'; Codehighlighter1_1271_1646_Open_Text.style.display='inline';" id="Codehighlighter1_1271_1646_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X509TrustManager&nbsp;tm&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;X509TrustManager()&nbsp;</span><span id="Codehighlighter1_1271_1646_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1271_1646_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img onclick="this.style.display='none'; Codehighlighter1_1337_1373_Open_Text.style.display='none'; Codehighlighter1_1337_1373_Closed_Image.style.display='inline'; Codehighlighter1_1337_1373_Closed_Text.style.display='inline';" id="Codehighlighter1_1337_1373_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1337_1373_Closed_Text.style.display='none'; Codehighlighter1_1337_1373_Open_Image.style.display='inline'; Codehighlighter1_1337_1373_Open_Text.style.display='inline';" id="Codehighlighter1_1337_1373_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;X509Certificate[]&nbsp;getAcceptedIssuers()&nbsp;</span><span id="Codehighlighter1_1337_1373_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1337_1373_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;_AcceptedIssuers;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;checkServerTrusted(X509Certificate[]&nbsp;chain,<br /><img onclick="this.style.display='none'; Codehighlighter1_1501_1507_Open_Text.style.display='none'; Codehighlighter1_1501_1507_Closed_Image.style.display='inline'; Codehighlighter1_1501_1507_Closed_Text.style.display='inline';" id="Codehighlighter1_1501_1507_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1501_1507_Closed_Text.style.display='none'; Codehighlighter1_1501_1507_Open_Image.style.display='inline'; Codehighlighter1_1501_1507_Open_Text.style.display='inline';" id="Codehighlighter1_1501_1507_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;authType)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;CertificateException&nbsp;</span><span id="Codehighlighter1_1501_1507_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1501_1507_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;checkClientTrusted(X509Certificate[]&nbsp;chain,<br /><img onclick="this.style.display='none'; Codehighlighter1_1635_1641_Open_Text.style.display='none'; Codehighlighter1_1635_1641_Closed_Image.style.display='inline'; Codehighlighter1_1635_1641_Closed_Text.style.display='inline';" id="Codehighlighter1_1635_1641_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1635_1641_Closed_Text.style.display='none'; Codehighlighter1_1635_1641_Open_Image.style.display='inline'; Codehighlighter1_1635_1641_Open_Text.style.display='inline';" id="Codehighlighter1_1635_1641_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;authType)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;CertificateException&nbsp;</span><span id="Codehighlighter1_1635_1641_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1635_1641_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">;<br /><img onclick="this.style.display='none'; Codehighlighter1_1686_1691_Open_Text.style.display='none'; Codehighlighter1_1686_1691_Closed_Image.style.display='inline'; Codehighlighter1_1686_1691_Closed_Text.style.display='inline';" id="Codehighlighter1_1686_1691_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_1686_1691_Closed_Text.style.display='none'; Codehighlighter1_1686_1691_Open_Image.style.display='inline'; Codehighlighter1_1686_1691_Open_Text.style.display='inline';" id="Codehighlighter1_1686_1691_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.init(</span><span style="color: #0000ff">null</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TrustManager[]&nbsp;</span><span id="Codehighlighter1_1686_1691_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1686_1691_Open_Text"><span style="color: #000000">{&nbsp;tm&nbsp;}</span></span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SecureRandom());<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLSocketFactory&nbsp;ssf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SSLSocketFactory(ctx,<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClientConnectionManager&nbsp;ccm&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;httpClient.getConnectionManager();<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SchemeRegistry&nbsp;sr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ccm.getSchemeRegistry();<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sr.register(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Scheme(</span><span style="color: #000000">"</span><span style="color: #000000">https</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">443</span><span style="color: #000000">,&nbsp;ssf));<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DefaultHttpClient(ccm,&nbsp;httpClient.getParams());<br /><img onclick="this.style.display='none'; Codehighlighter1_2068_2134_Open_Text.style.display='none'; Codehighlighter1_2068_2134_Closed_Image.style.display='inline'; Codehighlighter1_2068_2134_Closed_Text.style.display='inline';" id="Codehighlighter1_2068_2134_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_2068_2134_Closed_Text.style.display='none'; Codehighlighter1_2068_2134_Open_Image.style.display='inline'; Codehighlighter1_2068_2134_Open_Text.style.display='inline';" id="Codehighlighter1_2068_2134_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span id="Codehighlighter1_2068_2134_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2068_2134_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">=====:=====</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><img src ="http://www.blogjava.net/tinguo002/aggbug/412161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-09 17:34 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/09/412161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>string类型转为double  值变化了</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/04/411961.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Fri, 04 Apr 2014 06:39:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/04/411961.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/411961.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/04/411961.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/411961.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/411961.html</trackback:ping><description><![CDATA[<br /><a href="http://zhidao.baidu.com/link?url=NeIRa5raPCZw7sR2DR1hzNk8aewMuNdDCNJ83qRMMWWfXaPVct7rWqVNWZnfkQAroEzRvKn5XxK4rK1lWEl2">http://zhidao.baidu.com/link?url=NeIRa5raPCZw7sR2DR1hzNk8aewMuNdDCNJ83qRMMWWfXaPVct7rWqVNWZnfkQAroEzRvKn5XxK4rK1lWEl2</a>-_<br /><br />
<p>精度的问题！用基本类型的double类型进行运算可能会丢失精度。而且特别大的数又没法处理。所以如果用BigDecimal这个类问题就解决了。这个类在java.Math包下。它可以处理任意精度的数据。对于楼主出现的问题，我从新写了段代码，供楼主参考。但是主要是还得查看API！代码如下：</p>
<p>import&nbsp;<a class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=java.math&amp;fr=qb_search_exp&amp;ie=utf8&amp;eid_gfrom=151" rel="nofollow" target="_blank" log="pos:innerLink" data-word="0">java.math</a>.*;</p>
<p>public&nbsp;class&nbsp;oopp</p>
<p>{</p>
<p>&nbsp;public&nbsp;static&nbsp;void&nbsp;<img id="selectsearch-icon" class="selectsearch-hide" alt="搜索" src="http://img.baidu.com/img/iknow/qb/select-search.png" />main(String[]&nbsp;args)</p>
<p>&nbsp;{</p>
<p>&nbsp;&nbsp;String&nbsp;a="1467000000";</p>
<p>&nbsp;&nbsp;double&nbsp;aa=Double.parseDouble(a);</p>
<p>&nbsp;&nbsp;BigDecimal&nbsp;beichushu=new&nbsp;BigDecimal(aa);</p>
<p>&nbsp;&nbsp;BigDecimal&nbsp;chushu=new&nbsp;BigDecimal(100000000);</p>
<p>&nbsp;&nbsp;BigDecimal&nbsp;result=beichushu.divide(chushu,new&nbsp;MathContext(4));//MathConText(4)表示结果精确4位！</p>
<p>&nbsp;&nbsp;boolean&nbsp;isTrue=String.valueOf(result).equals("14.67");</p>
<p>&nbsp;&nbsp;System.out.println("1467000000除以100000000="+result);</p>
<p>&nbsp;&nbsp;System.out.println(result+"与14.67比较的结果是"+isTrue);</p>
<p>&nbsp;}</p>
<p>}</p><br /><a title="点击查看大图" class="ikqb_img_alink" href="http://h.hiphotos.baidu.com/zhidao/pic/item/4610b912c8fcc3ce7cfcf71c9245d688d43f20e4.jpg" rel="nofollow" target="_blank"><img class="ikqb_img" src="http://h.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=8613b804b051f819f1700b4cea8466d5/4610b912c8fcc3ce7cfcf71c9245d688d43f20e4.jpg" esrc="http://h.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=897bd1ab4aed2e73fcbc8e28b2318dbd/4610b912c8fcc3ce7cfcf71c9245d688d43f20e4.jpg"  alt="" /></a><br /><img src ="http://www.blogjava.net/tinguo002/aggbug/411961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-04 14:39 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/04/411961.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat启动时一闪而过，看不到错误信息</title><link>http://www.blogjava.net/tinguo002/archive/2014/04/04/411957.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Fri, 04 Apr 2014 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/04/04/411957.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/411957.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/04/04/411957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/411957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/411957.html</trackback:ping><description><![CDATA[<a href="http://blog.163.com/kangle0925@126/blog/static/277581982011926102830712/">http://blog.163.com/kangle0925@126/blog/static/277581982011926102830712/</a><br /><br />
<p>有时Tomcat的启动窗口一闪而过，根本就看不出启动过程中发生了什么错误。这中间的原因有好多种，最常见的解决办法就是使用run命令，打开startup.bat文件，找到下面这行：</p>
<p>call "%EXECUTABLE%" start %CMD_LINE_ARGS%</p>
<p>修改为：</p>
<p>call "%EXECUTABLE%"&nbsp;run %CMD_LINE_ARGS%</p>
<p>这样，Tomcat启动时就不会弹出新窗口，就可以从容不迫地观察这的启动错误了。</p>
<p>修改文件后：需要从DOS命令行窗口进入到%TOMCAT_HOME%\bin路径下，然后启动startup.bat文件。</p>
<p>&nbsp;</p>
<p>&nbsp;<img border="0" alt="Tomcat启动时一闪而过，看不多错误信息 - Sky - Sky的博客" src="http://img.ph.126.net/eQ1hdZ8XfZv-YUKmffhiLQ==/2378182078229099547.jpg" width="860" height="288" __1396591255491__="ev_9656896234" small="0" /></p><img src ="http://www.blogjava.net/tinguo002/aggbug/411957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-04-04 14:21 <a href="http://www.blogjava.net/tinguo002/archive/2014/04/04/411957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java日期</title><link>http://www.blogjava.net/tinguo002/archive/2014/03/18/411194.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Tue, 18 Mar 2014 13:01:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/03/18/411194.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/411194.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/03/18/411194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/411194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/411194.html</trackback:ping><description><![CDATA[<p><a href="http://blog.csdn.net/liwenfeng1022/article/details/6534176">http://blog.csdn.net/liwenfeng1022/article/details/6534176</a><br /><br />//字符串日期加1天<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; String sgrq = "20140101";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date d = formatter.parse(sgrq);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String qxrq = formatter.format(d.getTime() + (1 * 24 * 60 * 60 * 1000));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (ParseException e) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br />1.用<strong style="color: black; background-color: rgb(153,255,153)">java</strong>.util.Calender来实现</p>
<p>&nbsp;&nbsp; Calendar calendar=Calendar.getInstance();&nbsp;&nbsp; <br />&nbsp;&nbsp; calendar.setTime(new Date()); <br />&nbsp;&nbsp; System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期 <br />&nbsp;&nbsp; calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1&nbsp;&nbsp;<br />&nbsp;&nbsp; System.out.println(calendar.get(Calendar.DATE));//加1之后的日期Top <br />=============================================================================== </p>
<p>2.用<strong style="color: black; background-color: rgb(153,255,153)">java</strong>.text.SimpleDateFormat和<strong style="color: black; background-color: rgb(153,255,153)">java</strong>.util.Date来实现<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; Date d=new Date();&nbsp;&nbsp; <br />&nbsp;&nbsp; SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");&nbsp;&nbsp; <br />&nbsp;&nbsp; System.out.println("今天的日期："+df.format(d));&nbsp;&nbsp; <br />&nbsp;&nbsp; System.out.println("两天前的日期：" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));&nbsp;&nbsp;<br />&nbsp;&nbsp; System.out.println("三天后的日期：" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));</p>
<p>===============================================================================</p>
<p>GregorianCalendar gc=new GregorianCalendar(); <br />gc.setTime(new Date); <br />gc.add(field,value); <br />value为正则往后,为负则往前 <br />field取1加1年,取2加半年,取3加一季度,取4加一周 <br />取5加一天.... </p>
<p>===============================================================================</p>
<p>/*<br />*<strong style="color: black; background-color: rgb(153,255,153)">java</strong>中对日期的加减操作<br />*gc.add(1,-1)表示年份减一.<br />*gc.add(2,-1)表示月份减一.<br />*gc.add(3.-1)表示周减一.<br />*gc.add(5,-1)表示天减一.<br />*以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.<br />*GregorianCalendar类的add(int field,int amount)方法表示年月日加减.<br />*field参数表示年,月.日等.<br />*amount参数表示要加减的数量.<br />*<br />* UseDate.<strong style="color: black; background-color: rgb(153,255,153)">java</strong> 测试如下:<br />*/<br />package temp.util;</p>
<p>import <strong style="color: black; background-color: rgb(153,255,153)">java</strong>.util.Calendar;<br />import <strong style="color: black; background-color: rgb(153,255,153)">java</strong>.util.Date;<br />import <strong style="color: black; background-color: rgb(153,255,153)">java</strong>.util.GregorianCalendar;<br />import <strong style="color: black; background-color: rgb(153,255,153)">java</strong>.text.SimpleDateFormat;<br />public class UseDate {</p>
<p>Date d=new Date();<br />GregorianCalendar gc =new GregorianCalendar();<br />SimpleDateFormat sf&nbsp; =new SimpleDateFormat("yyyy-MM-dd");</p>
<p>public String getYears()<br />{<br />gc.setTime(d);<br />gc.add(1,+1);<br />gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));</p>
<p>return sf.format(gc.getTime());<br />}</p>
<p>public String getHalfYear()<br />{<br />gc.setTime(d);<br />gc.add(2,+6);<br />gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));</p>
<p>return sf.format(gc.getTime());<br />}<br />public String getQuarters()<br />{<br />gc.setTime(d);<br />gc.add(2,+3);<br />gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));</p>
<p>return sf.format(gc.getTime());<br />}</p>
<p>public String getLocalDate()<br />{<br />return sf.format(d);<br />}</p>
<p><br />public static&nbsp; void&nbsp; main(String[] args)<br />{<br />UseDate ud= new UseDate();<br />System.out.println(ud.getLocalDate());<br />System.out.println(ud.getYears());<br />System.out.println(ud.getHalfYear());<br />System.out.println(ud.getQuarters());<br />}</p>
<p>}<br />&nbsp;&nbsp;&nbsp;&nbsp;//当月第一天和最后一天</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat sf&nbsp; =new SimpleDateFormat("yyyyMMdd");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calendar a=Calendar.getInstance(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int MaxDate=a.get(Calendar.DATE); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("该月最大天数:"+MaxDate+","+sf.format(a.getTime())); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.set(Calendar.DATE, 1);//把日期设置为当月第一天&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("当月第一天:"+sf.format(a.getTime()));&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.roll(Calendar.DATE, -1);//日期回滚一天，也就是最后一天 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("当月最后一天:"+sf.format(a.getTime()));&nbsp;<br /><br /></p>
<p>4 ,</p>
<p>GregorianCalendar gc=new GregorianCalendar();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gc.setTime( new SimpleDateFormat("yyyyMM").parse("200901"));<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gc.add(2, -Integer.parseInt("7"));<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (ParseException e) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // TODO 自動生成された catch ブロック<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.printStackTrace();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(new SimpleDateFormat("yyyyMM").format(gc.getTime())); </p>
<p>运行结果：200806</p><img src ="http://www.blogjava.net/tinguo002/aggbug/411194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-03-18 21:01 <a href="http://www.blogjava.net/tinguo002/archive/2014/03/18/411194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA身份证验证</title><link>http://www.blogjava.net/tinguo002/archive/2014/02/27/410374.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 27 Feb 2014 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/02/27/410374.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/410374.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/02/27/410374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/410374.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/410374.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;IDCard&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;String&nbsp;_codeError;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">wi&nbsp;=2(n-1)(mod&nbsp;11)</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;<span style="color: #0000FF; ">int</span>[]&nbsp;wi&nbsp;=&nbsp;{7,&nbsp;9,&nbsp;10,&nbsp;5,&nbsp;8,&nbsp;4,&nbsp;2,&nbsp;1,&nbsp;6,&nbsp;3,&nbsp;7,&nbsp;9,&nbsp;10,&nbsp;5,&nbsp;8,&nbsp;4,&nbsp;2,&nbsp;1};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;verify&nbsp;digit</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;<span style="color: #0000FF; ">int</span>[]&nbsp;vi&nbsp;=&nbsp;{1,&nbsp;0,&nbsp;'X',&nbsp;9,&nbsp;8,&nbsp;7,&nbsp;6,&nbsp;5,&nbsp;4,&nbsp;3,&nbsp;2};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">int</span>[]&nbsp;ai&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;<span style="color: #0000FF; ">int</span>[18];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;String[]&nbsp;_areaCode={"11","12","13","14","15","21","22"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,"23","31","32","33","34","35","36","37","41","42","43","44"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,"45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;HashMap&lt;String,Integer&gt;&nbsp;dateMap;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;HashMap&lt;String,String&gt;&nbsp;areaCodeMap;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap=<span style="color: #0000FF; ">new</span>&nbsp;HashMap&lt;String,Integer&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("01",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("02",<span style="color: #0000FF; ">null</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("03",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("04",30);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("05",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("06",30);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("07",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("08",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("09",30);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("10",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("11",30);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dateMap.put("12",31);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;areaCodeMap=<span style="color: #0000FF; ">new</span>&nbsp;HashMap&lt;String,String&gt;();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(String&nbsp;code:_areaCode){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;areaCodeMap.put(code,<span style="color: #0000FF; ">null</span>);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份证位数,15位和18位身份证</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;verifyLength(String&nbsp;code){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;length=code.length();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(length==15&nbsp;||&nbsp;length==18){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号不是15位和18位的";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">判断地区码</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;verifyAreaCode(String&nbsp;code){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;areaCode=code.substring(0,2);<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element&nbsp;child=&nbsp;&nbsp;_areaCodeElement.getChild("_"+areaCode);</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(areaCodeMap.containsKey(areaCode)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号的地区码(1-2位)["+areaCode+"]不符合中国行政区划分代码规定(GB/T2260-1999)";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">判断月份和日期</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;verifyBirthdayCode(String&nbsp;code){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证月份</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;month=code.substring(10,12);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;isEighteenCode=(18==code.length());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!dateMap.containsKey(month)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号"+(isEighteenCode?"(11-12位)":"(9-10位)")+"不存在["+month+"]月份,不符合要求(GB/T7408)";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证日期</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;dayCode=code.substring(12,14);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;day=dateMap.get(month);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;yearCode=code.substring(6,10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;year=Integer.valueOf(yearCode);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">非2月的情况</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(day!=<span style="color: #0000FF; ">null</span>){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(Integer.valueOf(dayCode)&gt;day&nbsp;||&nbsp;Integer.valueOf(dayCode)&lt;1){<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;_codeError="错误：输入的身份证号"+(isEighteenCode?"(13-14位)":"(11-13位)")+"["+dayCode+"]号不符合小月1-30天大月1-31天的规定(GB/T7408)";<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;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">2月的情况</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">闰月的情况</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>((year%4==0&amp;&amp;year%100!=0)||(year%400==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;&nbsp;<span style="color: #0000FF; ">if</span>(Integer.valueOf(dayCode)&gt;29&nbsp;||&nbsp;Integer.valueOf(dayCode)&lt;1){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号"+(isEighteenCode?"(13-14位)":"(11-13位)")+"["+dayCode+"]号在"+year+"闰年的情况下未符合1-29号的规定(GB/T7408)";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<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;}<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">非闰月的情况</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>{<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;<span style="color: #0000FF; ">if</span>&nbsp;(Integer.valueOf(dayCode)&nbsp;&gt;&nbsp;28&nbsp;||&nbsp;Integer.valueOf(dayCode)&nbsp;&lt;&nbsp;1)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号"+(isEighteenCode?"(13-14位)":"(11-13位)")+"["+dayCode+"]号在"+year+"平年的情况下未符合1-28号的规定(GB/T7408)";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<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;}<br />&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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份除了最后位其他的是否包含字母</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;containsAllNumber(String&nbsp;code)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str="";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(code.length()==15){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str=code.substring(0,15);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(code.length()==18){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str=code.substring(0,17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>[]&nbsp;ch&nbsp;=&nbsp;str.toCharArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;ch.length;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!&nbsp;(ch[i]&nbsp;&gt;=&nbsp;'0'&nbsp;&amp;&amp;&nbsp;ch[i]&nbsp;&lt;=&nbsp;'9'))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号第"+(i+1)+"位包含字母";<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;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getCodeError(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;_codeError;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份证</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;verify(String&nbsp;idcard)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份证位数,15位和18位身份证</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!verifyLength(idcard)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份除了最后位其他的是否包含字母</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!containsAllNumber(idcard)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">如果是15位的就转成18位的身份证</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;eifhteencard="";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(idcard.length()&nbsp;==&nbsp;15)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eifhteencard&nbsp;=&nbsp;uptoeighteen(idcard);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eifhteencard=idcard;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证身份证的地区码</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!verifyAreaCode(eifhteencard)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">判断月份和日期</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!verifyBirthdayCode(eifhteencard)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证18位校验码,校验码采用ISO&nbsp;7064：1983，MOD&nbsp;11-2&nbsp;校验码系统</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!verifyMOD(eifhteencard)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">验证18位校验码,校验码采用ISO&nbsp;7064：1983，MOD&nbsp;11-2&nbsp;校验码系统</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">boolean</span>&nbsp;verifyMOD(String&nbsp;code){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;verify&nbsp;=&nbsp;code.substring(17,&nbsp;18);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>("x".equals(verify)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code=code.replaceAll("x","X");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verify="X";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;verifyIndex=getVerify(code);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(verify.equals(verifyIndex))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;x=17;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(code.length()==15){<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=14;<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_codeError="错误：输入的身份证号最末尾的数字验证码错误";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">获得校验位</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;getVerify(String&nbsp;eightcardid)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;remaining&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(eightcardid.length()&nbsp;==&nbsp;18)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eightcardid&nbsp;=&nbsp;eightcardid.substring(0,&nbsp;17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(eightcardid.length()&nbsp;==&nbsp;17)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;sum&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;17;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;k&nbsp;=&nbsp;eightcardid.substring(i,&nbsp;i&nbsp;+&nbsp;1);<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;ai[i]&nbsp;=&nbsp;Integer.parseInt(k);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;17;&nbsp;i++)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;=&nbsp;sum&nbsp;+&nbsp;wi[i]&nbsp;*&nbsp;ai[i];<br />&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;remaining&nbsp;=&nbsp;sum&nbsp;%&nbsp;11;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;remaining&nbsp;==&nbsp;2&nbsp;?&nbsp;"X"&nbsp;:&nbsp;String.valueOf(vi[remaining]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">15位转18位身份证</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;String&nbsp;uptoeighteen(String&nbsp;fifteencardid)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;eightcardid&nbsp;=&nbsp;fifteencardid.substring(0,&nbsp;6);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eightcardid&nbsp;=&nbsp;eightcardid&nbsp;+&nbsp;"19";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eightcardid&nbsp;=&nbsp;eightcardid&nbsp;+&nbsp;fifteencardid.substring(6,&nbsp;15);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eightcardid&nbsp;=&nbsp;eightcardid&nbsp;+&nbsp;getVerify(eightcardid);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;eightcardid;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br /><br />调&nbsp;用&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;IDCard().verify(身份证id);<br /><div>转载：http://www.oschina.net/code/snippet_249203_24013</div></div><img src ="http://www.blogjava.net/tinguo002/aggbug/410374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-02-27 10:45 <a href="http://www.blogjava.net/tinguo002/archive/2014/02/27/410374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java获取路径</title><link>http://www.blogjava.net/tinguo002/archive/2014/02/24/410231.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 24 Feb 2014 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2014/02/24/410231.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/410231.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2014/02/24/410231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/410231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/410231.html</trackback:ping><description><![CDATA[String catalinaHome = new File("").getAbsolutePath(); <br /><br /><br />getAbsolutePath() 得到<a class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84&amp;fr=qb_search_exp&amp;ie=utf8" rel="nofollow" target="_blank" log="pos:innerLink" data-word="1">绝对路径</a>、全路径。<br />getpath 得到缩写的路径，根据当前目录位置可以缩写路径。得到<a class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84&amp;fr=qb_search_exp&amp;ie=utf8" rel="nofollow" target="_blank" log="pos:innerLink" data-word="0">相对路径</a>。<br />getCanonicalPath() 得到标准路径，将统一平台间的路径写法差异。
<div style="font-size: 13px; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; width: 98%; border-bottom: #cccccc 1px solid; word-break: break-all; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: #cccccc 1px solid; padding-right: 5px; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;util;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.File;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_67_674_Open_Text.style.display='none'; Codehighlighter1_67_674_Closed_Image.style.display='inline'; Codehighlighter1_67_674_Closed_Text.style.display='inline';" id="Codehighlighter1_67_674_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_67_674_Closed_Text.style.display='none'; Codehighlighter1_67_674_Open_Image.style.display='inline'; Codehighlighter1_67_674_Open_Text.style.display='inline';" id="Codehighlighter1_67_674_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CurrentDirectory&nbsp;</span><span id="Codehighlighter1_67_674_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_67_674_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img onclick="this.style.display='none'; Codehighlighter1_107_135_Open_Text.style.display='none'; Codehighlighter1_107_135_Closed_Image.style.display='inline'; Codehighlighter1_107_135_Closed_Text.style.display='inline';" id="Codehighlighter1_107_135_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_107_135_Closed_Text.style.display='none'; Codehighlighter1_107_135_Open_Image.style.display='inline'; Codehighlighter1_107_135_Open_Text.style.display='inline';" id="Codehighlighter1_107_135_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;print(Object&nbsp;o)&nbsp;</span><span id="Codehighlighter1_107_135_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_107_135_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(o);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br /><img onclick="this.style.display='none'; Codehighlighter1_195_670_Open_Text.style.display='none'; Codehighlighter1_195_670_Closed_Image.style.display='inline'; Codehighlighter1_195_670_Closed_Text.style.display='inline';" id="Codehighlighter1_195_670_Open_Image" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img onclick="this.style.display='none'; Codehighlighter1_195_670_Closed_Text.style.display='none'; Codehighlighter1_195_670_Open_Image.style.display='inline'; Codehighlighter1_195_670_Open_Text.style.display='inline';" id="Codehighlighter1_195_670_Closed_Image" style="display: none" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_195_670_Closed_Text" style="border-top: #808080 1px solid; border-right: #808080 1px solid; border-bottom: #808080 1px solid; border-left: #808080 1px solid; display: none; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_195_670_Open_Text"><span style="color: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(Thread.currentThread().getContextClassLoader().getResource(</span><span style="color: #000000">""</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(CurrentDirectory.</span><span style="color: #0000ff">class</span><span style="color: #000000">.getClassLoader().getResource(</span><span style="color: #000000">""</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">print(this.getClass().getResource("/").toString().replace("file:/",&nbsp;""));&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在非静态方法中可以使用</span><span style="color: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(ClassLoader.getSystemResource(</span><span style="color: #000000">""</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(CurrentDirectory.</span><span style="color: #0000ff">class</span><span style="color: #000000">.getResource(</span><span style="color: #000000">""</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(CurrentDirectory.</span><span style="color: #0000ff">class</span><span style="color: #000000">.getResource(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(</span><span style="color: #000000">""</span><span style="color: #000000">).getAbsolutePath());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(System.getProperty(</span><span style="color: #000000">"</span><span style="color: #000000">user.dir</span><span style="color: #000000">"</span><span style="color: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div><br /><img src ="http://www.blogjava.net/tinguo002/aggbug/410231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2014-02-24 10:43 <a href="http://www.blogjava.net/tinguo002/archive/2014/02/24/410231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>树形全部展示代码</title><link>http://www.blogjava.net/tinguo002/archive/2013/12/30/408218.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Mon, 30 Dec 2013 11:16:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2013/12/30/408218.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/408218.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2013/12/30/408218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/408218.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/408218.html</trackback:ping><description><![CDATA[<p>jsp：代码<br /><br />&lt;script type="text/javascript"&gt;</p><p>&nbsp;&nbsp;$(function(){<br />&nbsp;&nbsp;&nbsp;//alert('${tip}');<br />&nbsp;&nbsp;&nbsp;if('${tip}'!=''){<br />&nbsp;&nbsp;&nbsp;&nbsp;$('#tip').css('display','inline-block');<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;});<br />&nbsp;<br />&nbsp;&nbsp;var zTreeObj;<br />&nbsp;&nbsp;var allSelectedId="";<br />&nbsp;&nbsp;var allSelectedName = "";<br />&nbsp;&nbsp;var zNodes = ${data};<br />&nbsp;&nbsp;var setting = {<br />&nbsp;&nbsp;&nbsp;isSimpleData: true,<br />&nbsp;&nbsp;&nbsp;treeNodeKey: "id",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置节点唯一标识属性名称<br />&nbsp;&nbsp;&nbsp;treeNodeParentKey: "pId",&nbsp; //设置节点的父节点唯一标识属性名称<br />&nbsp;&nbsp;&nbsp;nameCol: "name",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置 zTree 显示节点名称的属性名称,此处默认为Name<br />&nbsp;&nbsp;&nbsp;showLine: true,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在树型中是否显示线条样式<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;check: {<br />&nbsp;&nbsp;&nbsp;&nbsp;enable: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;chkStyle: "&lt;%=type%&gt;",<br />&nbsp;&nbsp;&nbsp;&nbsp;chkboxType: &lt;%=chkboxType%&gt;,<br />&nbsp;&nbsp;&nbsp;&nbsp;radioType: "all"<br />&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;callback: {<br />&nbsp;&nbsp;&nbsp;&nbsp;onClick: onClick<br />&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;data: {<br />&nbsp;&nbsp;&nbsp;&nbsp;simpleData: {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable: true<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;$(function(){<br />&nbsp;&nbsp;&nbsp;$("#btnClose").bind("click",doClose);<br />&nbsp;&nbsp;&nbsp;$("#btnConfirm").bind("click",doConfirm);<br />&nbsp;&nbsp;&nbsp;zTreeObj = $("#tree").zTree(setting,zNodes);<br />&nbsp;&nbsp;});<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;//关闭窗口<br />&nbsp;&nbsp;function doClose(){<br />&nbsp;&nbsp;&nbsp;window.close();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;function doConfirm(){<br />&nbsp;&nbsp;&nbsp;var checkedNodes = zTreeObj.getCheckedNodes(true);<br />&nbsp;&nbsp;&nbsp;alert(checkedNodes);<br />&nbsp;&nbsp;&nbsp;for (i=0;i&lt;checkedNodes.length;i++) {<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;var treeNode = checkedNodes[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;alert(treeNode.id);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!treeNode.open){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allSelectedId += (allSelectedId == "" ? "" : ",") + treeNode.id;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allSelectedName += (allSelectedName == "" ? "" : ",") + treeNode.name;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;$('#hiddenId').val(allSelectedId); <br />&nbsp;&nbsp;&nbsp;$('#hiddenName').val(allSelectedName);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;function showMenu() {<br />&nbsp;&nbsp;&nbsp;var deptname = $("#deptname");<br />&nbsp;&nbsp;&nbsp;var offset = deptname.offset();<br />&nbsp;&nbsp;&nbsp;$("#menu").width(deptname.width())<br />&nbsp;&nbsp;&nbsp;.css({left:offset.left + "px", top:offset.top + deptname.outerHeight() + "px"})<br />&nbsp;&nbsp;&nbsp;.slideDown("fast");<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;function hideMenu() {<br />&nbsp;&nbsp;&nbsp;$("#menu").fadeOut("fast");<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;function onClick(e, treeId, treeNode) {<br />&nbsp;&nbsp;&nbsp;alert(treeId);<br />&nbsp;&nbsp;&nbsp;if(treeNode.checked){<br />&nbsp;&nbsp;&nbsp;&nbsp;hideMenu();<br />&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;zTreeObj.checkNode(treeNode, true, null, true);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return false;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;function onCheck(e, treeId, treeNode){<br />&nbsp;&nbsp;&nbsp;alert(treeNode.id);<br />&nbsp;&nbsp;&nbsp;allSelectedId += (allSelectedId == "" ? "" : ",") + treeNode.pId+"|"+treeNode.id+"|"+treeNode.name;<br />&nbsp;&nbsp;}<br />&nbsp;&lt;/script&gt;<br /><br />java代码：<br /></p>public class CameraTreeAPI {<br />&nbsp;private static Logger log = Logger.getLogger(CameraTreeAPI.class);<br />&nbsp;<br />&nbsp;/**<br />&nbsp; * <br />&nbsp; * 功能说明:获取整个ztree摄像头树<br />&nbsp; * @return&nbsp; 满足ztree要求的json数据<br />&nbsp; * String<br />&nbsp; * @author chh<br />&nbsp; * @Jun 14, 2012<br />&nbsp; */<br />&nbsp;public&nbsp; String getZTree(String systemUnid,String selectUnid){<br />&nbsp;&nbsp;selectUnid = ","+StrUtil.formatNull(selectUnid)+",";<br />&nbsp;&nbsp;JSONArray array = new JSONArray();<br />&nbsp;&nbsp;try{<br />&nbsp;&nbsp;&nbsp;List&lt;BusinessCamera&gt; list = new BusinessCameraManager().doFindBySystemUnid(systemUnid);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;JSONObject top = new JSONObject();<br />&nbsp;&nbsp;&nbsp;top.put("id","0");<br />&nbsp;&nbsp;&nbsp;top.put("name","摄像头列表");<br />&nbsp;&nbsp;&nbsp;top.put("open",true);<br />&nbsp;&nbsp;&nbsp;array.add(top);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;if(list!=null &amp;&amp; list.size()&gt;0){&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(Object object : list){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BusinessCamera camera = (BusinessCamera)object;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JSONObject json = new JSONObject();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put("id",camera.getUnid());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put("name",camera.getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put("pId",camera.getPunid());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put("checked", selectUnid.indexOf(camera.getUnid()) &gt;= 0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(hasChildren(list,camera)){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;json.put("open",true);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array.add(json);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}catch(Exception e){<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;&nbsp;log.error(e.getMessage(),e);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return array.toString();<br />&nbsp;}<br />&nbsp;<br />&nbsp;public boolean hasChildren(List&lt;BusinessCamera&gt; allData,BusinessCamera camera){<br />&nbsp;&nbsp;if(allData == null || allData.isEmpty() || camera == null){<br />&nbsp;&nbsp;&nbsp;return false;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;for(BusinessCamera unit : allData){<br />&nbsp;&nbsp;&nbsp;if(unit.getUnid().equalsIgnoreCase(camera.getUnid())){<br />&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;if(camera.getUnid().equalsIgnoreCase(unit.getPunid())){<br />&nbsp;&nbsp;&nbsp;&nbsp;return true;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;<br />}<p><br /></p><img src ="http://www.blogjava.net/tinguo002/aggbug/408218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2013-12-30 19:16 <a href="http://www.blogjava.net/tinguo002/archive/2013/12/30/408218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>耦合度与设计模式 </title><link>http://www.blogjava.net/tinguo002/archive/2013/10/09/404774.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Wed, 09 Oct 2013 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2013/10/09/404774.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/404774.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2013/10/09/404774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/404774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/404774.html</trackback:ping><description><![CDATA[
 
原文：<a href="http://socket.blog.163.com/blog/static/209873004201096210555/">http://socket.blog.163.com/blog/static/209873004201096210555/</a><br /><br />高内聚，低耦合(High Cohesion、Low Coupling) <br />是一句近乎于&#8220;为实现四个现代化而努力&#8221;式的口号，耳熟并不一定能详。这个口号是在软件工程里第一次碰到的，它的定义估计是计算专业术语里最欠扁的定义，内聚：一个模块内各个元素彼此结合的紧密程序。耦合：一个软件结构内不同模块之间互连程序的度量。这两个定义，相当地&#8220;形而上学&#8221;&#8220;不知所云&#8221;。这是软件工程中判断设计好坏的标准，主要是面向对象设计，主要是看类的内聚性是否高，偶合度是否低。为什么要高内聚，使模块之间的关系越紧密出错就赵少，越紧密运行效率越高！低耦合，就是说，子程序之间的关系越简单，越容易扩展和维护，越复杂就会产生出更多的意想不到的错误！不利于维护。<br /><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />程序员天生都是内聚的高手，违反高内聚的反而是那些有一定水平的程序员，可能是误用了设计模式，可能是考虑问题过分全面，把一个功能单一的类分割成多个类。这里重点说低耦合，耦合就是类之间的互相调用关系，如果耦合很强，互相牵扯调用很多，那么会牵一发而动全身，不利于维护和扩展。什么方法、数据、不加分析地往一个类里整，甚至时一个类的所有数据成员设成public，方便在其它类里直接修改数据。生活中很多&#8220;低耦合&#8221;的例子，如床与床单，如果是紧耦合的话，换床单时，也要换床。再如桌子与抽屉。</p><br /><p><img alt="耦合度与设计模式 - share39 - 互联的天空" src="http://img.bimg.126.net/photo/VKszXePgZ7CR5rdBpvvzZQ==/2542000514690739979.jpg" width="311" height="290" __1381281136000__="ev_5815713062" small="0" /></p><br /><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />图中的上半部分中，把一个软件模块抽象成线条，软件模块互相依赖，这是一种面向过程的开发方式，如果软件是不改变的，那么这种高耦合度的结构也无可厚非，有时象底层软件如操作系统等，一切以执行效率优先，而且需求并不改变频繁的情况下，是适用的。但在实际开发过程中，软件需求的变化是导致这种模式被否定的真正原因。一旦有一个模块改变，那么需要改动到其它好几个模块，而且更要命的时，被影响的模块又会影响其它模块，或者干脆又把影响力传递给当初最先改动的模块。</p><br /><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />下图中的模块结构通过梳理，使他们依附于一条粗线条，它是主逻辑模块，是相对稳定的高层的、抽象的模块。而其它通过一个小空心圆点（表示接口）与粗线条进行连接的小短线条代表次模块，它被分成两个部分，接口和实现接口的子类对象，它们通过接口与主逻辑模块形成依赖。相对来说，次模块变化较快，而主模块变化较慢。刚才提到的生活例子中，床相对于床单来说是主要的，核心的，成本较高的，它的使用年限是10年，而床单使用年限是2年，就是说床的模块变化速度慢于床单的变化速度，如果床2个月变一次，那么逻辑结构就混乱了。床为床单提供了一个尺寸接口，床单只要符合这个接口，就可以组合使用。那么这个接口就必须是相对稳定的。</p><br /><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />设计模式做为软件开发过程中一种创造性的总结思维，使软件开发人员，在开发软件产品时，有了更加明确的软件解耦的思路，设计模式来源于生活，却指导于软件。事实上，短期来看，要求低耦合并没有很明显的好处，因为利用设计模式来解决问题是需要软件开发的智力和时间成本的。况且引入了误用设计模式的风险，所以短期内使用设计模式来解耦反而会影响系统的开发进度。低耦合的好处是长期回报的，体现在系统持续发展的过程中，系统具有更好的重用性，维护性，扩展性，持续的支持业务的发展，而不会成为业务发展的障碍。</p><img src ="http://www.blogjava.net/tinguo002/aggbug/404774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2013-10-09 09:16 <a href="http://www.blogjava.net/tinguo002/archive/2013/10/09/404774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ArrayList的toArray(转)</title><link>http://www.blogjava.net/tinguo002/archive/2013/07/04/401205.html</link><dc:creator>一堣而安</dc:creator><author>一堣而安</author><pubDate>Thu, 04 Jul 2013 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/tinguo002/archive/2013/07/04/401205.html</guid><wfw:comment>http://www.blogjava.net/tinguo002/comments/401205.html</wfw:comment><comments>http://www.blogjava.net/tinguo002/archive/2013/07/04/401205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tinguo002/comments/commentRss/401205.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tinguo002/services/trackbacks/401205.html</trackback:ping><description><![CDATA[<a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html"><br />http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html</a><div class="clear"></div><div class="postBody"><div id="cnblogs_post_body"><p>ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法：</p><p>1.list.toArray();</p><p>2.list.toArray(T[]&nbsp; a);</p><p>对于第一个重载方法，是将list直接转为Object[] 数组；</p><p>第二种方法是将list转化为你所需要类型的数组，当然我们用的时候会转化为与list内容相同的类型。</p><p> </p><p>不明真像的同学喜欢用第一个，是这样写：</p><div><div id="highlighter_207423" class="syntaxhighlighter  java ie"><div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html#">?</a></span></div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java plain">ArrayList&lt;String&gt; list=</code><code class="java keyword">new</code> <code class="java plain">ArrayList&lt;String&gt;();</code></div><div class="line number2 index1 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java keyword">for</code> <code class="java plain">(</code><code class="java keyword">int</code> <code class="java plain">i = </code><code class="java value">0</code><code class="java plain">; i &lt; </code><code class="java value">10</code><code class="java plain">; i++) {</code></div><div class="line number3 index2 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">list.add(</code><code class="java string">""</code><code class="java plain">+i);</code></div><div class="line number4 index3 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">}</code></div><div class="line number5 index4 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code> </div><div class="line number6 index5 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">String[] array= (String[]) list.toArray();</code></div><div class="line number7 index6 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code> </div></div></td></tr></tbody></table></div></div><p> </p><p>结果一运行，报错：</p><p>Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;</p><p> </p><p>原因一看就知道了，不能将Object[] 转化为String[].转化的话只能是取出每一个元素再转化，像这样：</p><div><div id="highlighter_331885" class="syntaxhighlighter  java ie"><div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html#">?</a></span></div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java plain">Object[] arr = list.toArray();</code></div><div class="line number2 index1 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java keyword">for</code> <code class="java plain">(</code><code class="java keyword">int</code> <code class="java plain">i = </code><code class="java value">0</code><code class="java plain">; i &lt; arr.length; i++) {</code></div><div class="line number3 index2 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">String e = (String) arr[i];</code></div><div class="line number4 index3 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">System.out.println(e);</code></div><div class="line number5 index4 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">}</code></div></div></td></tr></tbody></table></div></div><p>所以第一个重构方法就不是那么好使了。</p><p>实际上，将list世界转化为array的时候，第二种重构方法更方便，用法如下：</p><p> </p><div><div id="highlighter_93186" class="syntaxhighlighter  java ie   "><div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html#">?</a></span></div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java plain">String[] array =</code><code class="java keyword">new</code> <code class="java plain">String[list.size()];</code></div><div class="line number2 index1 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code class="java plain">list.toArray(array);&lt;br&gt;&lt;br&gt;另附，两个重构方法的源码：</code></div></div></td></tr></tbody></table></div></div><p>1.<br />public Object[] toArray(); {<br />Object[] result = new Object[size];<br />System.arraycopy(elementData, 0, result, 0, size);;<br />return result;<br />}</p><p> </p><p>2.</p><p>public Object[] toArray(Object a[]); {<br />if (a.length &lt; size);<br />a = (Object[]);java.lang.reflect.Array.newInstance(<br />a.getClass();.getComponentType();, size);;<br />System.arraycopy(elementData, 0, a, 0, size);;</p><p>if (a.length &gt; size);<br />a[size] = null;</p><p>return a;<br />}</p><div><div id="highlighter_526480" class="syntaxhighlighter  java ie"><div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html#">?</a></span></div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java plain">&lt;br&gt;&lt;br&gt;</code></div></div></td></tr></tbody></table></div></div><div><div id="highlighter_657624" class="syntaxhighlighter  java ie"><div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.cnblogs.com/ihou/archive/2012/05/10/2494578.html#">?</a></span></div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java plain">&lt;br&gt;</code></div><div class="line number2 index1 alt1"><code class="java spaces">&nbsp;&nbsp; </code></div></div></td></tr></tbody></table></div></div></div></div><img src ="http://www.blogjava.net/tinguo002/aggbug/401205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tinguo002/" target="_blank">一堣而安</a> 2013-07-04 11:52 <a href="http://www.blogjava.net/tinguo002/archive/2013/07/04/401205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>