﻿<?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-asdtiang-java-groovy-grails-随笔分类-JAVA</title><link>http://www.blogjava.net/asdtiang/category/43298.html</link><description>asdtiang-java-groovy-grails study</description><language>zh-cn</language><lastBuildDate>Thu, 05 May 2011 08:59:51 GMT</lastBuildDate><pubDate>Thu, 05 May 2011 08:59:51 GMT</pubDate><ttl>60</ttl><item><title>java js html编码与解码问题</title><link>http://www.blogjava.net/asdtiang/archive/2011/05/05/349510.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Thu, 05 May 2011 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2011/05/05/349510.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/349510.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2011/05/05/349510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/349510.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/349510.html</trackback:ping><description><![CDATA[js中编码与解码：<br />
网上转的：http://www.cnblogs.com/hubcarl/archive/2009/04/11/1433707.html<br />
<p>escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法<br />
escape() 方法</p>
<p>escape方法以Unicode格式返回一个包含传入参数内容的string类型的值。 Escape方法会将传入参数中所有的空格、标点符号、重音字符以及其它任何非ASCII字符替换为%xx的编码形式，其中xx与其所表示的字符的16进制数表示形式相同。如空格字符的16进制表示形式为0x20，则此时xx应为20，即escape(&#8216; &#8217;) 返回&#8220;%20&#8221;。</p>
<p>escape和unescape方法能够帮助你编码和解码字符串。escape方法对于ISO Latin字符集中的字符组成的参数，返回其16进制编码。相对应的，unescape方法则能将16进制编码形式的参数转化成为其ASCII码形式。</p>
<p>encodeURI()方法</p>
<p>encodeURI方法返回一个经过编码的URI。如果将encodeURI方法的编码结果传递给decodeURI方法作参数，则能得到原始的未编码的字符串。需要注意到是encodeURI方法不编码如下字符":", "/", ";", "?"。如果想要编码这些字符，请使用encodeURIComponent方法。通过将每个属于特定的字符集合的字符替换为一个、两个或者三个（为什么是&#8220;一个、两个或者三个&#8221;本人也没有搞懂，望高人赐教）使用UTF-8编码来表示这个字符的escape序列来编码一个URI。如 ~!@#$%^&amp;*(){}[]=:/,;?+\''"\\ 将被替换为 ~!@#$%25%5E&amp;*()%7B%7D%5B%5D=:/,;?+''%22%5C</p>
<p>encodeURIComponent()方法</p>
<p>encodeURIComponent方法返回一个编码过的URI。如果将encodeURIComponent方法的编码结果传递给encodeURIComponent方法作参数，则能得到原始的未编码的字符串。因为encodeURIComponent方法会编码所有的字符，所以如果待编码的字符串是用来表示一个路径（如/dir1/dir2/index.htm）时，就一定要小心使用了。&#8216;/&#8217;符号会被其编码之后，将不再是一个有效的路径标识符，所以不能被web服务器正确地识别。当字符串包含一个单独的URI component(指?后面的请求参数)的时候，请使用此方法。通过将每个属于特定的字符集合的字符替换为一个、两个或者三个（为什么是&#8220;一个、两个或者三个&#8221;本人也没有搞懂，望高人赐教）使用UTF-8编码来表示这个字符的escape序列来编码一个URIComponent。</p>
<p>有什么区别？何时使用？<br />
&nbsp; <br />
escape方法并不编码字符+。而我们知道，在用户提交的表单字段中，如果有空格，则会被转化为+字符，而服务器解析的时候则会认为+号代表空格。由于这个缺陷，escape方法并不能正确地处理所有的非ASCII字符，你应当尽量避免使用escape方法，取而代之，你最好选择encodeURIComponent()方法。<br />
escape()不编码的字符：@*/+</p>
<p>相对于使用escape方法，使用encodeURI方法会显得更专业一些。当你需要编码一整个URI的时候，你可以使用此方法，因为URI中的合法字符都不会被编码转换。需要注意到是字符&#8217;也是URI中的合法字符，所以也不会被编码转换。<br />
encodeURI() 不编码的字符： ~!@#$&amp;*()=:/,;?+''</p>
<p>encodeURIComponent方法在编码单个URIComponent（指请求参数）应当是最常用的。需要注意到是字符&#8217;也是URI中的合法字符，所以也不会被编码转换。<br />
encodeURIComponent()不编码的字符： ~!*()''<br />
<br />
下面是自己写的<br />
再看下jdk文档里的编码和解码：<br />
<br />
</p>
<dl>
<dt>
<pre>public class <strong>URLEncoder</strong><dt>extends <a title="java.lang 中的类" href="mk:@MSITStore:D:\API文档\java\JDK_API_1_6_zh_CN.CHM::/java/lang/Object.html">Object</a></dt></pre>
</dt></dl>
<pre></pre>
<p>HTML 格式编码的实用工具类。该类包含了将 String 转换为 <code>application/x-www-form-urlencoded</code> MIME 格式的静态方法。有关 HTML 格式编码的更多信息，请参阅 HTML <a href="http://www.w3.org/TR/html4/">规范</a>。
<p>对 String 编码时，使用以下规则：
<p>
<ul>
    <li>字母数字字符 "<code>a</code>" 到 "<code>z</code>"、"<code>A</code>" 到 "<code>Z</code>" 和 "<code>0</code>" 到 "<code>9</code>" 保持不变。
    <li>特殊字符 "<code>.</code>"、"<code>-</code>"、"<code>*</code>" 和 "<code>_</code>" 保持不变。
    <li>空格字符 "<code>&nbsp;</code>" 转换为一个加号 "<code>+</code>"。
    <li>所有其他字符都是不安全的，因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 "<code>%<em>xy</em></code>" 表示，其中 <em>xy</em> 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是，出于兼容性考虑，如果未指定一种编码，则使用相应平台的默认编码。 </li>
</ul>
<p>例如，使用 UTF-8 编码机制，字符串 "The string &#252;@foo-bar" 将转换为 "The+string+%C3%BC%40foo-bar"，因为在 UTF-8 中，字符 &#252; 编码为两个字节，C3 （十六进制）和 BC （十六进制），字符 @ 编码为一个字节 40 （十六进制）。 <br />
<br />
</p>
<dl>
<dt>
<pre>public class <strong>URLDecoder</strong><dt>extends <a title="java.lang 中的类" href="mk:@MSITStore:D:\API文档\java\JDK_API_1_6_zh_CN.CHM::/java/lang/Object.html">Object</a></dt></pre>
</dt></dl>
<pre></pre>
<p>HTML 格式解码的实用工具类。该类包含了将 String 从 <code>application/x-www-form-urlencoded</code> MIME 格式解码的静态方法。
<p>该转换过程正好与 URLEncoder 类使用的过程相反。假定已编码的字符串中的所有字符为下列之一："<code>a</code>" 到 "<code>z</code>"、"<code>A</code>" 到 "<code>Z</code>"、"<code>0</code>" 到 "<code>9</code>" 和 "<code>-</code>"、"<code>_</code>"、"<code>.</code>" 以及 "<code>*</code>"。允许有 "<code>%</code>" 字符，但是将它解释为特殊转义序列的开始。
<p>转换中使用以下规则：
<p>
<ul>
    <li>字母数字字符 "<code>a</code>" 到 "<code>z</code>"、"<code>A</code>" 到 "<code>Z</code>" 和 "<code>0</code>" 到 "<code>9</code>" 保持不变。
    <li>特殊字符 "<code>.</code>"、"<code>-</code>"、"<code>*</code>" 和 "<code>_</code>" 保持不变。
    <li>加号 "<code>+</code>" 转换为空格字符 "<code>&nbsp;</code>"。
    <li>将把 "<code>%<em>xy</em></code>" 格式序列视为一个字节，其中 <em>xy</em> 为 8 位的两位十六进制表示形式。然后，所有连续包含一个或多个这些字节序列的子字符串，将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制，或者如果未指定的话，则使用平台的默认编码机制。 </li>
</ul>
<p>该解码器处理非法字符串有两种可能的方法。一种方法是不管该非法字符，另一种方法是抛出 <tt><a title="java.lang 中的类" href="mk:@MSITStore:D:\API文档\java\JDK_API_1_6_zh_CN.CHM::/java/lang/IllegalArgumentException.html"><code>IllegalArgumentException</code></a></tt> 异常。解码器具体采用哪种方法取决于实现。<br />
<br />
</p>
<p><br />
现在的问题是：服务器返回字符到页面，页面又调用js，这个时候肯定要转义下，这是相对比较简单的需求。<br />
服务器只需借助于apache commons包里的StringEscapeUtils类，在struts2里其实已经集成在xwrok包。<br />
StringEscapeUtils.escapeJavaScript(returnString);<br />
这样就可以搞定这个问题。<br />
另外也可以用js去处理这个问题，不过没有实践，主要是自己js水平有点差，<br />
escapeJavaScript对应的源码如下：<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><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">void</span><span style="color: #000000">&nbsp;escapeJavaStyleString(Writer&nbsp;out,&nbsp;String&nbsp;str,&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;escapeSingleQuote,<br />
<img id="Codehighlighter1_152_2764_Open_Image" onclick="this.style.display='none'; Codehighlighter1_152_2764_Open_Text.style.display='none'; Codehighlighter1_152_2764_Closed_Image.style.display='inline'; Codehighlighter1_152_2764_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_152_2764_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_152_2764_Closed_Text.style.display='none'; Codehighlighter1_152_2764_Open_Image.style.display='inline'; Codehighlighter1_152_2764_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;escapeForwardSlash)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_152_2764_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_152_2764_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_179_268_Open_Image" onclick="this.style.display='none'; Codehighlighter1_179_268_Open_Text.style.display='none'; Codehighlighter1_179_268_Closed_Image.style.display='inline'; Codehighlighter1_179_268_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_179_268_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_179_268_Closed_Text.style.display='none'; Codehighlighter1_179_268_Open_Image.style.display='inline'; Codehighlighter1_179_268_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(out&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_179_268_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_179_268_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;IllegalArgumentException(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;Writer&nbsp;must&nbsp;not&nbsp;be&nbsp;null</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_295_325_Open_Image" onclick="this.style.display='none'; Codehighlighter1_295_325_Open_Text.style.display='none'; Codehighlighter1_295_325_Closed_Image.style.display='inline'; Codehighlighter1_295_325_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_295_325_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_295_325_Closed_Text.style.display='none'; Codehighlighter1_295_325_Open_Image.style.display='inline'; Codehighlighter1_295_325_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(str&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_295_325_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_295_325_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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: #0000ff">return</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;sz;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sz&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.length();<br />
<img id="Codehighlighter1_407_2758_Open_Image" onclick="this.style.display='none'; Codehighlighter1_407_2758_Open_Text.style.display='none'; Codehighlighter1_407_2758_Closed_Image.style.display='inline'; Codehighlighter1_407_2758_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_407_2758_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_407_2758_Closed_Text.style.display='none'; Codehighlighter1_407_2758_Open_Image.style.display='inline'; Codehighlighter1_407_2758_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;sz;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_407_2758_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_407_2758_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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: #0000ff">char</span><span style="color: #000000">&nbsp;ch&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;str.charAt(i);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
<img alt="" align="top" 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: #008000">//</span><span style="color: #008000">&nbsp;handle&nbsp;unicode</span><span style="color: #008000"><br />
<img id="Codehighlighter1_505_565_Open_Image" onclick="this.style.display='none'; Codehighlighter1_505_565_Open_Text.style.display='none'; Codehighlighter1_505_565_Closed_Image.style.display='inline'; Codehighlighter1_505_565_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_505_565_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_505_565_Closed_Text.style.display='none'; Codehighlighter1_505_565_Open_Image.style.display='inline'; Codehighlighter1_505_565_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ch&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xfff</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_505_565_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_505_565_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;out.write(</span><span style="color: #000000">"</span><span style="color: #000000">\\u</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hex(ch));<br />
<img id="Codehighlighter1_587_648_Open_Image" onclick="this.style.display='none'; Codehighlighter1_587_648_Open_Text.style.display='none'; Codehighlighter1_587_648_Closed_Image.style.display='inline'; Codehighlighter1_587_648_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_587_648_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_587_648_Closed_Text.style.display='none'; Codehighlighter1_587_648_Open_Image.style.display='inline'; Codehighlighter1_587_648_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ch&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xff</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_587_648_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_587_648_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;out.write(</span><span style="color: #000000">"</span><span style="color: #000000">\\u0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hex(ch));<br />
<img id="Codehighlighter1_670_732_Open_Image" onclick="this.style.display='none'; Codehighlighter1_670_732_Open_Text.style.display='none'; Codehighlighter1_670_732_Closed_Image.style.display='inline'; Codehighlighter1_670_732_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_670_732_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_670_732_Closed_Text.style.display='none'; Codehighlighter1_670_732_Open_Image.style.display='inline'; Codehighlighter1_670_732_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ch&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0x7f</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_670_732_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_670_732_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;out.write(</span><span style="color: #000000">"</span><span style="color: #000000">\\u00</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hex(ch));<br />
<img id="Codehighlighter1_752_1830_Open_Image" onclick="this.style.display='none'; Codehighlighter1_752_1830_Open_Text.style.display='none'; Codehighlighter1_752_1830_Closed_Image.style.display='inline'; Codehighlighter1_752_1830_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_752_1830_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_752_1830_Closed_Text.style.display='none'; Codehighlighter1_752_1830_Open_Image.style.display='inline'; Codehighlighter1_752_1830_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ch&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">32</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_752_1830_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_752_1830_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_782_1816_Open_Image" onclick="this.style.display='none'; Codehighlighter1_782_1816_Open_Text.style.display='none'; Codehighlighter1_782_1816_Closed_Image.style.display='inline'; Codehighlighter1_782_1816_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_782_1816_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_782_1816_Closed_Text.style.display='none'; Codehighlighter1_782_1816_Open_Image.style.display='inline'; Codehighlighter1_782_1816_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(ch)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_782_1816_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_782_1816_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\b</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">b</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\n</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">n</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\t</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">t</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\f</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">f</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\r</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">r</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;:<br />
<img id="Codehighlighter1_1587_1673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1587_1673_Open_Text.style.display='none'; Codehighlighter1_1587_1673_Closed_Image.style.display='inline'; Codehighlighter1_1587_1673_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1587_1673_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1587_1673_Closed_Text.style.display='none'; Codehighlighter1_1587_1673_Open_Image.style.display='inline'; Codehighlighter1_1587_1673_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&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><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ch&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0xf</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1587_1673_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1587_1673_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">"</span><span style="color: #000000">\\u00</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hex(ch));<br />
<img id="Codehighlighter1_1680_1767_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1680_1767_Open_Text.style.display='none'; Codehighlighter1_1680_1767_Closed_Image.style.display='inline'; Codehighlighter1_1680_1767_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1680_1767_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1680_1767_Closed_Text.style.display='none'; Codehighlighter1_1680_1767_Open_Image.style.display='inline'; Codehighlighter1_1680_1767_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&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></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1680_1767_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1680_1767_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">"</span><span style="color: #000000">\\u000</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hex(ch));<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&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></span><span style="color: #000000"><br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1837_2748_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1837_2748_Open_Text.style.display='none'; Codehighlighter1_1837_2748_Closed_Image.style.display='inline'; Codehighlighter1_1837_2748_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1837_2748_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1837_2748_Closed_Text.style.display='none'; Codehighlighter1_1837_2748_Open_Image.style.display='inline'; Codehighlighter1_1837_2748_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1837_2748_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1837_2748_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_1867_2734_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1867_2734_Open_Text.style.display='none'; Codehighlighter1_1867_2734_Closed_Image.style.display='inline'; Codehighlighter1_1867_2734_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1867_2734_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1867_2734_Closed_Text.style.display='none'; Codehighlighter1_1867_2734_Open_Image.style.display='inline'; Codehighlighter1_1867_2734_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(ch)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1867_2734_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1867_2734_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\</span><span style="color: #000000">''</span><span style="color: #000000">&nbsp;:</span><span style="color: #000000"><br />
<img id="Codehighlighter1_1949_2022_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1949_2022_Open_Text.style.display='none'; Codehighlighter1_1949_2022_Closed_Image.style.display='inline'; Codehighlighter1_1949_2022_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1949_2022_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1949_2022_Closed_Text.style.display='none'; Codehighlighter1_1949_2022_Open_Image.style.display='inline'; Codehighlighter1_1949_2022_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #000000">&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><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(escapeSingleQuote)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1949_2022_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1949_2022_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&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></span><span style="color: #000000"><br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\</span><span style="color: #000000">''</span><span style="color: #000000">);</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&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><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;:<br />
<img id="Codehighlighter1_2472_2545_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2472_2545_Open_Text.style.display='none'; Codehighlighter1_2472_2545_Closed_Image.style.display='inline'; Codehighlighter1_2472_2545_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_2472_2545_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2472_2545_Closed_Text.style.display='none'; Codehighlighter1_2472_2545_Open_Image.style.display='inline'; Codehighlighter1_2472_2545_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&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><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(escapeForwardSlash)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2472_2545_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2472_2545_Open_Text"><span style="color: #000000">{<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&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></span><span style="color: #000000"><br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;:<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(ch);<br />
<img alt="" align="top" 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&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="" align="top" 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: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p>可以用js去实现也是一样的，网上也有类似的js代码。<br />
<br />
出现的问题描述：服务器返了string，经过escapeJavaScript处理后到js代码，js代码又要用这些string去输出html.比如img的src为js处理后的字符串，<br />
最后经过测试得出以上语句去处理这些问题：<br />
string=encodeURIComponent(string).replace(<a>/@/g,'%40').replace(/'/g,"&#39;").replace(/"/g,'&#34;'</a>);<br />
转化@是为了获取服务器资源，比如图片地址，可以正常输出。其实输出时后面的转化单引号和双引号是为了保险起见。比如&lt;img src='*****.jpg'/&gt;这时就只需要转化单引号就可以了，这里主要是针对图片的处理来做的，@在其它地方有没有必要转化没有测试，如果要显示图片，得转化。<br />
<br />
出现的问题描述：带特殊字符串的图片名要正常显示出来，得转化下：比如要显示文件名为：~！@#￥%&#8230;&#8230;&amp;*（）——+.jpg的图片，代码如下：<br />
java.net.URLEncoder.encode(photoName,"utf-8")).replace("+", "%20"),转化时因为URLEncoder把空格转化成了+,所以最后得把+替换回去，20是十六进制的，相当于十进制的32，即对应为空格。<br />
经过转化后，图片带特殊字符就能正常显示。<br />
<br />
</p><img src ="http://www.blogjava.net/asdtiang/aggbug/349510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2011-05-05 11:07 <a href="http://www.blogjava.net/asdtiang/archive/2011/05/05/349510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载：java keytool使用</title><link>http://www.blogjava.net/asdtiang/archive/2010/12/22/341310.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Wed, 22 Dec 2010 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/12/22/341310.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/341310.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/12/22/341310.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/341310.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/341310.html</trackback:ping><description><![CDATA[<p><span style="font-size: small">Keytool是一个Java数据证书的管理工具 ,Keytool将密钥（key）和证书（certificates）存在一个称为keystore的文件中在keystore里，包含两种数据： <br />
密钥实体（Key entity）——密钥（secret key）又或者是私钥和配对公钥（采用非对称加密） <br />
可信任的证书实体（trusted certificate entries）——只包含公钥 </span></p>
<p><span style="font-size: small"><br />
ailas(别名)每个keystore都关联这一个独一无二的alias，这个alias通常不区分大小写 </span></p>
<p>&nbsp;</p>
<p><span style="font-size: small"><span style="color: #ff0000">JDK中keytool常用命令:</span> <br />
<br />
-genkey&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名，mykey中包含用户的公钥、私钥和证书<br />
(在没有指定生成位置的情况下,keystore会存在用户系统默认目录，如：对于window xp系统，会生成在系统的C:\Documents and Settings\UserName\文件名为&#8220;.keystore&#8221;)<br />
-alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 产生别名<br />
-keystore&nbsp;&nbsp;&nbsp; 指定密钥库的名称(产生的各类信息将不在.keystore文件中)<br />
-keyalg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定密钥的算法 (如 RSA&nbsp; DSA（如果不指定默认采用DSA）)<br />
-validity&nbsp;&nbsp;&nbsp; 指定创建的证书有效期多少天<br />
-keysize&nbsp;&nbsp;&nbsp;&nbsp; 指定密钥长度<br />
-storepass&nbsp;&nbsp; 指定密钥库的密码(获取keystore信息所需的密码)<br />
-keypass&nbsp;&nbsp;&nbsp;&nbsp; 指定别名条目的密码(私钥的密码)<br />
-dname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定证书拥有者信息 例如：&nbsp; "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"<br />
-list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示密钥库中的证书信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keytool -list -v -keystore 指定keystore -storepass 密码<br />
-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示密钥库中的证书详细信息<br />
-export&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将别名指定的证书导出到文件&nbsp; keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码<br />
-file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数指定导出到文件的文件名<br />
-delete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除密钥库中某条目&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keytool -delete -alias 指定需删除的别&nbsp; -keystore 指定keystore&nbsp; -storepass 密码<br />
-printcert&nbsp;&nbsp; 查看导出的证书信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keytool -printcert -file yushan.crt<br />
-keypasswd&nbsp;&nbsp; 修改密钥库中指定条目口令&nbsp;&nbsp;&nbsp; keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new&nbsp; 新密码&nbsp; -storepass keystore密码&nbsp; -keystore sage<br />
-storepasswd 修改keystore口令&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)<br />
-import&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将已签名数字证书导入密钥库&nbsp; keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书</span> </p>
<p>&nbsp;</p>
<p><span style="font-size: small">下面是各选项的缺省值。&nbsp;<br />
-alias&nbsp;"mykey"<br />
<br />
-keyalg&nbsp;"DSA"<br />
<br />
-keysize&nbsp;1024<br />
<br />
-validity&nbsp;90<br />
<br />
-keystore&nbsp;用户宿主目录中名为&nbsp;.keystore&nbsp;的文件<br />
<br />
-file&nbsp;读时为标准输入，写时为标准输出</span> <span style="font-size: small"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
<br />
<span style="color: #ff0000">1、keystore的生成：</span> <br />
<br />
分阶段生成：<br />
&nbsp;&nbsp;&nbsp;&nbsp; keytool <span style="color: #ff0000">-genkey</span> -alias yushan(别名) -keypass yushan(别名密码) -keyalg RSA(算法) -keysize 1024(密钥长度) -validity 365(有效期，天单位) -keystore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
e:\yushan.keystore(指定生成证书的位置和证书名称) -storepass 123456(获取keystore信息的密码)；回车输入相关信息即可；<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
一次性生成：<br />
&nbsp;&nbsp;&nbsp;&nbsp; keytool -genkey -alias yushan -keypass yushan -keyalg RSA -keysize 1024 -validity 365 -keystore&nbsp; e:\yushan.keystore -storepass 123456 -dname "CN=(名字与<br />
<br />
姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)";(中英文即可)<br />
<br />
<span style="color: #ff0000">2、keystore信息的查看：</span> <br />
&nbsp;&nbsp; keytool<span style="color: #ff0000"> -list&nbsp; -v</span> -keystore e:\keytool\yushan.keystore -storepass 123456<br />
&nbsp;&nbsp; 显示内容：<br />
---------------------------------------------------------------------<br />
&nbsp;&nbsp; Keystore 类型： JKS<br />
Keystore 提供者： SUN<br />
<br />
您的 keystore 包含 1 输入<br />
<br />
别名名称： yushan<br />
创建日期： 2009-7-29<br />
项类型: PrivateKeyEntry<br />
认证链长度： 1<br />
认证 [1]:<br />
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
序列号:4a6f29ed<br />
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010<br />
证书指纹:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 签名算法名称:SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 版本: 3<br />
--------------------------------------------------------------------</span> </p>
<p>&nbsp;</p>
<p><span style="font-size: small">缺省情况下，-list&nbsp;命令打印证书的&nbsp;MD5&nbsp;指纹。而如果指定了&nbsp;-v&nbsp;选项，将以可读格式打印证书，如果指定了&nbsp;-rfc&nbsp;选项，将以可打印的编码格式输出证书。</span> </p>
<p><span style="font-size: small"><br />
</span></p>
<p><span style="font-size: small">keytool <span style="color: #ff0000">-list&nbsp; -rfc</span> -keystore e:\yushan.keystore -storepass 123456</span> </p>
<p><span style="font-size: small">显示：</span> </p>
<p>-------------------------------------------------------------------------------------------------------</p>
<p>Keystore 类型： JKS<br />
Keystore 提供者： SUN<br />
<br />
您的 keystore 包含 1 输入<br />
<br />
别名名称： yushan<br />
创建日期： 2009-7-29<br />
项类型: PrivateKeyEntry<br />
认证链长度： 1<br />
认证 [1]:<br />
-----BEGIN CERTIFICATE-----<br />
MIICSzCCAbSgAwIBAgIESm8p7TANBgkqhkiG9w0BAQUFADBqMQ8wDQYDVQQGDAbkuK3lm70xDzAN<br />
BgNVBAgMBua5luWNlzEPMA0GA1UEBwwG5rmY5r2tMREwDwYDVQQKDAh4eOWNj+S8mjERMA8GA1UE<br />
CwwIeHjlhazlj7gxDzANBgNVBAMTBnl1c2hhbjAeFw0wOTA3MjgxNjQwMTNaFw0xMDA3MjgxNjQw<br />
MTNaMGoxDzANBgNVBAYMBuS4reWbvTEPMA0GA1UECAwG5rmW5Y2XMQ8wDQYDVQQHDAbmuZjmva0x<br />
ETAPBgNVBAoMCHh45Y2P5LyaMREwDwYDVQQLDAh4eOWFrOWPuDEPMA0GA1UEAxMGeXVzaGFuMIGf<br />
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJoru1RQczRzTnBWxefVNspQBykS220rS8Y/oX3mZa<br />
hjL4wLfOURzUuxxuVQR2jx7QI+XKME+DHQj9r6aAcLBCi/T1jwF8mVYxtpRuTzE/6KEZdhowEe70<br />
liWLVE+hytLBHZ03Zhwcd6q5HUMu27du3MPQvqiwzTY7MrwIvQQ8iQIDAQABMA0GCSqGSIb3DQEB<br />
BQUAA4GBAGoQQ1/FnTfkpQh+Ni6h3fZdn3sR8ZzDMbOAIYVLAhBb85XDJ8QZTarHbZMJcIdHxAl1<br />
i08ct3E8U87V9t8GZFWVC4BFg/+zeFEv76SFpVE56iX7P1jpsu78z0m69hHlds77VJTdyfMSvtXv<br />
sYHP3fxfzx9WyhipBwd8VPK/NgEP<br />
-----END CERTIFICATE-----</p>
<p>-------------------------------------------------------------------------------------------------------<br />
<span style="font-size: small"><br />
<span style="color: #ff0000">3、证书的导出：</span> <br />
<br />
keytool <span style="color: #ff0000">-export</span> -alias yushan -keystore e:\yushan.keystore -file e:\yushan.crt(指定导出的证书位置及证书名称) -storepass 123456<br />
<br />
<span style="color: #ff0000">4、查看导出的证书信息</span> <br />
&nbsp;&nbsp; keytool -printcert -file yushan.crt<br />
&nbsp;&nbsp; 显示：（在windows下可以双击yushan.crt查看）<br />
-----------------------------------------------------------------------<br />
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
序列号:4a6f29ed<br />
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010<br />
证书指纹:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 签名算法名称:SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 版本: 3<br />
-----------------------------------------------------------------------<br />
<br />
<span style="color: #ff0000">5、证书的导入：</span> <br />
&nbsp;&nbsp; 准备一个导入的证书：<br />
&nbsp;&nbsp; keytool -genkey -alias shuany -keypass shuany -keyalg RSA -keysize 1024 -validity 365 -keystore&nbsp; e:\shuany.keystore -storepass 123456 -dname "CN=shuany, <br />
<br />
OU=xx, O=xx, L=xx, ST=xx, C=xx";<br />
&nbsp;&nbsp; keytool <span style="color: #ff0000">-export</span> -alias shuany -keystore e:\shuany.keystore -file e:\shuany.crt -storepass 123456<br />
&nbsp;<br />
&nbsp; 现在将shuany.crt 加入到yushan.keystore中：<br />
&nbsp; keytool <span style="color: #ff0000">-import</span> -alias shuany(指定导入证书的别名，如果不指定默认为mykey,别名唯一，否则导入出错) -file e:\shuany.crt -keystore e:\yushan.keystore -storepass <br />
<br />
123456<br />
<br />
&nbsp;keytool <span style="color: #ff0000">-list&nbsp;</span> -v -keystore e:\keytool\yushan.keystore -storepass 123456<br />
显示：<br />
------------------------------------------------------------------------------<br />
Keystore 类型： JKS<br />
Keystore 提供者： SUN<br />
<br />
您的 keystore 包含 2 输入<br />
<br />
别名名称： yushan<br />
创建日期： 2009-7-29<br />
项类型: PrivateKeyEntry<br />
认证链长度： 1<br />
认证 [1]:<br />
所有者:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
签发人:CN=yushan, OU=xx公司, O=xx协会, L=湘潭, ST=湖南, C=中国<br />
序列号:4a6f29ed<br />
有效期: Wed Jul 29 00:40:13 CST 2009 至Thu Jul 29 00:40:13 CST 2010<br />
证书指纹:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:A3:D7:D9:74:C3:50:7D:10:C9:C2:47:B0:33:90:45:C3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1:2B:FC:9E:3A:DF:C6:C4:FB:87:B8:A0:C6:99:43:E9:4C:4A:E1:18:E8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 签名算法名称:SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 版本: 3<br />
<br />
<br />
*******************************************<br />
*******************************************<br />
<br />
<br />
别名名称： shuany<br />
创建日期： 2009-7-29<br />
输入类型： trustedCertEntry<br />
<br />
所有者:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx<br />
签发人:CN=shuany, OU=xx, O=xx, L=xx, ST=xx, C=xx<br />
序列号:4a6f2cd9<br />
有效期: Wed Jul 29 00:52:41 CST 2009 至Thu Jul 29 00:52:41 CST 2010<br />
证书指纹:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:15:03:57:9B:14:BD:C5:50:21:15:47:1E:29:87:A4:E6<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1:C1:4F:8B:CD:5E:C2:94:77:B7:42:29:35:5C:BB:BB:2E:9E:F0:89:F5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 签名算法名称:SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 版本: 3<br />
<br />
<br />
*******************************************<br />
*******************************************<br />
------------------------------------------------------------------------------<br />
<br />
<span style="color: #ff0000">6、证书条目的删除：</span> <br />
&nbsp;keytool <span style="color: #ff0000">-delete</span> -alias shuany(指定需删除的别名) -keystore yushan.keystore -storepass 123456<br />
&nbsp; <br />
<span style="color: #ff0000">7、证书条目口令的修改：</span> <br />
keytool <span style="color: #ff0000">-keypasswd </span>-alias yushan(需要修改密码的别名) -keypass yushan(原始密码) -new 123456(别名的新密码)&nbsp; -keystore e:\yushan.keystore -storepass 123456<br />
<br />
<span style="color: #ff0000">8、keystore口令的修改：</span> <br />
&nbsp;keytool <span style="color: #008000">-storepasswd</span> -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)</span> </p>
<p>&nbsp;</p>
<p><span style="font-size: small; color: #ff0000">9、修改keystore中别名为yushan的信息</span> </p>
<p>&nbsp;</p>
<p><span style="font-size: small">keytool <span style="color: #008000">-selfcert</span> -alias yushan -keypass yushan -keystore e:\yushan.keystore -storepass 123456 -dname "cn=yushan,ou=yushan,o=yushan,c=us"</span></p>
<img src ="http://www.blogjava.net/asdtiang/aggbug/341310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-12-22 14:00 <a href="http://www.blogjava.net/asdtiang/archive/2010/12/22/341310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 根据IP获取所在地</title><link>http://www.blogjava.net/asdtiang/archive/2010/08/12/328684.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Thu, 12 Aug 2010 08:21:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/08/12/328684.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/328684.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/08/12/328684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/328684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/328684.html</trackback:ping><description><![CDATA[
		<p>根据IP获取所在地及服务商：<br />直接给代码吧：<br />根据这个网站<a href="http://www.ip138.com">http://www.ip138.com</a>为获取地址。<br />访问地址为：<a href="http://www.ip138.com/ips.asp?ip=124.236.239.105&amp;action=2">http://www.ip138.com/ips.asp?ip=124.236.239.105&amp;action=2</a><br />构造connection，返回里直接字符串处理的，主要是自己的正则表达式没学好啊<br />返回中：</p>
		<pre id="line150">&lt;<span class="start-tag">td</span><span class="attribute-name"> align</span>=<span class="attribute-value">"center"</span>&gt;&lt;<span class="start-tag">ul</span><span class="attribute-name"> class</span>=<span class="attribute-value">"ul1"</span>&gt;&lt;<span class="start-tag">li</span>&gt;本站主数据：河北省石家庄市 电信&lt;/<span class="end-tag">li</span>&gt;&lt;<span class="start-tag">li</span>&gt;参考数据一：河北省石家庄市 电信&lt;/<span class="end-tag">li</span>&gt;&lt;<span class="start-tag">li</span>&gt;参考数据二：河北省石家庄市 电信&lt;/<span class="end-tag">li</span>&gt;&lt;/<span class="end-tag">ul</span>&gt;&lt;/<span class="end-tag">td</span>&gt;
</pre>
		<p>结果只取了主数据。<br /><br /></p>
		<div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)">
				<img id="Codehighlighter1_23_1390_Open_Image" onclick="this.style.display='none'; Codehighlighter1_23_1390_Open_Text.style.display='none'; Codehighlighter1_23_1390_Closed_Image.style.display='inline'; Codehighlighter1_23_1390_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_23_1390_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_1390_Closed_Text.style.display='none'; Codehighlighter1_23_1390_Open_Image.style.display='inline'; Codehighlighter1_23_1390_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: rgb(0,0,255)">public</span>
				<span style="COLOR: rgb(0,0,0)"> </span>
				<span style="COLOR: rgb(0,0,255)">class</span>
				<span style="COLOR: rgb(0,0,0)"> GetIPArea </span>
				<span id="Codehighlighter1_23_1390_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
						<img src="http://www.blogjava.net/images/dot.gif" />
				</span>
				<span id="Codehighlighter1_23_1390_Open_Text">
						<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: rgb(0,128,0)">//</span>
						<span style="COLOR: rgb(0,128,0)">URL</span>
						<span style="COLOR: rgb(0,128,0)">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: rgb(0,0,0)">    </span>
						<span style="COLOR: rgb(0,0,255)">private</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">static</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">final</span>
						<span style="COLOR: rgb(0,0,0)"> String REQUEST_URL</span>
						<span style="COLOR: rgb(0,0,0)">=</span>
						<span style="COLOR: rgb(0,0,0)">"</span>
						<span style="COLOR: rgb(0,0,0)">http://www.ip138.com/ips.asp</span>
						<span style="COLOR: rgb(0,0,0)">"</span>
						<span style="COLOR: rgb(0,0,0)">;<br />      ///////有时查询不出来，就用这个URL    http://www.ip138.com/ips8.asp<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: rgb(0,128,0)">//<br /></span>
						<span style="COLOR: rgb(0,128,0)">
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: rgb(0,0,0)">    </span>
						<span style="COLOR: rgb(0,0,255)">private</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">static</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">final</span>
						<span style="COLOR: rgb(0,0,0)"> String REQUEST_MOTHOD</span>
						<span style="COLOR: rgb(0,0,0)">=</span>
						<span style="COLOR: rgb(0,0,0)">"</span>
						<span style="COLOR: rgb(0,0,0)">POST</span>
						<span style="COLOR: rgb(0,0,0)">"</span>
						<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: rgb(0,128,0)">//</span>
						<span style="COLOR: rgb(0,128,0)">����URL��HttpURLConnection����</span>
						<span style="COLOR: rgb(0,128,0)">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
						</span>
						<span style="COLOR: rgb(0,0,0)">    </span>
						<span style="COLOR: rgb(0,0,255)">private</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">static</span>
						<span style="COLOR: rgb(0,0,0)"> HttpURLConnection httpConn</span>
						<span style="COLOR: rgb(0,0,0)">=</span>
						<span style="COLOR: rgb(0,0,255)">null</span>
						<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_259_301_Open_Image" onclick="this.style.display='none'; Codehighlighter1_259_301_Open_Text.style.display='none'; Codehighlighter1_259_301_Closed_Image.style.display='inline'; Codehighlighter1_259_301_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_259_301_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_259_301_Closed_Text.style.display='none'; Codehighlighter1_259_301_Open_Image.style.display='inline'; Codehighlighter1_259_301_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_259_301_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">/** */</span>
						<span id="Codehighlighter1_259_301_Open_Text">
								<span style="COLOR: rgb(0,128,0)">/**</span>
								<span style="COLOR: rgb(0,128,0)">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * IP<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />     * </span>
								<span style="COLOR: rgb(128,128,128)">@return</span>
								<span style="COLOR: rgb(0,128,0)"> String<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />     </span>
								<span style="COLOR: rgb(0,128,0)">*/</span>
						</span>
						<span style="COLOR: rgb(0,0,0)">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
						<span style="COLOR: rgb(0,0,255)">public</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">static</span>
						<span style="COLOR: rgb(0,0,0)"> String getIPArea(String ip)<br /><img id="Codehighlighter1_347_1282_Open_Image" onclick="this.style.display='none'; Codehighlighter1_347_1282_Open_Text.style.display='none'; Codehighlighter1_347_1282_Closed_Image.style.display='inline'; Codehighlighter1_347_1282_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_347_1282_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_347_1282_Closed_Text.style.display='none'; Codehighlighter1_347_1282_Open_Image.style.display='inline'; Codehighlighter1_347_1282_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_347_1282_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_347_1282_Open_Text">
								<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String requestParameter</span>
								<span style="COLOR: rgb(0,0,0)">=</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">ip=</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">+</span>
								<span style="COLOR: rgb(0,0,0)">ip</span>
								<span style="COLOR: rgb(0,0,0)">+</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">&amp;action=2</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String IPArea</span>
								<span style="COLOR: rgb(0,0,0)">=</span>
								<span style="COLOR: rgb(0,0,0)">""</span>
								<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        BufferedReader br</span>
								<span style="COLOR: rgb(0,0,0)">=</span>
								<span style="COLOR: rgb(0,0,255)">null</span>
								<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: rgb(0,0,255)">try</span>
								<span style="COLOR: rgb(0,0,0)">
										<br />
										<img id="Codehighlighter1_451_1086_Open_Image" onclick="this.style.display='none'; Codehighlighter1_451_1086_Open_Text.style.display='none'; Codehighlighter1_451_1086_Closed_Image.style.display='inline'; Codehighlighter1_451_1086_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_451_1086_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_451_1086_Closed_Text.style.display='none'; Codehighlighter1_451_1086_Open_Image.style.display='inline'; Codehighlighter1_451_1086_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_451_1086_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_451_1086_Open_Text">
										<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn</span>
										<span style="COLOR: rgb(0,0,0)">=</span>
										<span style="COLOR: rgb(0,0,0)">(HttpURLConnection)</span>
										<span style="COLOR: rgb(0,0,255)">new</span>
										<span style="COLOR: rgb(0,0,0)"> URL(REQUEST_URL).openConnection();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn.setRequestMethod(REQUEST_MOTHOD);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn.setDoOutput(</span>
										<span style="COLOR: rgb(0,0,255)">true</span>
										<span style="COLOR: rgb(0,0,0)">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn.getOutputStream().write(requestParameter.getBytes());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn.getOutputStream().flush();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            httpConn.getOutputStream().close();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            br</span>
										<span style="COLOR: rgb(0,0,0)">=</span>
										<span style="COLOR: rgb(0,0,255)">new</span>
										<span style="COLOR: rgb(0,0,0)"> BufferedReader(</span>
										<span style="COLOR: rgb(0,0,255)">new</span>
										<span style="COLOR: rgb(0,0,0)"> InputStreamReader(httpConn.getInputStream(),</span>
										<span style="COLOR: rgb(0,0,0)">"</span>
										<span style="COLOR: rgb(0,0,0)">gb2312</span>
										<span style="COLOR: rgb(0,0,0)">"</span>
										<span style="COLOR: rgb(0,0,0)">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            String lineStr</span>
										<span style="COLOR: rgb(0,0,0)">=</span>
										<span style="COLOR: rgb(0,0,255)">null</span>
										<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: rgb(0,0,255)">while</span>
										<span style="COLOR: rgb(0,0,0)">((lineStr</span>
										<span style="COLOR: rgb(0,0,0)">=</span>
										<span style="COLOR: rgb(0,0,0)">br.readLine())</span>
										<span style="COLOR: rgb(0,0,0)">!=</span>
										<span style="COLOR: rgb(0,0,255)">null</span>
										<span style="COLOR: rgb(0,0,0)">)<br /><img id="Codehighlighter1_900_1082_Open_Image" onclick="this.style.display='none'; Codehighlighter1_900_1082_Open_Text.style.display='none'; Codehighlighter1_900_1082_Closed_Image.style.display='inline'; Codehighlighter1_900_1082_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_900_1082_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_900_1082_Closed_Text.style.display='none'; Codehighlighter1_900_1082_Open_Image.style.display='inline'; Codehighlighter1_900_1082_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span>
										<span id="Codehighlighter1_900_1082_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_900_1082_Open_Text">
												<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
												<span style="COLOR: rgb(0,0,255)">if</span>
												<span style="COLOR: rgb(0,0,0)">(lineStr.contains(</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">&lt;td align=\</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">center\</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">&gt;&lt;ul class=\</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">ul1\</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">&gt;&lt;li&gt;</span>
												<span style="COLOR: rgb(0,0,0)">"</span>
												<span style="COLOR: rgb(0,0,0)">))<br /><img id="Codehighlighter1_982_1077_Open_Image" onclick="this.style.display='none'; Codehighlighter1_982_1077_Open_Text.style.display='none'; Codehighlighter1_982_1077_Closed_Image.style.display='inline'; Codehighlighter1_982_1077_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_982_1077_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_982_1077_Closed_Text.style.display='none'; Codehighlighter1_982_1077_Open_Image.style.display='inline'; Codehighlighter1_982_1077_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
												<span id="Codehighlighter1_982_1077_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
														<img src="http://www.blogjava.net/images/dot.gif" />
												</span>
												<span id="Codehighlighter1_982_1077_Open_Text">
														<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    IPArea</span>
														<span style="COLOR: rgb(0,0,0)">=</span>
														<span style="COLOR: rgb(0,0,0)">lineStr.substring(lineStr.indexOf(</span>
														<span style="COLOR: rgb(0,0,0)">"</span>
														<span style="COLOR: rgb(0,0,0)">：</span>
														<span style="COLOR: rgb(0,0,0)">"</span>
														<span style="COLOR: rgb(0,0,0)">)</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)">,lineStr.indexOf(</span>
														<span style="COLOR: rgb(0,0,0)">"</span>
														<span style="COLOR: rgb(0,0,0)">&lt;/</span>
														<span style="COLOR: rgb(0,0,0)">"</span>
														<span style="COLOR: rgb(0,0,0)">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    </span>
														<span style="COLOR: rgb(0,0,255)">break</span>
														<span style="COLOR: rgb(0,0,0)">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
												</span>
												<span style="COLOR: rgb(0,0,0)">
														<br />
														<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span>
										</span>
										<span style="COLOR: rgb(0,0,0)">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: rgb(0,0,0)">
										<br />
										<img id="Codehighlighter1_1111_1139_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1111_1139_Open_Text.style.display='none'; Codehighlighter1_1111_1139_Closed_Image.style.display='inline'; Codehighlighter1_1111_1139_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1111_1139_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1111_1139_Closed_Text.style.display='none'; Codehighlighter1_1111_1139_Open_Image.style.display='inline'; Codehighlighter1_1111_1139_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: rgb(0,0,255)">catch</span>
								<span style="COLOR: rgb(0,0,0)">(IOException e) </span>
								<span id="Codehighlighter1_1111_1139_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1111_1139_Open_Text">
										<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            e.printStackTrace();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: rgb(0,0,0)">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: rgb(0,0,255)">finally</span>
								<span style="COLOR: rgb(0,0,0)">
										<br />
										<img id="Codehighlighter1_1153_1262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1153_1262_Open_Text.style.display='none'; Codehighlighter1_1153_1262_Closed_Image.style.display='inline'; Codehighlighter1_1153_1262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
										<img id="Codehighlighter1_1153_1262_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1153_1262_Closed_Text.style.display='none'; Codehighlighter1_1153_1262_Open_Image.style.display='inline'; Codehighlighter1_1153_1262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span id="Codehighlighter1_1153_1262_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
										<img src="http://www.blogjava.net/images/dot.gif" />
								</span>
								<span id="Codehighlighter1_1153_1262_Open_Text">
										<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: rgb(0,0,255)">if</span>
										<span style="COLOR: rgb(0,0,0)">(br</span>
										<span style="COLOR: rgb(0,0,0)">!=</span>
										<span style="COLOR: rgb(0,0,255)">null</span>
										<span style="COLOR: rgb(0,0,0)">)<br /><img id="Codehighlighter1_1179_1202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1179_1202_Open_Text.style.display='none'; Codehighlighter1_1179_1202_Closed_Image.style.display='inline'; Codehighlighter1_1179_1202_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1179_1202_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1179_1202_Closed_Text.style.display='none'; Codehighlighter1_1179_1202_Open_Image.style.display='inline'; Codehighlighter1_1179_1202_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                </span>
										<span style="COLOR: rgb(0,0,255)">try</span>
										<span style="COLOR: rgb(0,0,0)"> </span>
										<span id="Codehighlighter1_1179_1202_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1179_1202_Open_Text">
												<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    br.close();<br /><img id="Codehighlighter1_1226_1258_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1226_1258_Open_Text.style.display='none'; Codehighlighter1_1226_1258_Closed_Image.style.display='inline'; Codehighlighter1_1226_1258_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1226_1258_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1226_1258_Closed_Text.style.display='none'; Codehighlighter1_1226_1258_Open_Image.style.display='inline'; Codehighlighter1_1226_1258_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: rgb(0,0,0)"> </span>
										<span style="COLOR: rgb(0,0,255)">catch</span>
										<span style="COLOR: rgb(0,0,0)"> (IOException e) </span>
										<span id="Codehighlighter1_1226_1258_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
												<img src="http://www.blogjava.net/images/dot.gif" />
										</span>
										<span id="Codehighlighter1_1226_1258_Open_Text">
												<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                    e.printStackTrace();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />                }</span>
										</span>
										<span style="COLOR: rgb(0,0,0)">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span>
								</span>
								<span style="COLOR: rgb(0,0,0)">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: rgb(0,0,255)">return</span>
								<span style="COLOR: rgb(0,0,0)"> IPArea;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: rgb(0,0,0)">
								<br />
								<img id="Codehighlighter1_1323_1388_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1323_1388_Open_Text.style.display='none'; Codehighlighter1_1323_1388_Closed_Image.style.display='inline'; Codehighlighter1_1323_1388_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1323_1388_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1323_1388_Closed_Text.style.display='none'; Codehighlighter1_1323_1388_Open_Image.style.display='inline'; Codehighlighter1_1323_1388_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span style="COLOR: rgb(0,0,255)">public</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">static</span>
						<span style="COLOR: rgb(0,0,0)"> </span>
						<span style="COLOR: rgb(0,0,255)">void</span>
						<span style="COLOR: rgb(0,0,0)"> main(String args[])</span>
						<span id="Codehighlighter1_1323_1388_Closed_Text" style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; DISPLAY: none; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid; BACKGROUND-COLOR: rgb(255,255,255)">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_1323_1388_Open_Text">
								<span style="COLOR: rgb(0,0,0)">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(GetIPArea.getIPArea(</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">124.236.239.105</span>
								<span style="COLOR: rgb(0,0,0)">"</span>
								<span style="COLOR: rgb(0,0,0)">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: rgb(0,0,0)">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
		<p>http编码问题在这里也顺便记一下。<br />br=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"gb2312"));//在这个地方加上编码<br /><br />这种方法获取IP很不稳定，容易获取不到，我测试是这样的，最好的方法还是有自己的IP数据库。<br />纯真IP数据库刚好可以用上。<br />具体参考：<a href="http://javagp.group.javaeye.com/group/topic/11866">http://javagp.group.javaeye.com/group/topic/11866</a><br />在他的博客上有源码下载，直接用就可以了<br /><br /><br /><br /><br /><br />主要参考   <a href="http://gzhzh.javaeye.com/blog/425458">http://gzhzh.javaeye.com/blog/425458</a></p>
<img src ="http://www.blogjava.net/asdtiang/aggbug/328684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-08-12 16:21 <a href="http://www.blogjava.net/asdtiang/archive/2010/08/12/328684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>下载JAVA</title><link>http://www.blogjava.net/asdtiang/archive/2010/03/29/316856.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Mon, 29 Mar 2010 10:17:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/03/29/316856.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/316856.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/03/29/316856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/316856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/316856.html</trackback:ping><description><![CDATA[1、可以用搜索引擎搜索&#8220;<a href="http://www.google.com.hk/search?hl=zh-CN&amp;newwindow=1&amp;safe=strict&amp;client=firefox-a&amp;rls=org.mozilla%3Azh-CN%3Aofficial&amp;q=java+se%E4%B8%8B%E8%BD%BD&amp;meta=&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=" target="_blank">java se下载</a>&#8221;或者&#8220;<a href="http://www.google.com.hk/search?hl=zh-CN&amp;newwindow=1&amp;safe=strict&amp;client=firefox-a&amp;rls=org.mozilla%3Azh-CN%3Aofficial&amp;q=JDK+%E4%B8%8B%E8%BD%BD&amp;meta=&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=" target="_blank">JDK 下载</a>&#8221;，目录最新版是jdk1.6,即jdk 6,<br />
2、到官网下载：<a href="http://java.sun.com/" target="_blank">http://java.sun.com/</a>，没被Oracle收购前，不用注册就可以下载，有段时间要注
册了才能下载，现在测试了下，不用注册也能下载<br />
<br />
<br />
<h2>安装JAVA</h2>
<dl mod="" sizcache="5" sizset="49"><dt><img alt="A custom caption" src="/magnoliaAuthor/dms/demo-project/img/opener/green-chairs-and-white-table/green%20chairs%20and%20white%20table%20588x368.jpg" />
</dt><dd sizcache="5" sizset="49"><a title="Zoom on this image" href="/magnoliaAuthor/dms/demo-project/img/opener/green-chairs-and-white-table/green%20chairs%20and%20white%20table%20588x368.jpg" rel="showbox" jquery1269857791218="15">Zoom</a>
</dd><dd>A custom caption
</dd><dd>Copyright: Magnolia
</dd><dd>Li Europan lingues es membres del sam familie </dd></dl>
<p>如果你下载的是安装包的话，JDK环境变量是没有配置的，但可以运行.jar文件，在cmd下面可以运行java，但是不能运行javac.</p>
<p>下面介绍的是如何配置JDK环境变量：</p>
<p>网上搜索吧，这个东西多用用就会了，我开始学习JAVA的时候，半年多还不会自己配置，每次配置都得上网搜索。搜索关键：jdk配置，java配置,java环境配置</p>
<br />
<img src ="http://www.blogjava.net/asdtiang/aggbug/316856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-03-29 18:17 <a href="http://www.blogjava.net/asdtiang/archive/2010/03/29/316856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 元数据学习笔记2----自带的元数据（转）</title><link>http://www.blogjava.net/asdtiang/archive/2010/03/09/314966.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 09 Mar 2010 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/03/09/314966.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/314966.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/03/09/314966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/314966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/314966.html</trackback:ping><description><![CDATA[<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
<span style="font-family: 宋体;">注释有</span>
3
<span style="font-family: 宋体;">中基本类型</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
a.
<span style="font-family: 宋体;">标记注释</span>
--
<span style="font-family: 宋体;">没有变量，只有名称标识。例如</span>
@annotation</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
b.
<span style="font-family: 宋体;">单一值注释</span>
--
<span style="font-family: 宋体;">在标记注释的基础上提供一段数据。如</span>
@annotation(&#8220;data&#8221;)</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
c.
<span style="font-family: 宋体;">完整注释</span>
--
<span style="font-family: 宋体;">可以包括多个数据成员，每个数据成员由名称和值构成。</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal">
<font color="#000000">@annotation(val1="data1",val2="data2")</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">.Java
<span style="font-family: 宋体;">的</span>
&#8220;
<span style="font-family: 宋体;">注释</span>
&#8221;</font>
</p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
Java
<span style="font-family: 宋体;">中提供</span>
3
<span style="font-family: 宋体;">个内置注释类型</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
a. Override
<span style="font-family: 宋体;">，只能用于方法</span>
(
<span style="font-family: 宋体;">不能用于类，包声明或者其他构造</span>
)</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
<span style="font-family: 宋体;">作用：可以保证编译时候</span>
Override
<span style="font-family: 宋体;">函数的声明正确性</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
<span style="font-family: 宋体;">用法：</span>
@Override</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal">
<font color="#000000">public void fun(){..}</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
b.Deprecated
<span style="font-family: 宋体;">同样只能作用与方法</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal">
<span style="font-family: 宋体;"><font color="#000000">作用：对不应再使用的方法进行注解</font></span></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
<span style="font-family: 宋体;">用法：</span>
@Deprecated public void fun{...} //
<span style="font-family: 宋体;">它们说这个注释跟函数要同一行</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000"><span style="font-family: 宋体;"><img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/test.png" /><br />
</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
c.SupressWarnings
<span style="font-family: 宋体;">可以注释一段代码</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal">
<span style="font-family: 宋体;"><font color="#000000">作用：关闭特定的警告信息，例如你在使
用泛型的时候未指定类型</font></span></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
<span style="font-family: 宋体;">用法：</span>
@SupressWarnings("unchecked")</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
Java
<span style="font-family: 宋体;">中还提供了四种元注释，专门负责注释其他的注释</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
@Target
<span style="font-family: 宋体;">表示该注释可以用于什么地方。可用的</span>
ElementType
<span style="font-family: 宋体;">参数包括：</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
CONSTRUCTOR :
<span style="font-family: 宋体;">构造器的声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
FIELD :
<span style="font-family: 宋体;">域声明</span>
(
<span style="font-family: 宋体;">包括</span>
enum
<span style="font-family: 宋体;">实例</span>
)</font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
LOCAL_VARIABLE :
<span style="font-family: 宋体;">局部变量声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
METHOD :
<span style="font-family: 宋体;">方法声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
PACKAGE :
<span style="font-family: 宋体;">包声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
PARAMETER :
<span style="font-family: 宋体;">参数声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
TYPE :
<span style="font-family: 宋体;">类、接口</span>
(
<span style="font-family: 宋体;">包括注解类型</span>
)
<span style="font-family: 宋体;">或</span>
enum
<span style="font-family: 宋体;">声明</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
@Retention
<span style="font-family: 宋体;">表示需要在什么级别保存该注释信息。可选的</span>
RetentionPoicy
<span style="font-family: 宋体;">参数包括：</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
SOURCE :
<span style="font-family: 宋体;">注释将被编译器丢掉</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
CLASS :
<span style="font-family: 宋体;">注释在</span>
class
<span style="font-family: 宋体;">文件中可用，但会被</span>
VM
<span style="font-family: 宋体;">丢弃</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
RUNTIME : VM
<span style="font-family: 宋体;">将在运行时也保留注释，因此可以通过反射机制读取注释的信息。</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
@Documented
<span style="font-family: 宋体;">将注释包含在</span>
JavaDoc
<span style="font-family: 宋体;">中</span></font></p>
<p style="line-height: 200%; text-indent: 21pt; margin: 0cm 0cm 0pt;" class="MsoNormal"><font color="#000000">
@Inheried
<span style="font-family: 宋体;">允许子类继承父类中的注释。</span></font></p>
<br />
<img src ="http://www.blogjava.net/asdtiang/aggbug/314966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-03-09 16:30 <a href="http://www.blogjava.net/asdtiang/archive/2010/03/09/314966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 元数据学习笔记1----什么是元数据（转）</title><link>http://www.blogjava.net/asdtiang/archive/2010/03/09/314963.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Tue, 09 Mar 2010 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/03/09/314963.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/314963.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/03/09/314963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/314963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/314963.html</trackback:ping><description><![CDATA[<div style="margin: auto 0cm;"><font size="4">元数据是关于数据的数据。在编程语言上下文中，元数据是
添加到程序元素如方法、字段、类和包上的额外信息。</font></div>
<div style="margin: 15pt 0cm 9pt; line-height: 172%;"><strong><font size="4"><font size="5">元数据的作用</font></font></strong></div>
<ul>
    <li>
    <div style="margin: 15pt 0cm 9pt; line-height: 172%;"><font size="4">&nbsp;一般来说，元数据可以用于创建文档，跟踪代码中的依赖
    性，执行编译时检查，代码分析。</font></div>
    </li>
    <li>
    <div style="margin: 15pt 0cm 9pt; line-height: 172%;"><font size="4">元数据还可用于协助程序元素与框架或者EJB、
    EMF 和 TestNG这样的工具之间的通信。EJB
    3.0就广泛地应用了Java元数据，通过元数据来实现声明性请求企业服务，依赖性以及资源注入，消除了严格的EJB组件模型约束，并且取代了复杂的
    XML配置文件。</font></div>
    </li>
    <li>
    <div style="margin: 15pt 0cm 9pt; line-height: 172%;"><font size="4">元数据甚至使我们可以不用修改核心语言，就能够在 Java
    语言中添加新功能，使核心语言成为一种开放式语言。在纯面向对象的语言中实现AOP就是使用元数据进行语言扩展的一个很好的例子。
    AspectWerkz、JBoss AOP以及AspectJ5
    使用元数据将类的语义转换为一个aspect、将数据字段转换为一个pointcut、将方法转换为一个advice，等等。</font></div>
    </li>
</ul>
<div style="margin: 15pt 0cm 9pt; line-height: 172%;"><strong><font size="4"><font size="5">Java</font><font size="5">平台的元数据</font></font></strong></div>
<div><font size="4">Java 元数据（Annotation）是 J2SE 5.0
（研发历时近三年，于2004年9月30日正式发布，代号为&#8220;Tiger&#8221;)新增加的功能之一，它在JSR-175规范中有详细定义。该机制允许在
Java
代码中添加自定义注释，并允许通过反射（reflection），以编程方式访问元数据注释。通过提供为程序元素附加额外数据的标准方法，元数据功能具有
简化和改进许多应用程序开发领域的潜在能力，其中包括配置管理、框架实现和代码生成。</font></div>
<div><font size="4">&nbsp;</font></div>
<div><font size="4">Annotation不直接影响程序的语义。然而，开发和部署工具可以读取这些注释，并以某种形式处理这些注释，可能生成其他
Java源程序、XML配置文件或者要与包含注释的程序一起使用的其他组件，从而影响运行状态的程序的语义。注释可以从源代码中读取，从编译后
的.class文件中读取，也可以通过反射机制在运行时读取。</font></div>
<div><font size="4">&nbsp;</font></div>
<div><font size="4">Annotation具有以下的一些特点：</font></div>
<ul>
    <li><font size="4">&nbsp;元数据以标签的形式存在于Java代码中。&nbsp;</font>
    </li>
    <li><font size="4">&nbsp;元
    数据描述的信息是类型安全的，即元数据内部的字段都是有明确类型的。&nbsp;</font> </li>
    <li><font size="4">&nbsp;元数据需要编译器之外的工具额外的处理用来生成其它的程
    序部件。&nbsp;</font> </li>
    <li><font size="4">&nbsp;元数据可以只存在于Java源代码级别，也可以存在于编译之后的Class文件内部。</font> </li>
</ul>
<div><font size="4">事实上，早在JDK5.0推出语言级的元数据机制Annotation以前，就一直存在对元数据的需求。但是由于没有提供表达元数据
的标准机制，出现了各种解决方案。下面罗列了一些例子</font></div>
<ul>
    <li><font size="4">&nbsp;transient 关键字&nbsp;</font> </li>
    <li><font size="4">&nbsp;Serializable
    标记接口</font> </li>
    <li><font size="4">&nbsp;xml 部署描述文件&nbsp;</font> </li>
    <li><font size="4">manifest.mf
    文件&nbsp;</font><font size="4"><span style="font: 7pt 'Times New Roman';">&nbsp;&nbsp;&nbsp;
    </span></font></li>
    <li><font size="4">Javadoc 标记（将文档直接写在源程序里，极大的方便了文档的编写）</font> </li>
    <li><font size="4">&nbsp;XDoclet（使
    用类似于JavaDoc的语法撰写描述信息，并使用工具生成描述文件）</font> </li>
</ul>
<div><font size="4">这
些方法都存在一定的局限性，比如使用关键字不具有扩展性，用户自定义新的关键字；标记接口没有提供额外的信息，它们不能带有参数，并且只能处理类，而不能
处理字段或方法或包。Javadoc和XDoclet标记不会被编译器检查。</font></div>
<div><font size="4">&nbsp;</font></div>
<div><font size="4">最后，我们再详细的对比一下Annotation和XML部署描述文件的优劣</font></div>
<ul>
    <li><font size="4">XML配置文件与代码文件分离，不利于一致性维护，缺乏在运行时的反射机制。而Annotation与代码一起被编译器处理，并能够
    在运行时访问。</font> </li>
    <li><font size="4">通常XML配置文件都很复杂而且冗长，为了配置代码，XML文
    件必须复制许多信息：比如代码中类名字和方法名字。Java注释则不同，它是代码的一部分，不需要额外的引用就可以指明配置信息。</font> </li>
    <li><font size="4">XML配置文件是文本文件，没有显式的类型支持，需要到运行时刻才能发现隐藏的错误。而
    Annotation是类型安全的，它会被编译器检查。</font><font size="4"><span style="font: 7pt 'Times New Roman';">&nbsp;&nbsp;</span></font> </li>
    <li><font size="4">XML文件可以表达复杂的关系，但是在注释中我们却很难表达
    复杂的或层次的结构。</font> </li>
    <li><font size="4">&nbsp;XML配置文件是在代码之外被单独处理的，也就是说基于XML的配置信息不是硬编码的，可以部
    署的时候进行修改。而修改Annotation则需要进行重新编译，不过我们可以利用AOP提供的机制为已有的代码添加Annotation。通过部署不
    同的AOP模块，就能使代码具有不同的Annotation，但比起直接修改XML显得复杂。</font> </li>
</ul>
<span style="font-size: 12pt;"><span style="font-size: 12pt;"><font size="4">总
而言之，注释是简单易用的，并且对大多数应用来说已经足够了。而XML文件更复杂，但具有部署的灵活性，因而被用来处理与部署相关的决策。注释与XML配
置文件可以一起使用。由于注释只能保存相当少的配置信息，只有预先集成的框架组件（类似在框架组件中已经完成了大多数预备工作）可以广泛地把注释作为配置
选项。而XML配置文件作为一个可选的重载机制，可以用于改变注释的默认行为。
</font></span></span>
<img src ="http://www.blogjava.net/asdtiang/aggbug/314963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-03-09 16:25 <a href="http://www.blogjava.net/asdtiang/archive/2010/03/09/314963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swing皮肤包使用及样例</title><link>http://www.blogjava.net/asdtiang/archive/2010/02/28/314093.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Sun, 28 Feb 2010 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/asdtiang/archive/2010/02/28/314093.html</guid><wfw:comment>http://www.blogjava.net/asdtiang/comments/314093.html</wfw:comment><comments>http://www.blogjava.net/asdtiang/archive/2010/02/28/314093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/asdtiang/comments/commentRss/314093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/asdtiang/services/trackbacks/314093.html</trackback:ping><description><![CDATA[咋天有好友问了下swing皮肤包的问题，晚上学习了下，写出来供大家参考。（以前没玩过，不要笑）<br />
<br />
<a href="http://javootoo.l2fprod.com/index.html">http://javootoo.l2fprod.com/index.html</a>&nbsp; 该网站上有收费和开源的皮肤包。<br />
<br />
加载皮肤包的代码在这里简单说下，加入JAR包，在窗体加载代码前加入以下代码，窗体最好以线程启动。<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;startup()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIManager.setLookAndFeel(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;NapkinLookAndFeel());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///每个皮肤包都有一个****LookAndFeel类，查下文档或看下JAR都能找到，在这里改下就可以了<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(UnsupportedLookAndFeelException&nbsp;ex)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logger.getLogger(TestSkin1View.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">.getName()).log(Level.SEVERE,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;ex);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TestSkin1View(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
我的环境是NetBean6.8<br />
<br />
代码就不用多说了，来看下效果。substance有BUG，它不是完全开源的，不过它的皮肤包很多<br />
<br />
<h2><span style="color: red;">Napkin Look &amp; Feel</span></h2>
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/napkinlaf.jpg" height="559" width="699" /><br />
<br />
<h1>Liquid look &amp; feel</h1>
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/Liquidlookfeel.png" height="479" width="585" /><br />
<br />
<span style="color: red;"><span style="font-size: 14pt;"><span style="font-family: 新宋体;">idw-gpl</span></span></span><br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/idw-gp.png" height="489" width="579" /><br />
<br />
<br />
<h2><span style="color: red;">JTattoo</span></h2>
<br />
<pre>com.jtattoo.plaf.smart.SmartLookAndFeel</pre>
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/JTattoo1.png" height="494" width="583" /><br />
com.jtattoo.plaf.bernstein.BernsteinLookAndFeel<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/JTattoo2.png" height="490" width="581" /><br />
<br />
<h2></h2>
<h2><span style="color: red;">Squareness Look and Feel</span></h2>
<br />
net.beeger.squareness.SquarenessLookAndFeel<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/asdtiang/SquarenessLookandFeel.png" height="491" width="580" /><br />
<br />
<br />
<br />
<h2></h2>
<br />
<img src ="http://www.blogjava.net/asdtiang/aggbug/314093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/asdtiang/" target="_blank">asdtiang</a> 2010-02-28 10:04 <a href="http://www.blogjava.net/asdtiang/archive/2010/02/28/314093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>