<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>fangfeixue</title>
    <description></description>
    <link>http://fangfeixue.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>[转]Apache+PHP+MySQL在Windows XP下的安装与配置</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/195368" style="color:red;">http://fangfeixue.javaeye.com/blog/195368</a>&nbsp;
          发表时间: 2008年05月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><a href="http://blog.csdn.net/lixianlin/archive/2008/04/07/2257971.aspx" title="原文" target="_blank">原文</a></p>
<p><span style="color: #008080; font-size: small;">网上有很多类似的文章，要么过时了，要么不全面，新手看了很难懂，而且不明白其中的道理。因为我也是刚接触不久，深有体会，所以写下了这篇文章，希望对新手有所帮助。<br />
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝相关信息＝＝＝＝＝＝＝＝＝＝＝＝＝<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 操作系统：Windows XP SP2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS：未安装<br />
Apache版本：2.2.8&nbsp;&nbsp;&nbsp; <a href="http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.2.8-win32-x86-openssl-0.9.8g.msi" target="_blank">下载</a>
 (安装在C:\Program Files\Apache Software Foundation\Apache2.2)<br />
&nbsp;&nbsp;&nbsp; &nbsp;PHP版本：5.2.5&nbsp;&nbsp;&nbsp; <a href="http://cn.php.net/distributions/php-5.2.5-Win32.zip" target="_blank">下载</a>
 (安装在C:\php)<br />
MySQL版本：5.0.51a<a href="http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.0/mysql-5.0.51a-win32.zip" target="_blank">下载</a>
 (安装在C:\Program Files\MySQL\MySQL Server 5.0)</span>
<span style="font-size: small;"><br />
<span style="color: #008080;">＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝<br />
</span>
<br />
软件的安装很简单，按提示一步一步操作，一般不会出什么问题，这里略过，主要讲一下如何配置。软件安装成功后，在IE地址栏中输入</span>
<a href="http://localhost/"><span style="font-size: small;">http://localhost</span>
</a>
<span style="font-size: small;">测试应该会看到&ldquo;It works!&rdquo;，说明Apache安装是成功的。<strong><span style="color: #339966;">你应该根据你的安装路径做相应的修改。<br />
</span>
</strong>
<br />
<strong><span style="font-size: medium;">(1)httpd.conf配置</span>
</strong>
<br />
打开httpd.conf，找到#LoadModule vhost_alias_module modules/mod_vhost_alias.so，在它的后面添加以下内容：<br />
</span>
<span style="font-size: small;"><strong><span style="color: #ff0000;">LoadModule php5_module &quot;C:/php/php5apache2_2.dll&quot;<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
PHPIniDir &quot;C:/php&quot;</span>
</strong>
<br />
<br />
找到DocumentRoot &quot;C:/Program Files/Apache Software Foundation/Apache2.2/htdocs&quot;，修改成Web文件的存放路径，如我的Web文件存放在F:/WebRoot目录下，就修改成：<br />
<strong><span style="color: #ff0000;">DocumentRoot &quot;F:/WebRoot&quot;</span>
</strong>
<br />
<br />
找到&lt;Directory &quot;C:/Program Files/Apache Software Foundation/Apache2.2/htdocs&quot;&gt;，修改成Web文件的存放路径，跟上面的路径相同，修改成：<br />
<strong><span style="color: #ff0000;">&lt;Directory &quot;F:/WebRoot&quot;&gt;<br />
<br />
</span>
</strong>
</span>
<span style="font-size: small;">找到DirectoryIndex index.html，添加index.php：<br />
<strong><span style="color: #ff0000;">DirectoryIndex index.html index.php</span>
</strong>
<br />
<br />
<strong><span style="font-size: medium;">(2)php.ini配置</span>
</strong>
<br />
在PHP
的安装目录下有php.ini-dist(默认配置)和php.ini-recommended(推荐配置)两个预置的配置文件，它们之间的区别是：推荐
配置在安全性方面有所加强。根据需要选择，初始配置时最好选择php.ini-dist(因为它是默认的*^_^*)，复制并将其重命名为
php.ini，就放在PHP的安装目录。<span style="color: #339966;">(注意：php.ini-recommended中的
short_open_tag是关闭的，这意味着标签&lt;?
?&gt;中的内容是不能被解析的，这种情况下查看PHP网页的源文件，看到的内容会跟你的源代码是一样的，正确的方法是使用&lt;?php
?&gt;，也推荐大家使用此标签。)<br />
</span>
<br />
打开php.ini，找到extension_dir = &quot;./&quot;，修改成：<br />
</span>
<span style="font-size: small;"><span style="color: #ff0000;"><strong>extension_dir = &quot;C:/php/ext&quot;<br />
<br />
</strong>
</span>
找到;extension=php_mysql.dll，把;去掉：<br />
</span>
<span style="color: #ff0000;"><strong><span style="font-size: small;">extension=php_mysql.dll</span>
</strong>
<span style="color: #000000;"><span style="font-size: small;"><br />
<br />
<strong><span style="font-size: medium;">(3)libmysql.dll<br />
</span>
</strong>
</span>
</span>
</span>
<span style="color: #ff0000;"><span style="color: #000000;"><span style="font-size: small;">将PHP目录下的libmysql.dll复制到%SystemRoot%/System32/目录中。用MySQL的bin目录中的libmysql.dll也行。<br />
<br />
<span style="color: #ff6600;"><strong><span style="color: #ff00ff;">注意：</span>
<br />
</strong>
1.
由于我安装的Apache版本是2.2.8，所以LoadModule语句应选择php5apache2_2.dll，否则会出现错误&ldquo;The
request operation has
failed!&rdquo;。网上很多相关文章中的Apache版本都2.0.XX的，他们选用的模块都是php5apache2.dll，不能够照搬，应该根据实
际使用的Apache版本来选择该使用哪个dll文件。<br />
<br />
2.PHPIniDir非常重要，其实PHPIniDir就是设置
&ldquo;php.ini&rdquo;配置文件的路径，在httpd.conf中配置PHPIniDir，或者在注册表中设置，或者设置PHPRC环境变量，或者直接复制
php.ini到%SystemRoot%目录中都是可行的。php.ini是按&ldquo;httpd.conf中PHPIniDir指定的路径－＞<span style="color: #ff6600;">HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows注册表位置)－＞PHPRC环境变量－＞当前工作目录(对于CLI)－＞%SystemRoot%目录&rdquo;的顺序来搜索的</span>
。一个好的办法是用phpinfo()来检查php.ini文件的路径是否配置正确，看<span style="color: #ff6600;">&ldquo;Configuration File (php.ini) Path&rdquo;和&ldquo;<span style="color: #000000;"><span style="color: #ff6600;">Loaded Configuration File</span>
 </span>
&rdquo;。如果配置不正确或没有配置</span>
<span style="color: #ff6600;">&ldquo;Loaded Configuration File&rdquo;将显示&ldquo;none&rdquo; ，如果没有配置PHPIniDir，则按默认的设置加载。<br />
</span>
<br />
3.有些文章中说配置中牵涉到路径时该用&ldquo;/&rdquo;或&ldquo;\&rdquo;的问题，我测试好象并无问题，正反斜杠都没问题，不知道在低版本或Linux中是否也一样。<br />
<br />
4.不要忘了配置php.ini文件中的</span>
<span style="color: #ff6600;">extension_dir和去掉;</span>
<span style="color: #ff6600;">extension=php_mysql.dll前面的分号。<br />
<br />
5.错误&ldquo;</span>
<span style="color: #ff6600;">Fatal
error: Call to undefined function mysql_connect() in XX on line
YY&rdquo;的大概意思是&ldquo;致命错误：在XX文件YY行调用了未定义的函数mysql_connect()&rdquo;，很显然是没有加载libmysql.dll引起
的，跟php.ini文件的配置密切相关的，如果找不到libmysql.dll也会导致此错误(换句话说，就是libmysql.dll放的位置有问
题。看(3)中说明)。<br />
<br />
6.以上仅是个人之见，要想获得更多的信息，请访问他们的官方网站。<br />
<br />
<span style="color: #0000ff;">附：<br />
Apache官网：</span>
<a href="http://www.apache.org/"><span style="color: #0000ff;">http://www.apache.org/</span>
</a>
<span style="font-size: small;"><br />
<span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp; PHP官网：</span>
<a href="http://www.php.net/"><span style="color: #0000ff;">http://www.php.net/</span>
</a>
<br />
<span style="color: #0000ff;">MySQL官网：</span>
<a href="http://www.mysql.com/"><span style="color: #0000ff;">http://www.mysql.com/</span>
</a>
</span>
</span>
</span>
</span>
</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/195368#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 21 May 2008 17:39:45 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/195368</link>
        <guid>http://fangfeixue.javaeye.com/blog/195368</guid>
      </item>
          <item>
        <title>[转]javascript[js]获取url参数的代码</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/194637" style="color:red;">http://fangfeixue.javaeye.com/blog/194637</a>&nbsp;
          发表时间: 2008年05月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="js"></pre>
<p>
			第一，正则表达式，直接找出参数等号右边的值即可。但是，如果该参数后还有&amp;就不可行。</p>
<pre name="code" class="js">    &lt;script language=&quot;javascript&quot;&gt;
    var str=window.location.href; 
    var es=/clid=/; 
    es.exec(str); 
    var right=RegExp.rightContext; 
    if(right==&quot;1&quot;)
    {
    sub_nav_4.style.display = &quot;block&quot;;
    li4.style.background = &quot;#a1ca00&quot;;
    }
    &lt;/script&gt;</pre>
<p>&nbsp;
第二，把能找到的参数都付给argsarr数组，将来可以用argsarr[i]进行相应的访问，方法不错，太长，参数不容易记忆。</p>
<pre name="code" class="js">/**//**
      * 提取URL中的参数
      */
     function getArgs()
     {
       //加上substring的意义是去掉查询字符串中的？号。
       //var query = window.location.search.substring(1);
       
       //定义一个数组，用于存放取出来的字符串参数。
       var argsArr = new Object();
       
       //获取URL中的查询字符串参数
       var query = window.location.search;
       query = query.substring(1);
       
       //这里的pairs是一个字符串数组
       var pairs = query.split(&quot;&amp;&quot;);//name=myname&amp;password=1234&amp;sex=male&amp;address=nanjing
       
       for(var i=0;i&lt;pairs.length;i++)
       {
         var sign = pairs[i].indexOf(&quot;=&quot;); 
         //如果没有找到=号，那么就跳过，跳到下一个字符串（下一个循环）。
         if(sign == -1)
         {
           continue; 
         }
         
         var aKey = pairs[i].substring(0,sign);
         var aValue = pairs[i].substring(sign+1);       
         
         argsArr[aKey] = aValue;
       }
       
       return argsArr;
     } </pre>
<p>&nbsp;
第三，最简单的方法，类似第二种，不过没有创建数组存参数，可直接访问参数的名字，容易看懂。</p>
<pre name="code" class="js">            &lt;script language=&quot;javascript&quot;&gt;
            function getarg()
            {
            var url = unescape(window.location.href);
            var allargs = url.split(&quot;?&quot;)[1];
            var args = allargs.split(&quot;&amp;&quot;);
            for(var i=0; i&lt;args.length; i++)
            {
            var arg = args[i].split(&quot;=&quot;);
            eval('this.'+arg[0]+'=&quot;'+arg[1]+'&quot;;');
            }
            } 
            var urlarg=new getarg();
            if(urlarg.clid==&quot;1&quot;)
                {
                sub_nav_6.style.display = &quot;block&quot;;
                li6.style.background = &quot;#a1ca00&quot;;
                }
            &lt;/script&gt;</pre>
&nbsp;
<pre name="code" class="js">&lt;script language = javascript&gt;
function request(paras){
var url = location.href; 
var paraString = url.substring(url.indexOf(&quot;?&quot;)+1,url.length).split(&quot;&amp;&quot;); 
var paraObj = {} 
for (i=0; j=paraString[i]; i++){ 
paraObj[j.substring(0,j.indexOf(&quot;=&quot;)).toLowerCase()] = j.substring(j.indexOf(&quot;=&quot;)+1,j.length); 
} 
var returnValue = paraObj[paras.toLowerCase()]; 
if(typeof(returnValue)==&quot;undefined&quot;){ 
return &quot;&quot;; 
}else{ 
return returnValue; 
} 
}
var theurl=request('url');
var theimg=request('img');
document.writeln(&quot;&lt;a href='&quot;  + theurl + &quot;' target=_blank&gt;&lt;img src=&quot; + theimg + &quot; width=750 height=450 border=0&gt;&lt;/a&gt;&quot;);
&lt;/script&gt;</pre>
&nbsp;
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/194637#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 19 May 2008 22:29:08 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/194637</link>
        <guid>http://fangfeixue.javaeye.com/blog/194637</guid>
      </item>
          <item>
        <title>刻录机读盘慢的原因</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/193571" style="color:red;">http://fangfeixue.javaeye.com/blog/193571</a>&nbsp;
          发表时间: 2008年05月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1、主板驱动有没有装好，装好打开dma模式应该可以正常使用；
<br />
2、主板cmos里面IDE模式有没有设定好，有没有强制使用pio模式，如有，修改；
<br />
3、看看硬盘有没有打开dma模式，如有，与光驱更换数据线插槽使用，如没有，检查cmos设置；
<br />
4、光驱是什么接口？IDE接口还是SATA？更换数据线再试试；
<br />
5、硬盘和光驱不能用同一条IDE数据线.</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/193571#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 16 May 2008 11:07:32 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/193571</link>
        <guid>http://fangfeixue.javaeye.com/blog/193571</guid>
      </item>
          <item>
        <title>&lt;转&gt;chm 文件打不开解决方法总结 </title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/191135" style="color:red;">http://fangfeixue.javaeye.com/blog/191135</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>最近经常听到朋友说<span class="hilite1">chm</span>
文件<span class="hilite2">打不开</span>
，自己也经常遇到，网上搜索后把方法总结：
<br />
<br />
一.如果不能打开，可这样恢复文件关联：
<br />
1、开始运行，输入：regsvr32 C:\windows\system32\hhctrl.ocx ，确定，重新关联文件。
<br />
2、执行一下windows目录里的hh.exe 。
<br />
有时候<span class="hilite1">chm</span>
文件放在中文目录就不行。包括中文<span class="hilite1">chm</span>
名字。试着把文件考出来.中文名字一改.
<br />
<br />
二.1.在微软网站上下载hhupd.exe,安装hh.exe后并运行。
<br />
2.实际上,下载hhupd.exe后,运行后就可以了。这个东西大小为461kb 3.在c:\windows\system32里找到&ldquo;Hhctrl.ocx&rdquo;文件,然后运行:&ldquo;regsvr32&ldquo;c:\windows\system32\hhctrl.ocx&hellip;
<br />
网上的解决方法不可行，下载不了hhupd.exe.我直接执行regsvr32 c:\windows\system32\hhctrl.ocx就ok了。
<br />
<br />
解决方法2是：
<br />
1，右键关联<span class="hilite1">chm</span>
文件的&ldquo;打开方式&rdquo;到\Windows\HH.exe
<br />
2，在命令行运行regsvr32 itss.dll
<br />
3，在命令行运行regsvr32 hhctrl.ocx
<br />
<br />
三.也许是 HH.EXE 所必需的某个组件出了问题。但是不知道 HH.EXE 会用到些什么组件，所以上网查了一下，有人建议重新注册
hhctrl.ocx。我在系统目录下找到了 hhctrl.ocx，重新注册一下 hhctrl.ocx 试试：regsvr32
hhctrl.ocx。依然不能正常阅读 <span class="hilite1">CHM</span>
。
<br />
<br />
既然如此，很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议，这些协议应该是由某个 DLL
文件提供服务的。问题是，是什么 DLL 呢？于是再用 Google 搜索 ms-its 协议。终于找到了，原来是一个 itss.dll
在做服务。不过网上查到的解决方案是修改注册表。
<br />
<br />
要修改 ItssRestrictions 注册表项以启用特定的安全区域，请按照下列步骤操作：
<br />
1. 单击&ldquo;开始&rdquo;，单击&ldquo;运行&rdquo;，键入 regedit，然后单击&ldquo;确定&rdquo;。
<br />
2. 找到并单击下面的子项：
<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
<br />
注意：如果该注册表子项不存在，则使用方法 1 中的步骤 2a 和 2b 创建该子项。
<br />
3. 右键单击&ldquo;ItssRestrictions&rdquo;子项，指向&ldquo;新建&rdquo;，然后单击&ldquo;DWORD 值&rdquo;。
<br />
4. 键入 MaxAllowedZone，然后按 Enter 键。
<br />
5. 右键单击&ldquo;MaxAllowedZone&rdquo;值，然后单击&ldquo;修改&rdquo;。
<br />
6. 在&ldquo;数值数据&rdquo;框中，键入 0 至 4 之间的一个数字，然后单击&ldquo;确定&rdquo;。
<br />
7. 退出注册表编辑器。
<br />
注意：默认情况下，&ldquo;MaxAllowedZone&rdquo;值设置为 0。下表摘要列出了&ldquo;MaxAllowedZone&rdquo;值对各个项的解释。
MaxAllowedZone 本地计算机区域 本地 Intranet 区域 受信任的站点区域 Internet 区域 受限站点区域
<br />
0 允许 阻止 阻止 阻止 阻止
<br />
1 允许 允许 阻止 阻止 阻止
<br />
2 允许 允许 允许 阻止 阻止
<br />
3 允许 允许 允许 允许 阻止
<br />
4 允许 允许 允许 允许 允许
<br />
<br />
注册表修改之后还是不能打开！
<br />
试试偷懒的办法吧&mdash;&mdash;重新注册DLL：regsvr32 itss.dll。
<br />
<br />
四.操作系统的语言不是中文（经常出现这种情况）
<br />
1.看看你的 OS 是不是中文的 OS ？ 如果你的 OS 不是 中文的，那么到 Control Pane 中看看那个&ldquo;语言和区域&rdquo; 的option，打开看看&ldquo;区域选项&rdquo; 是不是中国，这个选项对一些软件还是有一些影像的。
<br />
2.如果你的<span class="hilite1">CHM</span>
文件是中文的，可能存在缺省语言设置问题。可能你用是的英文版的WINDOWS，把RAGIONAL AND LANGUAGE OPTIONS中的LANGUAGE 和ADVANCED 中的语言和国家选项都设置成中文（PRC）。就可以了
<br />
<br />
五.可以试试改变此文件的名字.比如去掉多余的符号
<br />
<br />
六.如果都不能，最后一招就是，把电子书<span class="hilite1">CHM</span>
格式转换为PDF文件：
<br />
<span class="hilite1">CHM</span>
 Converter是一个专门转换<span class="hilite1">CHM</span>
格式的文件，它可以把<span class="hilite1">CHM</span>
文件转换成PDF、TXT、DOC等常用的格式。
<br />
<a href="http://dl.pconline.com.cn/html/1/6/dlid" target="_blank">http://dl.pconline.com.cn/html/1/6/dlid</a>=11896&amp;dltypeid=1&amp;pn=0&amp;.html
<br />
<br />
下载后运行软件，软件默认是英文界面，点击菜单&ldquo;Tools-Language&rdquo;，在弹出的对话框中选择&ldquo;Chinese_Simplified&rdquo;就可以换成中文了，软件还支持其他很多语言。
<br />
<br />
选好语言后点击左上角的&ldquo;打开&rdquo;按钮来选择要转换的<span class="hilite1">CHM</span>
文件，如果<span class="hilite1">CHM</span>
文
件是英文版的，那么在旁边的下拉菜单中就选择
&ldquo;DEFAILT_CHARSET&rdquo;，如果是中文的，那需要在下拉菜单中选择&ldquo;GB2312_CHARSET&rdquo;，否则会产生乱码，然后在右面的&ldquo;导出&rdquo;中
来选择要转换的文件类型，软件支持很多格式的文件，如这里选择&ldquo;Word97-2003&rdquo;，最后点击&ldquo;另存数据库为&rdquo;按钮，选择保存的文件夹后就开始进行
转换了。
<br />
<br />
PS: Window2K中不能打开*.<span class="hilite1">chm</span>
文件的解决办法
<br />
这个问题的发生，是由于hhctrl.ocx的版本号出现错误或未正确注册。原因在于安装的其他软件用hhctrl.ocx的旧版本替换了原来的版本。
<br />
IE6SP1中，这个文件的版本号应为5.2.3735.0。可以看看你的系统这个文件的版本号。
<br />
位于winnt/system32这个文件夹。大小504K（英文版本）从其他相同的系统（IE版本也相同）中COPY一份
<br />
粘贴到你的系统相应文件夹中。然后注册一下。
<br />
<br />
注意：
<br />
1、先替换winnt/system32/dllcache文件夹的这个文件
<br />
后替换winnt/system32文件夹里的这个文件
<br />
2、如果看不到这个文件，
<br />
先工具&ndash;文件夹选项中，设置显示隐藏文件
<br />
并设置显示系统文件
<br />
3、注册的方法是
<br />
开始&ndash;运行，输入regsvr32 hhctrl.ocx
<br />
之后出来一个注册成功的对话框，确定然后重启系统。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/191135#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 May 2008 16:41:40 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/191135</link>
        <guid>http://fangfeixue.javaeye.com/blog/191135</guid>
      </item>
          <item>
        <title>网站收藏</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/186491" style="color:red;">http://fangfeixue.javaeye.com/blog/186491</a>&nbsp;
          发表时间: 2008年04月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;<a href="http://www.javaresearch.org/" title="JavaResearch.org" target="_blank"><span style="color: #000000;">JavaResearch.org</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.open-open.com/" title="Java开源大全" target="_blank"><span style="color: #000000;">Java开源大全</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.javafan.net/" title="Java爱好者" target="_blank"><span style="color: #000000;">Java爱好者</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.java3z.com/cwbwebhome/" title="Java学习室" target="_blank"><span style="color: #000000;">Java学习室</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.javazy.com/" title="Java资源网" target="_blank"><span style="color: #000000;">Java资源网</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.mylinux.com.cn/" title="mylinux" target="_blank"><span style="color: #000000;">mylinux</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.easyjf.com/" title="easyjf" target="_blank"><span style="color: #000000;">easyjf</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.agilejava.org/space/" title="agilejava" target="_blank"><span style="color: #000000;">agilejava</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.springside.org.cn/" title="springside" target="_blank"><span style="color: #000000;">springside</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www-128.ibm.com/developerworks/cn/java/" title="IBM中国-" target="_blank"><span style="color: #000000;">IBM中国- Java 技术</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.cnjsp.org/" title="中国JSP技术网站" target="_blank"><span style="color: #000000;">中国JSP技术网站</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.matrix.org.cn/main.shtml" title="Matrix" target="_blank"><span style="color: #000000;">Matrix 与Java共舞</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://java.csdn.net/" title="CSDN-Java专栏" target="_blank"><span style="color: #000000;">CSDN-Java专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.blogjava.net/" title="blogjava" target="_blank"><span style="color: #000000;">blogjava 专注Java技术</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://gceclub.sun.com.cn/" title="SUN中国技术社区" target="_blank"><span style="color: #000000;">SUN中国技术社区</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://tomcat.jaxmao.org/" title="Tomcat中文网" target="_blank"><span style="color: #000000;">Tomcat中文网</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.jb51.net/" title="脚本之家" target="_blank"><span style="color: #000000;">脚本之家</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.jetmaven.net/contents/index/index.php" title="Idea中国" target="_blank"><span style="color: #000000;">Idea中国</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.oksonic.com.cn/" title="oksonic主页" target="_blank"><span style="color: #000000;">oksonic主页</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.ideagrace.com/" title="ideagrace" target="_blank"><span style="color: #000000;">ideagrace</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.java169.com/Article/Index.html" title="Java学院" target="_blank"><span style="color: #000000;">Java学院</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://fanqiang.chinaunix.net/" title="永远的Unix" target="_blank"><span style="color: #000000;">永远的Unix</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://caterpillar.onlyfun.net/Gossip/index.html" title="良葛格學習筆記" target="_blank"><span style="color: #000000;">良葛格學習筆記</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.jiehoo.com/" title="jiehoo" target="_blank"><span style="color: #000000;">jiehoo</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://fanqiang.chinaunix.net/" title="永远的UNIX" target="_blank"><span style="color: #000000;">永远的UNIX</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://fanqiang.chinaunix.net/" title="永远的UNIX" target="_blank"><span style="color: #000000;">永远的UNIX</span>
</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;<a href="http://www.blogjava.net/oksonic/" title="oksonic博客" target="_blank"><span style="color: #000000;">oksonic博客</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/javamxj/" title="分享Java快乐" target="_blank"><span style="color: #000000;">分享Java快乐</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/pengpenglin/" title="pengpenglin的专栏" target="_blank"><span style="color: #000000;">pengpenglin的专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.sina.com.cn/u/1257777603" title="简单" target="_blank"><span style="color: #000000;">简单</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.w3china.org/blog/blog.asp?name=hongrui" title="邢红瑞的blog" target="_blank"><span style="color: #000000;">邢红瑞的blog </span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.w3china.org/blog/blog.asp?name=sixsun" title="sixsun" target="_blank"><span style="color: #000000;">sixsun</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://xinlu88-66.blog.sohu.com/" title="梦的天空" target="_blank"><span style="color: #000000;">梦的天空</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/axman/" title="axman" target="_blank"><span style="color: #000000;">axman</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/dacula/" title="翔宇的blog" target="_blank"><span style="color: #000000;">翔宇的blog</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/cm4ever" title="小P的专栏" target="_blank"><span style="color: #000000;">小P的专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://swingchen.bokee.com/index.html" title="swingchen" target="_blank"><span style="color: #000000;">swingchen</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/chensheng913/" title="键者天行" target="_blank"><span style="color: #000000;">键者天行</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/emag_java" title="CSDN社区-Java杂志" target="_blank"><span style="color: #000000;">CSDN社区-Java杂志</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/emag_oracle" title="CSDN社区-Oracle杂志" target="_blank"><span style="color: #000000;">CSDN社区-Oracle杂志</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.blogjava.net/max/" title="max" target="_blank"><span style="color: #000000;">max on java</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/caterpillar_here" title="林信良（良葛格）的专栏" target="_blank"><span style="color: #000000;">林信良（良葛格）的专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/pengjj/" title="彭建军的专栏" target="_blank"><span style="color: #000000;">彭建军的专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://reonlyrun.cnblogs.com/" title=".NET,PL/SQL,ASP.NET" target="_blank"><span style="color: #000000;">reonlyrun（.NET）</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.blogjava.net/ctguzhupan/" title="e代剑客" target="_blank"><span style="color: #000000;">e代剑客</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/pengpenglin/" title="java" target="_blank"><span style="color: #000000;">pengpenglin</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.blogjava.net/crazycy/" title="Java" target="_blank"><span style="color: #000000;">崔毅</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/topsjava/" title="DB2" target="_blank"><span style="color: #000000;">topsjava的专栏</span>
</a>
<br />
&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/andunkafei/" title="安顿咖啡" target="_blank"><span style="color: #000000;">安顿咖啡</span>
</a></p>
<p>&nbsp;</p>
<div><a href="http://www.vipcn.com/" target="_blank"><span style="color: #000000;">清风网络</span>
</a>
 </div>
<div><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><a href="http://wiki.javascud.org/display/ww2cndoc/WebWork" target="_blank"><span style="color: #000000;">WebWork中文文档</span>
</a>
</span>
</div>
<div><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><a href="http://wiki.javascud.org/display/ww2cndoc/FreeMarker" target="_blank"><span style="color: #000000;">FreeMarker中文文档</span>
</a>
<br />
<span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><a href="http://wiki.javascud.org/pages/viewpage.action?pageId=49" target="_blank"><span style="color: #000000;">DBHelper中文文档</span>
</a>
</span>
</span>
</span>
</div>
<div><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><span class="pagetitle" style="margin: 0px; line-height: 1; text-decoration: none;"><a href="http://www.jactiongroup.net/reference2/html/" target="_blank"><span style="color: #000000;">Spring 2 参考手册</span>
</a>
</span>
</span>
</span>
&nbsp;</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/186491#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 24 Apr 2008 18:33:09 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/186491</link>
        <guid>http://fangfeixue.javaeye.com/blog/186491</guid>
      </item>
          <item>
        <title>国外源码站网址</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/182624" style="color:red;">http://fangfeixue.javaeye.com/blog/182624</a>&nbsp;
          发表时间: 2008年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><strong><span class="smalltxt"><span class="bold">国外源码站网址</span></span><br /><br /></strong><span style="font-size: 12px;">Php<br /><a href="http://www.php.net/" target="_blank"><span style="color: #003366;">http://www.php.net</span></a><br /><a href="http://www.onlyphp.com/" target="_blank"><span style="color: #003366;">http://www.onlyphp.com</span></a><br /><a href="http://www.phplistings.com/" target="_blank"><span style="color: #003366;">http://www.phplistings.com</span></a><br /><a href="http://php.resourceindex.com/" target="_blank"><span style="color: #003366;">http://php.resourceindex.com/</span></a><br /><a href="http://www.hotscripts.com/PHP/" target="_blank"><span style="color: #003366;">http://www.hotscripts.com/PHP/</span></a><br /><a href="http://phpbuilder.com/snippet/" target="_blank"><span style="color: #003366;">http://phpbuilder.com/snippet/</span></a><br /><a href="http://php-scripts.com/" target="_blank"><span style="color: #003366;">http://php-scripts.com/</span></a><br /><a href="http://www.0php.com/" target="_blank"><span style="color: #003366;">http://www.0php.com/</span></a><br /><br /><br />ASP<br /><a href="http://aspin.com/" target="_blank"><span style="color: #003366;">http://aspin.com/</span></a><br /><a href="http://www.hotscripts.com/ASP/" target="_blank"><span style="color: #003366;">http://www.hotscripts.com/ASP/</span></a><br /><a href="http://www.scriptnow.com/ASP/Scripts_and_Components/" target="_blank"><span style="color: #003366;">http://www.scriptnow.com/ASP/Scripts_and_Components/</span></a><br /><a href="http://www.dynu.com/dynuencrypt.asp" target="_blank"><span style="color: #003366;">http://www.dynu.com/dynuencrypt.asp</span></a><br /><a href="http://www.webwizguide.info/asp/default.asp" target="_blank"><span style="color: #003366;">http://www.webwizguide.info/asp/default.asp</span></a><br /><a href="http://www.aspobjects.com/ASP_Scripts/" target="_blank"><span style="color: #003366;">http://www.aspobjects.com/ASP_Scripts/</span></a><br /><a href="http://www.thecgisite.com/ASP/" target="_blank"><span style="color: #003366;">http://www.thecgisite.com/ASP/</span></a><br /><a href="http://www.aspwire.com/" target="_blank"><span style="color: #003366;">http://www.aspwire.com/</span></a><br /><a href="http://www.script-index.com/asp.asp" target="_blank"><span style="color: #003366;">http://www.script-index.com/asp.asp</span></a><br /></span></p>
<table class="tableborder" cellspacing="1" border="0" align="center" width="100%" cellpadding="4" style="border-top: medium none; margin-top: -1px; border-bottom: medium none;">
<tbody>
<tr class="altbg1" height="100%">
<td valign="top" width="79%">
<table cellspacing="0" border="0" width="100%" cellpadding="0" style="table-layout: fixed; height: 100%;">
<tbody>
<tr>
<td valign="top"><span style="font-size: 12px;"><br />Perl &amp; Cgi<br /><a href="http://www.hotscripts.com/Perl/" target="_blank"><span style="color: #003366;">http://www.hotscripts.com/Perl/</span></a><br /><a href="http://cgi.resourceindex.com/" target="_blank"><span style="color: #003366;">http://cgi.resourceindex.com/</span></a><br /><a href="http://www.onlycgi.com/" target="_blank"><span style="color: #003366;">http://www.onlycgi.com</span></a><br /><a href="http://www.freescripts.com/scripts/" target="_blank"><span style="color: #003366;">http://www.freescripts.com/scripts/</span></a><br /><a href="http://awsd.com/scripts/" target="_blank"><span style="color: #003366;">http://awsd.com/scripts/</span></a><br /><a href="http://www.mycgiscripts.com/" target="_blank"><span style="color: #003366;">http://www.mycgiscripts.com/</span></a><br /><a href="http://www.smarterscripts.com/" target="_blank"><span style="color: #003366;">http://www.smarterscripts.com/</span></a><br /><a href="http://www.cgiscript.net/" target="_blank"><span style="color: #003366;">http://www.cgiscript.net/</span></a><br /><a href="http://www.cgidir.com/" target="_blank"><span style="color: #003366;">http://www.cgidir.com/</span></a><br /><a href="http://www.perlmasters.com/" target="_blank"><span style="color: #003366;">http://www.perlmasters.com/</span></a><br /><a href="http://www.freescripts.com/scripts/" target="_blank"><span style="color: #003366;">http://www.freescripts.com/scripts/</span></a><br /><a href="http://awsd.com/scripts/" target="_blank"><span style="color: #003366;">http://awsd.com/scripts/</span></a><br /><a href="http://www.dreamcatchersweb.com/scripts/" target="_blank"><span style="color: #003366;">http://www.dreamcatchersweb.com/scripts/</span></a><br /><a href="http://www.bignosebird.com/" target="_blank"><span style="color: #003366;">http://www.bignosebird.com/</span></a><br /><a href="http://www.dcscripts.com/" target="_blank"><span style="color: #003366;">http://www.dcscripts.com/</span></a><br /><a href="http://www.virtualville.com/library/scripts.html" target="_blank"><span style="color: #003366;">http://www.virtualville.com/library/scripts.html</span></a><br /><a href="http://www.perlcoders.com/" target="_blank"><span style="color: #003366;">http://www.perlcoders.com/</span></a><br /><a href="http://www.cgiarchives.com/" target="_blank"><span style="color: #003366;">http://www.cgiarchives.com/</span></a><br /><a href="http://www.icthus.net/CGI-City/" target="_blank"><span style="color: #003366;">http://www.icthus.net/CGI-City/</span></a><br /><br />Remotely Hosted<br /><a href="http://www.bravenet.com/" target="_blank"><span style="color: #003366;">http://www.bravenet.com/</span></a><br /><a href="http://www.cutandpastescripts.com/" target="_blank"><span style="color: #003366;">http://www.cutandpastescripts.com/</span></a><br /><a href="http://www.authpro.com/" target="_blank"><span style="color: #003366;">http://www.authpro.com/</span></a><br /><a href="http://wwwtoolz.com/home/" target="_blank"><span style="color: #003366;">http://wwwtoolz.com/home/</span></a><br /><a href="http://www.bnsoft.net/" target="_blank"><span style="color: #003366;">http://www.bnsoft.net/</span></a><br /><br />Java Scripts<br /><a href="http://www.a1javascripts.com/" target="_blank"><span style="color: #003366;">http://www.a1javascripts.com/</span></a><br /><a href="http://www.javascriptcity.com/scripts/" target="_blank"><span style="color: #003366;">http://www.javascriptcity.com/scripts/</span></a><br /><a href="http://www.java-scripts.net/" target="_blank"><span style="color: #003366;">http://www.java-scripts.net/</span></a><br /><a href="http://webdeveloper.earthweb.com/webjs/" target="_blank"><span style="color: #003366;">http://webdeveloper.earthweb.com/webjs/</span></a><br /><a href="http://www.javascriptkit.com/cutpastejava.shtml" target="_blank"><span style="color: #003366;">http://www.javascriptkit.com/cutpastejava.shtml</span></a><br /><a href="http://www.javafile.com/" target="_blank"><span style="color: #003366;">http://www.javafile.com/</span></a><br /><a href="http://javascript.com/" target="_blank"><span style="color: #003366;">http://javascript.com/</span></a><br /><a href="http://javascript.internet.com/" target="_blank"><span style="color: #003366;">http://javascript.internet.com/</span></a><br /><a href="http://www.j-scripts.com/" target="_blank"><span style="color: #003366;">http://www.j-scripts.com/</span></a><br /><br /><br />综合<br /><a href="http://www.thescripts.com/" target="_blank"><span style="color: #003366;">http://www.thescripts.com</span></a><br /><a href="http://www.onlyscripts.com/" target="_blank"><span style="color: #003366;">http://www.onlyscripts.com/</span></a><br /><a href="http://www.hotscripts.com/" target="_blank"><span style="color: #003366;">http://www.hotscripts.com</span></a><br /><a href="http://www.scriptz.com/" target="_blank"><span style="color: #003366;">http://www.scriptz.com/</span></a><br /><a href="http://www.comscripts.com/" target="_blank"><span style="color: #003366;">http://www.comscripts.com/</span></a><br /><a href="http://www.needscripts.com/" target="_blank"><span style="color: #003366;">http://www.needscripts.com/</span></a><br /><a href="http://www.smesource.com/Scripts/" target="_blank"><span style="color: #003366;">http://www.smesource.com/Scripts/</span></a><br /><a href="http://www.devscripts.com/" target="_blank"><span style="color: #003366;">http://www.devscripts.com/</span></a><br /><a href="http://totalscripts.com/pages/" target="_blank"><span style="color: #003366;">http://totalscripts.com/pages/</span></a><br /><a href="http://www.script-index.com/" target="_blank"><span style="color: #003366;">http://www.script-index.com/</span></a><br /><a href="http://www.scriptnow.com/index.html" target="_blank"><span style="color: #003366;">http://www.scriptnow.com/index.html</span></a><br /><a href="http://www.bigwebmaster.com/" target="_blank"><span style="color: #003366;">http://www.bigwebmaster.com/</span></a></span></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr class="altbg1">
<td valign="middle">&nbsp;</td>
<td valign="bottom">
<table cellspacing="2" border="0" width="100%" cellpadding="0" style="height: 100%;">
<tbody>
<tr class="smalltxt">
<td align="left">&nbsp;&nbsp;<a href="http://www.im286.com/pm.php?action=send&amp;uid=81272" target="_blank"></a>&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<div class="maintable">
<table class="tableborder" cellspacing="1" border="0" align="center" width="100%" cellpadding="4" style="border-top: medium none; margin-top: -1px; border-bottom: medium none;">
<tbody>
<tr>
<td class="singleborder" colspan="2">&nbsp;<span style="font-size: 12px;"><a href="http://www.thecgisite.com/ASP/" target="_blank"><span style="color: #003366;">http://www.thecgisite.com/ASP/</span></a></span></td>
</tr>
</tbody>
</table>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/182624#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 14 Apr 2008 16:32:59 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/182624</link>
        <guid>http://fangfeixue.javaeye.com/blog/182624</guid>
      </item>
          <item>
        <title>免费的Javascript日期输入及选择控件</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/128156" style="color:red;">http://fangfeixue.javaeye.com/blog/128156</a>&nbsp;
          发表时间: 2007年09月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          如题！
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/128156#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Sep 2007 11:07:04 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/128156</link>
        <guid>http://fangfeixue.javaeye.com/blog/128156</guid>
      </item>
          <item>
        <title>jsp重复提交问题 </title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/127347" style="color:red;">http://fangfeixue.javaeye.com/blog/127347</a>&nbsp;
          发表时间: 2007年09月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle"><a href="http://www.blogjava.net/zhip/archive/2007/06/12/123510.html" class="postTitle2" id="viewpost1_TitleUrl">jsp重复提交问题</a> </div>
<p>看了网上的，有几种方法：<br />
1 在你的表单页里HEAD区加入这段代码: <br />
&lt;META HTTP-EQUIV=&quot;pragma&quot; CONTENT=&quot;no-cache&quot;&gt; <br />
&lt;META HTTP-EQUIV=&quot;Cache-Control&quot; CONTENT=&quot;no-cache, must-revalidate&quot;&gt; <br />
&lt;META HTTP-EQUIV=&quot;expires&quot; CONTENT=&quot;Wed, 26 Feb 1997 08:21:57 GMT&quot;&gt;<br />
2 <br />
生成一个令牌保存在用户session中，在form中加一个hidden域，显示该令 <br />
牌的值，form提交后重新生成一个新的令牌，将用户提交的令牌和session <br />
中的令牌比较，如相同则是重复提交<br />
3<br />
在你的服务器端控件的代码中使用Response.Redirect(&quot;selfPage&quot;)语句。但是大多的数都不使用这种方法。<br />
方法还有很多。。。<br />
4<br />
&lt;input type=&quot;button&quot; value=&quot;提交&quot; onclick=&quot;this.disabled=true;this.form.submit()&quot;&gt;</p>
<p>5</p>
<p>在JSP页面的FORM表单中添加一个hidden域&nbsp;&nbsp; <br />
&nbsp; &lt;input&nbsp;&nbsp; type=&quot;hidden&quot;&nbsp;&nbsp; name=&quot;url&quot;value=&lt;%=request.getRequestURL()%&gt;&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp; 在你的serverlet中添加如下语句&nbsp;&nbsp; <br />
&nbsp; String&nbsp;&nbsp; url=request.getParameter(&quot;url&quot;);&nbsp;&nbsp; <br />
&nbsp; response.sendRedirect(url);&nbsp;&nbsp; <br />
&nbsp; 我一般都是采用这样的方法返回JSP页面的,不太明白你说的重复刷新是什么概念&nbsp;&nbsp; </p>
<p>6 ajax 无刷新提交</p>
<p>7&nbsp; Web开发中防止浏览器的刷新键引起系统操作重复提交<br />
&nbsp;怎么解决呢？重定向可以解决页面刷新带来的数据的重复提交的问题，我们自然可以利用重定向的方式来解决这个问题。但是struts的action里面mapping.findword（）；跳转的话，默认的是在工程文件夹里面找要跳转的页面。这种情况，怎么解决呢？<br />
&nbsp;修改struts－config.xml 文件， 在action里面有一个redirect重新定向的属性，struts中默认的是false，添加这个属性，改成true，在forword中写上要跳转页面的绝对或者相对地址就行了<br />
修改如下：<br />
&lt;action-mappings&gt;<br />
&nbsp; &lt;action attribute=&quot;newsActionForm&quot; name=&quot;newsActionForm&quot;<br />
&nbsp;&nbsp; input=&quot;/addnews.jsp&quot; path=&quot;/newsAction&quot; parameter=&quot;method&quot;<br />
&nbsp;&nbsp; scope=&quot;request&quot; type=&quot;com.yongtree.news.action.NewsAction&quot;&gt;<br />
&nbsp;&nbsp; &lt;forward name=&quot;list&quot; path=&quot;/listnews.jsp&quot; redirect=&quot;true&quot;&gt;&lt;/forward&gt;<br />
&nbsp;&nbsp; &lt;forward name=&quot;error&quot; path=&quot;/addnews.jsp&quot;&gt;&lt;/forward&gt;<br />
&nbsp; &lt;/action&gt;<br />
&lt;/action-mappings&gt;<br />
&nbsp;</p>
<p>&nbsp;重复提交、重复刷新、防止后退的问题以及处理方式</p>
<p>一。前言<br />
你在任何一个比较专业的BBS都会看到这样的问题，即使你Google一下，也会发现有很多的人在关注和询问，但大家给出的解决方法却都是千差万别，（有的人主张采用脚本来解决;有的则想重定向到别的页面;有的则将此问题提升到Token的角度）为什么会有如此大的差异呢？</p>
<p>二。问题场景<br />
首先，我们应该先了解为什么要处理这样的问题？或者专业一点就是它适合的场景是什么？（似乎只有人来问没有人来解释）</p>
<p>1。重复提交、重复刷新的场景<br />
重复提交、重复刷新都是来解决系统重复记录的问题。也就是说某个人在多次的提交某条记录（为什么？也许是闲了没有事情干的;最有可能是用户根本就不知道自己的提交结果是否已经执行了？！）。</p>
<p>但出现了这样的问题并不见得就必须处理，要看你所开发的系统的类别而定。比如你接手的是某个资源管理系统，系统本身从需求的角度根本就不允许出现&quot;重复&quot;的记录，在这样需求的约束条件下，去执行重复的提交动作只会引发&ldquo;业务级异常&rdquo;的产生，根本就不可能执行成功也就无所谓避免不避免的问题了。</p>
<p>&nbsp;</p>
<p>2。防止后退的场景<br />
了解了重复刷新、重复提交的场景，我们来了解一下&quot;防止后退&quot;操作的原因是什么？比如你在开发某个投票系统，它有很多的步骤，并且这些步骤之间是有联系的，比如第一步会将某些信息发送给第二步，第二步缓存了这些信息，同时将自身的信息发送给了第三步。。。。。等等，如果此时用户处在第三步骤下，我们想象一下某个淘气用户的用户点击了后退按钮，此时屏幕出现了第二步骤的页面，他再次的修改或者再次的提交，进入到下一个步骤（也就是第三步骤），错误就会在此产生？！什么错误呢？最为典型的就是这样的操作直接导致了对于第一个步骤信息的丢失！（如果这样的信息是依靠Request存放的话，当然你可以存放在Session或者更大的上下文环境中，但这不是个好主意！关于信息存放的问题，下次在就这个问题详细的讨论）</p>
<p><br />
三。如何处理的问题<br />
当然很多的系统（比如订票系统从需求上本身是允许个人重复订票的）是必须要避免重复刷新、重复提交、以及防止后退的问题的，但即使是这样的问题，也要区分如何处理以及在哪里处理的（网上只是告诉你如何处理，但很少去区分在哪里处理的），显然处理的方式无非是客户端或者服务器端两种，而面对不同的位置处理的方式也是不同的，但有一点要事先声明：任何客户端（尤其是B/S端）的处理都是不可信任的，最好的也是最应该的是服务器端的处理方法。</p>
<p>客户端处理：<br />
面对客户端我们可以使用Javascript脚本来解决，如下</p>
<p>1。重复刷新、重复提交<br />
Ways One：设置一个变量，只允许提交一次。<br />
&lt;script language=&quot;javascript&quot;&gt; <br />
&nbsp;&nbsp;&nbsp; var checkSubmitFlg = false; <br />
&nbsp;&nbsp;&nbsp; function checkSubmit() { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (checkSubmitFlg == true) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkSubmitFlg = true; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true; <br />
&nbsp;&nbsp; } <br />
&nbsp;&nbsp; document.ondblclick = function docondblclick() { <br />
&nbsp;&nbsp;&nbsp; window.event.returnValue = false; <br />
&nbsp;&nbsp; } <br />
&nbsp;&nbsp; document.onclick = function doconclick() { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (checkSubmitFlg) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.event.returnValue = false; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp; } <br />
&lt;/script&gt; <br />
&lt;html:form action=&quot;myAction.do&quot; method=&quot;post&quot; onsubmit=&quot;return checkSubmit();&quot;&gt;</p>
<p>Way Two : 将提交按钮或者image置为disable<br />
&nbsp; &lt;html:form action=&quot;myAction.do&quot; method=&quot;post&quot;&nbsp; <br />
&nbsp;&nbsp;&nbsp; onsubmit=&quot;getElById('submitInput').disabled = true; return true;&quot;&gt;&nbsp;&nbsp; <br />
&nbsp; &lt;html:image styleId=&quot;submitInput&quot; src=&quot;images/ok_b.gif&quot; border=&quot;0&quot; /&gt; <br />
&nbsp; &lt;/html:form&gt;&nbsp; </p>
<p>2。防止用户后退<br />
这里的方法是千姿百态，有的是更改浏览器的历史纪录的，比如使用window.history.forward()方法;有的是&ldquo;用新页面的URL替换当前的历史纪录，这样浏览历史记录中就只有一个页面，后退按钮永远不会变为可用。&rdquo;比如使用javascript:location.replace(this.href); event.returnValue=false; </p>
<p><br />
2.服务器端的处理（这里只说Struts框架的处理）<br />
利用同步令牌（Token）机制来解决Web应用中重复提交的问题，Struts也给出了一个参考实现。</p>
<p>基本原理：<br />
服务器端在处理到达的请求之前，会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较，<br />
看是否匹配。在处理完该请求后，且在答复发送给客户端之前，将会产生一个新的令牌，该令牌除传给<br />
客户端以外，也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次<br />
提交的话，客户端传过来的令牌就和服务器端的令牌不一致，从而有效地防止了重复提交的发生。</p>
<p>if (isTokenValid(request, true)) { <br />
&nbsp;&nbsp;&nbsp; // your code here <br />
&nbsp;&nbsp;&nbsp; return mapping.findForward(&quot;success&quot;); <br />
} else { <br />
&nbsp;&nbsp;&nbsp; saveToken(request); <br />
&nbsp;&nbsp;&nbsp; return mapping.findForward(&quot;submitagain&quot;); <br />
} </p>
<p>Struts根据用户会话ID和当前系统时间来生成一个唯一（对于每个会话）令牌的，具体实现可以参考<br />
TokenProcessor类中的generateToken()方法。</p>
<p>1. //验证事务控制令牌,&lt;html:form &gt;会自动根据session中标识生成一个隐含input代表令牌，防止两次提交<br />
2. 在action中：</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&lt;input type=&quot;hidden&quot; name=&quot;org.apache.struts.taglib.html.TOKEN&quot;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; value=&quot;6aa35341f25184fd996c4c918255c3ae&quot;&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!isTokenValid(request)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; errors.add(ActionErrors.GLOBAL_ERROR, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new ActionError(&quot;error.transaction.token&quot;)); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resetToken(request); //删除session中的令牌 </p>
<p>3. action有这样的一个方法生成令牌<br />
&nbsp;&nbsp; protected String generateToken(HttpServletRequest request) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpSession session = request.getSession(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte id[] = session.getId().getBytes(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte now[] = <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Long(System.currentTimeMillis()).toString().getBytes(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; md.update(id); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; md.update(now); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (toHex(md.digest())); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IllegalStateException e) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (null); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NoSuchAlgorithmException e) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (null); <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp; }&nbsp; </p>
<p>总结<br />
对于重复提交、重复刷新、防止后退等等都是属于系统为避免重复记录而需要解决的问题，在客户端去处理需要针对每一种的可能提出相应的解决方案，然而在服务器端看来只不过是对于数据真实性的检验问题，基于令牌的处理就是一劳永逸的方法。</p>
<p>同时我们也看到，从不同的角度去看待问题，其解决的方法也是不同的。客户端更追求的是用户的操作，而服务端则将注意力放在了数据的处理上，所以在某个对于服务器端看似容易的问题上，用客户端来解决却麻烦了很多！反之依然。所以在某些问题的处理上我们需要综合考虑和平衡，是用客户端来解决？还是用服务器端来处理？<br />
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/127347#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Sep 2007 16:56:16 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/127347</link>
        <guid>http://fangfeixue.javaeye.com/blog/127347</guid>
      </item>
          <item>
        <title>Cannot assign value of type 'java.lang.String' to property '</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/126720" style="color:red;">http://fangfeixue.javaeye.com/blog/126720</a>&nbsp;
          发表时间: 2007年09月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Cannot assign value of type 'java.lang.String' to property 'reportdate' of type 'java.util.Date'<br />
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/126720#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 24 Sep 2007 18:55:19 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/126720</link>
        <guid>http://fangfeixue.javaeye.com/blog/126720</guid>
      </item>
          <item>
        <title>&lt;转&gt;java时间操作函数汇总 </title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/109445" style="color:red;">http://fangfeixue.javaeye.com/blog/109445</a>&nbsp;
          发表时间: 2007年08月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle"><strong>1.计算某一月份的最大天数<br />
</strong>Calendar time=Calendar.getInstance(); <br />
time.clear(); <br />
time.set(Calendar.YEAR,year); <br />
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数<br />
注：在使用set方法之前，必须先clear一下，否则很多信息会继承自系统当前时间<br />
<strong>2.Calendar和Date的转化</strong><br />
(1) Calendar转化为Date<br />
Calendar cal=Calendar.getInstance();<br />
Date date=cal.getTime();<br />
(2) Date转化为Calendar<br />
Date date=new Date();<br />
Calendar cal=Calendar.getInstance();<br />
cal.setTime(date);<br />
<strong>3.格式化输出日期时间</strong><br />
Date date=new Date();<br />
SimpleDateFormat df=new SimpleDateFormat(&quot;yyyy-MM-dd hh:mm:ss&quot;);<br />
System.out.println(df.format(date));<br />
<strong>4.计算一年中的第几星期</strong><br />
(1)计算某一天是一年中的第几星期<br />
Calendar cal=Calendar.getInstance();<br />
cal.set(Calendar.YEAR, 2006);<br />
cal.set(Calendar.MONTH, 8);<br />
cal.set(Calendar.DAY_OF_MONTH, 3);<br />
int weekno=cal.get(Calendar.WEEK_OF_YEAR);<br />
(2)计算一年中的第几星期是几号<br />
SimpleDateFormat df=new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);<br />
Calendar cal=Calendar.getInstance();<br />
cal.set(Calendar.YEAR, 2006);<br />
cal.set(Calendar.WEEK_OF_YEAR, 1);<br />
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);<br />
System.out.println(df.format(cal.getTime()));<br />
输出:<br />
2006-01-02<br />
<strong>5.add()和roll()的用法</strong><br />
(1)add()方法<br />
SimpleDateFormat df=new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);<br />
Calendar cal=Calendar.getInstance();<br />
cal.set(Calendar.YEAR, 2006);<br />
cal.set(Calendar.MONTH, 8);<br />
cal.set(Calendar.DAY_OF_MONTH, 3);<br />
cal.add(Calendar.DATE, -4);<br />
Date date=cal.getTime();<br />
System.out.println(df.format(date));<br />
cal.add(Calendar.DATE, 4);<br />
date=cal.getTime();<br />
System.out.println(df.format(date));<br />
输出：<br />
&nbsp; &nbsp; 2006-08-30<br />
&nbsp; &nbsp; 2006-09-03<br />
(2)roll方法<br />
cal.set(Calendar.YEAR, 2006);<br />
cal.set(Calendar.MONTH, 8);<br />
cal.set(Calendar.DAY_OF_MONTH, 3);<br />
cal.roll(Calendar.DATE, -4);<br />
date=cal.getTime();<br />
System.out.println(df.format(date));<br />
cal.roll(Calendar.DATE, 4);<br />
date=cal.getTime();<br />
System.out.println(df.format(date));<br />
输出：<br />
&nbsp; &nbsp; 2006-09-29<br />
&nbsp; &nbsp; 2006-09-03<br />
可见，roll()方法在本月内循环，一般使用add()方法；<br />
<strong>6.计算两个任意时间中间的间隔天数</strong><br />
(1)传进Calendar对象<br />
/** *//**计算两个时间之间相隔天数<br />
&nbsp; &nbsp; * @param startday&nbsp; 开始时间<br />
&nbsp; &nbsp; * @param endday 结束时间<br />
&nbsp; &nbsp; * @return<br />
&nbsp; &nbsp; */<br />
&nbsp; &nbsp; public int getIntervalDays(Calendar startday,Calendar endday)...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; //确保startday在endday之前<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(startday.after(endday))...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calendar cal=startday;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startday=endday;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; endday=cal;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; //分别得到两个时间的毫秒数<br />
&nbsp; &nbsp; &nbsp; &nbsp; long sl=startday.getTimeInMillis();<br />
&nbsp; &nbsp; &nbsp; &nbsp; long el=endday.getTimeInMillis();<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; long ei=el-sl;&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //根据毫秒数计算间隔天数<br />
&nbsp; &nbsp; &nbsp; &nbsp; return (int)(ei/(1000*60*60*24));<br />
&nbsp; &nbsp; }<br />
(2)传进Date对象<br />
/** *//**计算两个时间之间相隔天数<br />
&nbsp; &nbsp; * @param startday&nbsp; 开始时间<br />
&nbsp; &nbsp; * @param endday 结束时间<br />
&nbsp; &nbsp; * @return<br />
&nbsp; &nbsp; */<br />
&nbsp; &nbsp; public int getIntervalDays(Date startday,Date endday)...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; //确保startday在endday之前<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(startday.after(endday))...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Date cal=startday;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startday=endday;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; endday=cal;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; //分别得到两个时间的毫秒数<br />
&nbsp; &nbsp; &nbsp; &nbsp; long sl=startday.getTime();<br />
&nbsp; &nbsp; &nbsp; &nbsp; long el=endday.getTime();<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; long ei=el-sl;&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; //根据毫秒数计算间隔天数<br />
&nbsp; &nbsp; &nbsp; &nbsp; return (int)(ei/(1000*60*60*24));<br />
&nbsp; &nbsp; }同理，可以用相同的方法计算出任意两个时间相隔的小时数，分钟数，秒钟数等<br />
注：以上方法是完全按时间计算，有时并不能令人满意，如：<br />
startday=&quot;2006-10-11 20:00:00&quot;<br />
endday=&quot;2006-10-12 8:00:00&quot;<br />
计算结果为0，但是我们也许相让计算结果变为1，此时可以用如下方法实现：<br />
在传参之前，先设定endday的时间，如：<br />
&nbsp; &nbsp; &nbsp; &nbsp; endday.set(Calendar.HOUR_OF_DAY, 23);<br />
&nbsp; &nbsp; &nbsp; &nbsp; endday.set(Calendar.MINUTE, 59);<br />
&nbsp; &nbsp; &nbsp; &nbsp; endday.set(Calendar.SECOND, 59);<br />
&nbsp; &nbsp; &nbsp; &nbsp; endday.set(Calendar.MILLISECOND, 59);<br />
这样再传进去startday,endday，则结果就如我们所愿了。不过，如果嫌以上方法麻烦，可以参考以下方法：<br />
(3)改进精确计算相隔天数的方法<br />
&nbsp; &nbsp; public int getDaysBetween (Calendar d1, Calendar d2) ...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (d1.after(d2)) ...{&nbsp; // swap dates so that d1 is start and d2 is end<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; java.util.Calendar swap = d1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d1 = d2;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d2 = swap;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);<br />
&nbsp; &nbsp; &nbsp; &nbsp; int y2 = d2.get(Calendar.YEAR);<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (d1.get(Calendar.YEAR) != y2) ...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d1 = (Calendar) d1.clone();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; do ...{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d1.add(Calendar.YEAR, 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } while (d1.get(Calendar.YEAR) != y2);<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; return days;<br />
&nbsp; &nbsp; }<br />
</div>
<div class="postText">
<div class="tpc_content">获取系统当前时间：<br />
public static String getSystemTime(){<br />
&nbsp; &nbsp; &nbsp; &nbsp; Date date=new Date();<br />
&nbsp; &nbsp; &nbsp; &nbsp; SimpleDateFormat df=new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; return df.format(date);<br />
&nbsp; &nbsp; }</div>
<p>&nbsp;</p>
<div class="tpc_content">//字符串转化成时间类型（字符串可以是任意类型，只要和SimpleDateFormat中的格式一致即可）<br />
<br />
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(&quot;M/dd/yyyy hh:mm:ss a&quot;,java.util.Locale.US);<br />
<br />
java.util.Date d = sdf.parse(&quot;5/13/2003 10:31:37 AM&quot;); <br />
<br />
<br />
SimpleDateFormat formatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);<br />
<br />
String mDateTime1=formatter.format(d);<br />
<br />
<br />
&nbsp;&nbsp; //当前时间<br />
<br />
&nbsp;&nbsp; Calendar cal = Calendar.getInstance();<br />
<br />
// SimpleDateFormat formatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);<br />
<br />
SimpleDateFormat formatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss G E D F w W a E F&quot;);<br />
<br />
&nbsp;&nbsp; String mDateTime=formatter.format(cal.getTime());<br />
<br />
<br />
<br />
&nbsp;&nbsp; //1年前日期<br />
<br />
&nbsp;&nbsp; java.util.Date myDate=new java.util.Date(); <br />
<br />
&nbsp;&nbsp; long myTime=(myDate.getTime()/1000)-60*60*24*365;<br />
<br />
&nbsp;&nbsp; myDate.setTime(myTime*1000);<br />
<br />
&nbsp;&nbsp; String mDate=formatter.format(myDate);<br />
<br />
&nbsp;&nbsp; <br />
<br />
&nbsp;&nbsp; //明天日期<br />
<br />
&nbsp;&nbsp; myDate=new java.util.Date();<br />
<br />
&nbsp;&nbsp; myTime=(myDate.getTime()/1000)+60*60*24;<br />
<br />
&nbsp;&nbsp; myDate.setTime(myTime*1000);<br />
<br />
&nbsp;&nbsp; mDate=formatter.format(myDate);<br />
<br />
<br />
<br />
//两个时间之间的天数<br />
<br />
&nbsp;&nbsp; SimpleDateFormat myFormatter = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);<br />
<br />
&nbsp;&nbsp; java.util.Date date= myFormatter.parse(&quot;2003-05-1&quot;);<br />
<br />
&nbsp;&nbsp; java.util.Date mydate= myFormatter.parse(&quot;1899-12-30&quot;);<br />
<br />
&nbsp;&nbsp; long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);<br />
<br />
<br />
<br />
<br />
<br />
//加半小时<br />
<br />
SimpleDateFormat format = new SimpleDateFormat(&quot;yyyy-MM-dd hh:mm:ss&quot;);<br />
<br />
java.util.Date date1 = format.parse(&quot;2002-02-28 23:16:00&quot;);<br />
<br />
long Time=(date1.getTime()/1000)+60*30;<br />
<br />
date1.setTime(Time*1000);<br />
<br />
String mydate1=formatter.format(date1);<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
//年月周求日期<br />
<br />
SimpleDateFormat formatter2 = new SimpleDateFormat(&quot;yyyy-MM F E&quot;);<br />
<br />
java.util.Date date2= formatter2.parse(&quot;2003-05 5 星期五&quot;);<br />
<br />
SimpleDateFormat formatter3 = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);<br />
<br />
String mydate2=formatter3.format(date2);<br />
<br />
<br />
<br />
//求是星期几<br />
<br />
mydate= myFormatter.parse(&quot;2001-1-1&quot;);<br />
<br />
SimpleDateFormat formatter4 = new SimpleDateFormat(&quot;E&quot;);<br />
<br />
String mydate3=formatter4.format(mydate);</div>
<p>&nbsp;</p>
<div class="tpc_content">在开发web应用中，针对不同的数据库日期类型，我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型，即只需要年月日的，可以选择使用java.sql.Date类型，若对应的是MSsqlserver数据库的DateTime类型，即需要年月日时分秒的，选择java.sql.Timestamp类型<br />
你可以使用dateFormat定义时间日期的格式，转一个字符串即可<br />
<br />
package personal.jessica;<br />
import java.util.Date;<br />
import java.util.Calendar;<br />
import java.sql.Timestamp;<br />
import java.text.DateFormat;<br />
import java.text.SimpleDateFormat;<br />
import java.util.Locale;<br />
class Datetest{<br />
/**<br />
&nbsp; *method 将字符串类型的日期转换为一个timestamp（时间戳记java.sql.Timestamp）<br />
&nbsp; *@param dateString 需要转换为timestamp的字符串<br />
&nbsp; *@return dataTime timestamp<br />
&nbsp; */<br />
public final static java.sql.Timestamp string2Time(String dateString) <br />
&nbsp; throws java.text.ParseException {<br />
&nbsp; DateFormat dateFormat;<br />
&nbsp; dateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd kk:mm:ss.SSS&quot;, Locale.ENGLISH);//设定格式<br />
&nbsp; //dateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd kk:mm:ss&quot;, Locale.ENGLISH);<br />
&nbsp; dateFormat.setLenient(false);<br />
&nbsp; java.util.Date timeDate = dateFormat.parse(dateString);//util类型<br />
&nbsp; java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型<br />
&nbsp; return dateTime;<br />
}<br />
/**<br />
&nbsp; *method 将字符串类型的日期转换为一个Date（java.sql.Date）<br />
&nbsp; *@param dateString 需要转换为Date的字符串<br />
&nbsp; *@return dataTime Date<br />
&nbsp; */<br />
public final static java.sql.Date string2Date(String dateString)<br />
&nbsp; throws java.lang.Exception {<br />
&nbsp; DateFormat dateFormat;<br />
&nbsp; dateFormat = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;, Locale.ENGLISH);<br />
&nbsp; dateFormat.setLenient(false);<br />
&nbsp; java.util.Date timeDate = dateFormat.parse(dateString);//util类型<br />
&nbsp; java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型<br />
&nbsp; return dateTime;<br />
}<br />
<br />
public static void main(String[] args){<br />
&nbsp; Date da = new Date();<br />
&nbsp; //注意：这个地方da.getTime()得到的是一个long型的值<br />
&nbsp; System.out.println(da.getTime());<br />
&nbsp; <br />
&nbsp; //由日期date转换为timestamp<br />
&nbsp; <br />
&nbsp; //第一种方法：使用new Timestamp(long)<br />
&nbsp; Timestamp t = new Timestamp(new Date().getTime());<br />
&nbsp; System.out.println(t);<br />
<br />
&nbsp; //第二种方法：使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)<br />
&nbsp; Timestamp tt = new Timestamp(Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.YEAR) - 1900, Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.MONTH), Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.DATE), Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.HOUR), Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.MINUTE), Calendar.getInstance().get(<br />
&nbsp; &nbsp; &nbsp; Calendar.SECOND), 0);<br />
&nbsp; System.out.println(tt);<br />
<br />
&nbsp; try {<br />
&nbsp; String sToDate = &quot;2005-8-18&quot;;//用于转换成java.sql.Date的字符串<br />
&nbsp; &nbsp; &nbsp; String sToTimestamp = &quot;2005-8-18 14:21:12.123&quot;;//用于转换成java.sql.Timestamp的字符串<br />
&nbsp; &nbsp; &nbsp; Date date1 = string2Date(sToDate);<br />
&nbsp; &nbsp; &nbsp; Timestamp date2 = string2Time(sToTimestamp);<br />
&nbsp; System.out.println(&quot;Date:&quot;+date1.toString());//结果显示<br />
&nbsp; System.out.println(&quot;Timestamp:&quot;+date2.toString());//结果显示<br />
&nbsp; }catch(Exception e) {<br />
&nbsp; e.printStackTrace();<br />
&nbsp; }<br />
}<br />
}</div>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/109445#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 06 Aug 2007 16:39:20 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/109445</link>
        <guid>http://fangfeixue.javaeye.com/blog/109445</guid>
      </item>
          <item>
        <title>MetaTrader4.0 入门到精通</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/108603" style="color:red;">http://fangfeixue.javaeye.com/blog/108603</a>&nbsp;
          发表时间: 2007年08月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>
<p>一. MetaTrader简介<br />
MetaTrader 是一款非常优秀的外汇看盘软件，分析、交易功能俱全。可以将多币种的盘面同时显示于屏幕，方便盯盘，了解市场资金流向。通过选择语言，可以切换为非常友好的简体中文界面。安装时系统默认语言为英文，启动MetaTrader，在&ldquo;View &rdquo; 菜单栏中进入&ldquo;Languages &rdquo;，选择&ldquo;Simplified Chinese &rdquo;，关闭软件重新启动即可。 </p>
<p>突出优点：<br />
1、下单灵活、确保止损&mdash;&mdash;不论现价交易还是预设新单交易，都能同时设置止损价位和获利价位，真正确保第一时间设置止损定单。<br />
2、界面友好、交易直观&mdash;&mdash;所有交易定单都能以直线方式显示于图表，交易一目了然。<br />
3、到价声音报警&mdash;&mdash;可设置到达某个价位声音提示报警，不用担心交易机会错过。<br />
4、支持自编指标&mdash;&mdash;可以将多年的经验总结编写成指标，并应用于图表。<br />
5、支持智能交易系统&mdash;&mdash;可以自己编写交易策略，关联真实帐户，自动交易。<br />
图表分析功能亦非常强大：8种画线工具，8个交易时段，29种技术指标，分析行情走势得心应手。<br />
文件大小不到1.4M，安装之后不到4M，与系统其他软件没有关联性，不依靠其他程序，可以独立运行，甚至可以把安装后的文件夹复制到U盘，带到其他任何电脑上运行，也支持代理，对网络带宽的要求相当低。</p>
<p>1、软件安装<br />
地址：<a href="http://www.metaquotes.net/files/mt4setup.exe" target="_blank">http://www.metaquotes.net/files/mt4setup.exe</a><img src="http://www.mqclub.cn/img/info/image002.jpg" height="55" onload="ResizeImage(this, 550, 1000)" alt="" width="131" /> <br />
<br />
</p>
<p><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><img v:shapes="_x0000_i1029" src="http://www.mqclub.cn/img/info/image004.jpg" border="0" height="386" onload="ResizeImage(this, 550, 1000)" alt="" width="484" /><br />
</span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><img v:shapes="_x0000_i1027" src="http://www.mqclub.cn/img/info/image006.jpg" border="0" height="387" onload="ResizeImage(this, 550, 1000)" alt="" width="486" /><br />
</span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><img v:shapes="_x0000_i1025" src="http://www.mqclub.cn/img/info/image008.jpg" border="0" height="387" onload="ResizeImage(this, 550, 1000)" alt="" width="483" /><br />
</span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><img v:shapes="_x0000_i1026" src="http://www.mqclub.cn/img/info/image010.jpg" border="0" height="388" onload="ResizeImage(this, 550, 1000)" alt="" width="482" /></span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><br />
<img v:shapes="_x0000_i1030" src="http://www.mqclub.cn/img/info/image012.jpg" border="0" height="387" onload="ResizeImage(this, 550, 1000)" alt="" width="481" /></span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><br />
<img v:shapes="_x0000_i1031" src="http://www.mqclub.cn/img/info/image014.jpg" border="0" height="386" onload="ResizeImage(this, 550, 1000)" alt="" width="484" /></span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><br />
<img v:shapes="_x0000_i1032" src="http://www.mqclub.cn/img/info/image016.jpg" border="0" height="385" onload="ResizeImage(this, 550, 1000)" alt="" width="479" /></span></strong><strong><span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: blue"><br />
<img v:shapes="_x0000_i1033" src="http://www.mqclub.cn/img/info/image018.jpg" border="0" height="388" onload="ResizeImage(this, 550, 1000)" alt="" width="483" /></span></strong><br />
<br />
2、申请模拟帐户：</p>
<p>软件安装完毕之后，会自动运行，并且要求输入帐号和密码。如果您是第一次运行，请申请免费模拟帐户。</p>
<p><strong><span lang="EN-US" style="COLOR: blue"><img v:shapes="_x0000_i1034" src="http://www.mqclub.cn/img/info/image020.jpg" border="0" height="328" onload="ResizeImage(this, 550, 1000)" alt="" width="444" /></span></strong><br />
<strong><span lang="EN-US" style="COLOR: blue"><img v:shapes="_x0000_i1035" src="http://www.mqclub.cn/img/info/image022.jpg" border="0" height="341" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span></strong><strong><span lang="EN-US" style="COLOR: blue"><br />
<img v:shapes="_x0000_i1036" src="http://www.mqclub.cn/img/info/image024.jpg" border="0" height="349" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span></strong><br />
二. MetaTrader分析功能图解<br />
1、功能概述<br />
1.1、具有29种可修改参数的技术指标<br />
例如：KD指标（Stochastic Oscillator）、移动平均线（Moving Average）、SAR、MACD、布林带等。<br />
1.2、三种线型<br />
柱状图（美国线）、阴阳烛（K线）和折线（收盘线）。<br />
1.3、八种时段<br />
1、5、15、30分钟图（M1~M30）、16个月的1小时图(H1)、29个月的4小时图(H4)、长达25年的日线图(D1)及周线图(W1)<br />
1.4、八种画线工具<br />
垂直线、水平线、趋势线和斐波纳奇回调线（黄金分割线）&hellip;&hellip;等等。<br />
另外。具有画平行线的办法：用鼠标双击一条趋势线，再按住Ctrl键用鼠标拖动这条直线到需要放置的地方即可。<br />
1.5、可选择的界面风格<br />
黑底黄线、黑底绿线和白底黑线。<br />
1.6、汇价预警声音提示<br />
在&ldquo;终端&rdquo;区选择&ldquo;警报&rdquo;，在中间空白处点右键&mdash;&mdash;设立警报&mdash;&mdash;设置预警币种的价位和提示声音，当汇价到达时将发出声音提示。<br />
例如：瑞郎<br />
设置 ASK&lt;1.3470 限制 3 超时10sec，<br />
当价位到达1.3470，10秒后将报警3次，每次间隔10秒。</p>
<p>&nbsp;</p>
<p>画面及指标设置：</p>
<p>为了画面的清洁，去掉网格。</p>
<p><strong><span lang="EN-US" style="COLOR: blue"><img v:shapes="_x0000_i1037" src="http://www.mqclub.cn/img/info/image026.jpg" border="0" height="343" onload="ResizeImage(this, 550, 1000)" alt="" width="353" /></span></strong><br />
寻找相应的外汇品种：<br />
<span lang="EN-US"><img v:shapes="_x0000_i1038" src="http://www.mqclub.cn/img/info/image028.jpg" border="0" height="409" onload="ResizeImage(this, 550, 1000)" alt="" width="497" /></span><br />
<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指标的寻找：</span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1039" src="http://www.mqclub.cn/img/info/image030.jpg" border="0" height="323" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1040" src="http://www.mqclub.cn/img/info/image032.jpg" border="0" height="516" onload="ResizeImage(this, 550, 1000)" alt="" width="453" /></span><br />
<span lang="EN-US">K</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">线的色彩：</span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1041" src="http://www.mqclub.cn/img/info/image034.jpg" border="0" height="337" onload="ResizeImage(this, 550, 1000)" alt="" width="459" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1042" src="http://www.mqclub.cn/img/info/image036.jpg" border="0" height="315" onload="ResizeImage(this, 550, 1000)" alt="" width="500" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1043" src="http://www.mqclub.cn/img/info/image038.jpg" border="0" height="313" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
我喜爱的格式：<br />
<span lang="EN-US"><img v:shapes="_x0000_i1044" src="http://www.mqclub.cn/img/info/image040.jpg" border="0" height="533" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
MACD双线的设立：</p>
<p>1.下载补丁</p>
<p>2.双线MACD补丁加到：</p>
<p>C:\Program Files\MetaTrader 4\experts\indicators</p>
<p>3.在图表上依次点击&ldquo;技术指标&rdquo;、&ldquo;自定义&rdquo;、&ldquo;macd2&rdquo;.</p>
<br />
<span lang="EN-US" style="FONT-SIZE: 14pt; mso-bidi-font-size: 12.0pt"><img v:shapes="_x0000_i1045" src="http://www.mqclub.cn/img/info/image041.gif" border="0" height="477" onload="ResizeImage(this, 550, 1000)" alt="" width="398" /></span><br />
<br />
4.调整指标参数、颜色等。
<p>mt4服务器</p>
<p><br />
<font color="#3366cc">217.74.32.222:443, Alpari-Demo ,GMT+1,黄金，美指(延迟),,刷新慢,Alpari Ltd.,俄国</font></p>
<p><font color="#3366cc">209.61.208.17:443, 23,GMT-6,仅直盘及少量叉盘,,刷新频率高,&quot;Direct Forex, LLC&quot;,美国</font></p>
<p><font color="#3366cc">mt.forexua.com:443, Forex-Server,GMT+2,&quot;直盘, 美指,少量叉盘&quot;,&quot;股指,股票&quot;,有滑点,Forex Ltd.,</font></p>
<p><font color="#3366cc">mt1.fxprofit.ru:443, FxProfit-Demo,GMT+1,黄金,&quot;股指,股票,期货&quot;,,Integra Capital Ltd.</font></p>
<p><font color="#3366cc">66.114.120.22:443, InterbankFX-Demo,GMT+0,仅货币直盘及很少叉盘,,刷新频率高,&quot;Interbank FX, LLC&quot;,美国,</font></p>
<p><font color="#3366cc">demo.metaquotes.net:443,MetaQuotes-Demo,GMT+1,黄金,&quot;股票,股指,期货&quot;,,MetaQuotes Software Corp.</font></p>
<p><font color="#3366cc">66.235.184.206:443, MIG-Demo,GMT+1,&quot;黄金白银,货币&quot;,,,MIG Investments SA.,瑞士</font></p>
<p><font color="#3366cc">demo.fxteam.ru:443, North Finance-Demo,GMT+2,&quot;货币,黄金,白银&quot;,&quot;股票,股指&quot;,,North Finance Company Ltd,</font></p>
<p><font color="#3366cc">66.148.84.147:443, Ntwo-Main,GMT+0,&quot;黄金,白银&quot;,少量叉盘,,Ntwo Capital Market LLC.</font></p>
<p><font color="#3366cc">66.36.230.215:443, PTMillennium-Server,GMT+2,&quot;货币全(HKD,CNY),金银&quot;,期货,,PT Millennium Penata Futures,</font></p>
<p><font color="#3366cc">217.8.185.218:443, XTrade-Demo,GMT+1,货币直盘,,,X-Trade Brokers DM S.A.,</font></p>
<p><font color="#3366cc">66.235.184.157:443, Money-Tec Demo,GMT+1,&quot;直盘,黄金,少量叉盘&quot;,&quot;股票,股指&quot;,刷新慢,MoneyTec LLC,</font></p>
<p><font color="#3366cc">212.12.60.156:443, Gimex-NEXTT,GMT+1,&quot;直盘,黄金,少量叉盘&quot;,&quot;股票,股指,期货&quot;,刷新快,Gimex Group,</font></p>
<p><font color="#3366cc">217.27.32.243:443, Windsor Brokers-Demo,GMT+2,&quot;货币,金银&quot;,&quot;股票,股指,期货&quot;,,Windsor Brokers Ltd,塞浦路斯,</font></p>
<p><font color="#3366cc">212.100.249.39:443, ForexService-Server,GMT+1,&quot;货币,黄金&quot;,&quot;股票,期货&quot;,,Financial Network Worldwide Ltd.,俄国</font></p>
<p><font color="#3366cc">217.16.27.150:443, FIBO-Demo,GMT+1,&quot;货币(NZD,NOK,SGD,SEK)&quot;,,,&quot;Fibo Group, Ltd&quot;,英国伦敦</font></p>
<p><font color="#3366cc">66.36.231.125:443, TeleTrade-Server,GMT+2,仅直盘及少量叉盘,,,Teletrade D.J. International Consulting Ltd,俄国</font></p>
<p><font color="#3366cc">83.142.230.30:443, Admiral-Demo,GMT+0,&quot;直盘及少量叉盘,黄金&quot;,股指,,Admiral Investments and Securities Ltd.,英国伦敦</font></p>
<p><font color="#3366cc">66.36.242.238:443, FxPro-Server,GMT+0,&quot;货币,金银&quot;,期货,,Fx-Pro Ltd,英国,</font></p>
<p><font color="#3366cc">66.36.240.247:443, Orion-Demo,GMT+4,&quot;货币,金银&quot;,&quot;股票,股指,期货&quot;,,Orion Global Financial Services,美国,</font></p>
<p><font color="#3366cc">212.109.44.23:443, Ukrsotsbank-MT4,GMT+2,&quot;货币,金银&quot;,,,Ukrsotsbank,俄国,</font></p>
<p><font color="#3366cc">66.235.180.133:443, SNC-Server,GMT+2,仅货币直盘及很少叉盘,,,&quot;SNC Investments, Inc.&quot;,加拿大</font></p>
<p><font color="#3366cc">mt4demo.sts.bg:443, sTS-Demo,GMT+2,&quot;货币,金银&quot;,&quot;股票,股指,期货&quot;,,STS Finance SC,保加利亚</font></p>
<p><font color="#3366cc">209.61.206.23:443 cfg </font></p>
<p><font color="#3366cc">212.26.141.67:443 fxintegralbank 有美指</font></p>
<p>修改服务器方法：</p>
<p>打开MT图标，Ctrl+O,点击&ldquo;服务器&rdquo;，把你得到的服务器地址写入服务器栏中，点击&ldquo;确认&rdquo;，再申请一次模拟帐户，注意在申请时候要用刚才写入服务器的地址申请。</p>
<p><br />
<span lang="EN-US"><img v:shapes="_x0000_i1046" src="http://www.mqclub.cn/img/info/image043.jpg" border="0" height="275" onload="ResizeImage(this, 550, 1000)" alt="" width="503" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1047" src="http://www.mqclub.cn/img/info/image044.gif" border="0" height="367" onload="ResizeImage(this, 550, 1000)" alt="" width="269" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1048" src="http://www.mqclub.cn/img/info/image046.jpg" border="0" height="341" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1049" src="http://www.mqclub.cn/img/info/image048.jpg" border="0" height="347" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
<span lang="EN-US"><img v:shapes="_x0000_i1050" src="http://www.mqclub.cn/img/info/image050.jpg" border="0" height="340" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
安装两小时图表的方法：</p>
<p>下载realtime.mq4到</p>
<p>C:\Program Files\MetaTrader 4\experts\indicators</p>
关闭MT，再打开，把图表设置成小时图，在&ldquo;自定义指标&rdquo;里面点击realtime.mq4，出现一个窗口<br />
<span lang="EN-US" style="FONT-SIZE: 14pt; mso-bidi-font-size: 12.0pt"><img v:shapes="_x0000_i1051" src="http://www.mqclub.cn/img/info/image051.jpg" border="0" height="286" onload="ResizeImage(this, 550, 1000)" alt="" width="472" /></span> <br />
打上勾并点击&ldquo;确认&rdquo;之后打开&ldquo;文件&rdquo;&hellip;&hellip;&ldquo;打开离线历史数据&rdquo;，找到<br />
<span lang="EN-US" style="FONT-SIZE: 14pt; mso-bidi-font-size: 12.0pt"><img v:shapes="_x0000_i1052" src="http://www.mqclub.cn/img/info/image053.gif" border="0" height="298" onload="ResizeImage(this, 550, 1000)" alt="" width="504" /></span><br />
双击这个H2，出现的图表就是两小时图表。请注意：在观看两小时图表时候要保留小时图才行。
<p>箭头补丁的使用：</p>
<p>下载&ldquo;箭头.mq4&rdquo;到</p>
<p>C:\Program Files\MetaTrader 4\experts\indicators</p>
<p>关闭MT，再打开，在&ldquo;自定义指标&rdquo;里面点击箭头.mq4，出现一个窗口，设置好指标参数点击确认即可。箭头补丁主要是两根EMA交叉时发出信号（声音和窗口提示）的智能补丁。</p>
<strong>在当前时段显示不同时段指标线的方法：</strong> <br />
下载MACD跨时间.Mp4（MA跨时间.Mp4）到C:\Program Files\MetaTrader 4\experts\indicators
<p>打开自定义指标双击安装好的XX跨时间显示.MP4指标，在出现的窗口：</p>
<p>在Timeframe里面是设置时间的，ma的时间的，比如说，你想看1hour在当前图的ma，就是60，4hour就是240，日图的ma就是1440，依此类推，但是必须是mt4有的时间段，比如</p>
<p>M1＝ 1 <br />
M5＝ 5 <br />
M15 ＝15 <br />
M30 ＝30 <br />
H1＝ 60 <br />
H4 ＝240 <br />
D1＝ 1440 <br />
W1＝ 10080 <br />
MN1＝ 43200</p>
<p>下面就是和基本的ma设置一样了。</p>
<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #225588; FONT-FAMILY: Tahoma"><img v:shapes="_x0000_i1053" src="http://www.mqclub.cn/img/info/image054.gif" border="0" height="254" onload="ResizeImage(this, 550, 1000)" alt="" width="446" /></span> </div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/108603#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 03 Aug 2007 16:22:23 +0800</pubDate>
        <link>http://fangfeixue.javaeye.com/blog/108603</link>
        <guid>http://fangfeixue.javaeye.com/blog/108603</guid>
      </item>
          <item>
        <title>&lt;转&gt;java读取xml文件中oracle数据库连接(sax)</title>
        <author>fangfeixue</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://fangfeixue.javaeye.com">fangfeixue</a>&nbsp;
                    链接：<a href="http://fangfeixue.javaeye.com/blog/107477" style="color:red;">http://fangfeixue.javaeye.com/blog/107477</a>&nbsp;
          发表时间: 2007年07月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p class="g_w_100 g_t_wrap g_t_center g_t_bold g_t_24 g_c_pdin c07" id="blogtitle__fks_gLX5yuHq0bpmkGnxNMIjNQ==">java读取xml文件中oracle数据库连接(sax)</p>
<div class="g_blog_list">
<div class="g_t_center g_c_pdin g_p_center c07 content" id="blogtext__fks_gLX5yuHq0bpmkGnxNMIjNQ==" style="WIDTH: 760px">
<p>//------------DataBaseConfig.xml<br />
<data></data><!--l version="1.0" encoding="UTF-8--></p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="tag">&lt;</span><span class="tag-name">data</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">datasource</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">dataname</span><span class="tag">&gt;</span><span>xf</span><span class="tag">&lt;/</span><span class="tag-name">dataname</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver</span><span class="tag">&gt;</span><span>oracle.jdbc.driver.OracleDriver</span><span class="tag">&lt;/</span><span class="tag-name">driver</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">url</span><span class="tag">&gt;</span><span>jdbc:oracle:thin:@localhost:1521:SID</span><span class="tag">&lt;/</span><span class="tag-name">url</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">username</span><span class="tag">&gt;</span><span>xiaofeng</span><span class="tag">&lt;/</span><span class="tag-name">username</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">password</span><span class="tag">&gt;</span><span>xiaofeng</span><span class="tag">&lt;/</span><span class="tag-name">password</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">datasource</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="tag">&lt;/</span><span class="tag-name">data</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>//---------------------ConfigParser.java </p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;zwf.xml; &nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.util.Properties; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;org.xml.sax.Attributes; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;org.xml.sax.SAXException; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;org.xml.sax.helpers.DefaultHandler; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">class</span><span>&nbsp;ConfigParser&nbsp;</span><span class="keyword">extends</span><span>&nbsp;DefaultHandler&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">//定义一个Properties&nbsp;用来存放属性值 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;Properties&nbsp;props; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">private</span><span>&nbsp;String&nbsp;currentSet; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;String&nbsp;currentName; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">private</span><span>&nbsp;StringBuffer&nbsp;currentValue&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;StringBuffer(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">//&nbsp;构建器初始化props </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;ConfigParser()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.props&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Properties(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;Properties&nbsp;getProps()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.props; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="comment">//&nbsp;定义开始解析元素的方法.&nbsp;这里是将中的名称xxx提取出来. </span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;startElement(String&nbsp;uri,&nbsp;String&nbsp;localName,&nbsp;String&nbsp;qName, &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attributes&nbsp;attributes)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;SAXException&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentValue.delete(</span><span class="number">0</span><span>,&nbsp;currentValue.length()); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.currentName&nbsp;=&nbsp;qName; &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">//&nbsp;这里是将之间的值加入到currentValue </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;characters(</span><span class="keyword">char</span><span>[]&nbsp;ch,&nbsp;</span><span class="keyword">int</span><span>&nbsp;start,&nbsp;</span><span class="keyword">int</span><span>&nbsp;length) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throws</span><span>&nbsp;SAXException&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentValue.append(ch,&nbsp;start,&nbsp;length); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">//&nbsp;在遇到结束后,将之前的名称和值一一对应保存在props中 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;endElement(String&nbsp;uri,&nbsp;String&nbsp;localName,&nbsp;String&nbsp;qName) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throws</span><span>&nbsp;SAXException&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(qName.toLowerCase(),&nbsp;currentValue.toString().trim()); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>//-----------------ParseXML.java</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;zwf.xml; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.util.Properties; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;javax.xml.parsers.SAXParser; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;javax.xml.parsers.SAXParserFactory; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">class</span><span>&nbsp;ParseXML&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">//&nbsp;定义一个Properties&nbsp;用来存放属性值 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;Properties&nbsp;props; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;Properties&nbsp;getProps()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.props; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;parse(String&nbsp;filename)&nbsp;</span><span class="keyword">throws</span><span>&nbsp;Exception&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;将我们的解析器对象化 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConfigParser&nbsp;handler&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ConfigParser(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;获取SAX工厂对象 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXParserFactory&nbsp;factory&nbsp;=&nbsp;SAXParserFactory.newInstance(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory.setNamespaceAware(</span><span class="keyword">false</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory.setValidating(</span><span class="keyword">false</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;获取SAX解析 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SAXParser&nbsp;parser&nbsp;=&nbsp;factory.newSAXParser(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;将解析器和解析对象xml联系起来,开始解析 </span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parser.parse(filename,&nbsp;handler); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;获取解析成功后的属性 </span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props&nbsp;=&nbsp;handler.getProps(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">finally</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parser&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>//-----------------ReadConfigXml.java</p>
<div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;zwf.xml; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.util.Properties; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;ReadConfigXml&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;Properties&nbsp;props; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;ReadConfigXml(String&nbsp;url)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ParseXML&nbsp;myRead&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ParseXML(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRead.parse(url); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Properties(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props&nbsp;=&nbsp;myRead.getProps(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">catch</span><span>&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="comment">/* </span>&nbsp;</li>
    <li class=""><span><span class="comment">public&nbsp;String&nbsp;getServerName()&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;props.getProperty(&quot;servername&quot;);&nbsp;&nbsp;&nbsp;//getProperty(&quot;&lt;标签名&gt;&quot;)，与XML文档里标签名相关联 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//另：标签名在这里使用时，统一为小写 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment">public&nbsp;String&nbsp;getServerPort(){ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;props.getProperty(&quot;serverport&quot;);&nbsp;&nbsp;&nbsp;//getProperty(&quot;&lt;标签名&gt;&quot;)，与XML文档里标签名相关联 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment">public&nbsp;String&nbsp;getDatabaseName()&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;props.getProperty(&quot;databasename&quot;);&nbsp;//getProperty(&quot;&lt;标签名&gt;&quot;)，与XML文档里标签名相关联 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment">public&nbsp;String&nbsp;getUserName()&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;props.getProperty(&quot;username&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//getProperty(&quot;&lt;标签名&gt;&quot;)，与XML文档里标签名相关联 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment">public&nbsp;String&nbsp;getPassWord()&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;props.getProperty(&quot;password&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//getProperty(&quot;&lt;标签名&gt;&quot;)，与XML文档里标签名相关联 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment">*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;String&nbsp;getDataName(){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;props.getProperty(</span><span class="string">&quot;dataname&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;String&nbsp;getDriver(){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;props.getProperty(</span><span class="string">&quot;driver&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;String&nbsp;getUrl(){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;props.getProperty(</span><span class="string">&quot;url&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;String&nbsp;getUserName(){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;props.getProperty(</span><span class="string">&quot;username&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;String&nbsp;getPassWord(){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;</span><span class="keyword">return</span><span>&nbsp;props.getProperty(</span><span class="string">&quot;password&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>//---------------------DBConnection.java</p>
<div class="code_title">java 代码</div>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j">
    <li class="alt"><span><span class="keyword">package</span><span>&nbsp;zwf.xml; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.sql.Connection; &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="keyword">import</span><span>&nbsp;java.sql.DriverManager; &nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;java.sql.SQLException; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">import</span><span>&nbsp;zwf.xml.ReadConfigXml; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;DBConnection&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;Connection&nbsp;con; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">private</span><span>&nbsp;DBConnection()&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;DBConnection&nbsp;newInstance(){ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;DBConnection(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span></span><span class="comment">/* </span>&nbsp;</li>
    <li class="alt"><span><span class="comment">public&nbsp;Connection&nbsp;getConnection(){ </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReadConfigXml&nbsp;r&nbsp;=&nbsp;new&nbsp;ReadConfigXml(&quot;mssql.xml&quot;);&nbsp;&nbsp;&nbsp;&nbsp;//读取xml文件中数据库相关信息 </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;&quot;jdbc:microsoft:sqlserver://&quot;+r.getServerName()+&quot;:&quot;+r.getServerPort() </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&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;+&quot;;DatabaseName=&quot;+r.getDatabaseName(); </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;username&nbsp;=&nbsp;r.getUserName(); </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password&nbsp;=&nbsp;r.getPassWord(); </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(&quot;com.microsoft.jdbc.sqlserver.SQLServerDriver&quot;); </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con&nbsp;=&nbsp;DriverManager.getConnection(url,&nbsp;username,&nbsp;password); </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(ClassNotFoundException&nbsp;e)&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;{ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;con; </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment"></span>&nbsp;</span></li>
    <li class=""><span><span class="comment"></span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//测试连接 </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String&nbsp;args[]){ </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con&nbsp;=&nbsp;DBConnection.newInstance().getConnection(); </span>&nbsp;</span></li>
    <li class=""><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span></span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String&nbsp;args[]){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;ReadConfigXml&nbsp;r&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;ReadConfigXml(</span><span class="string">&quot;DataBaseConfig.xml&quot;</span><span>);&nbsp;&nbsp;</span><span class="comment">//xml文件放到工程目录下 </span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;System.out.println(r.getDataName()); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;System.out.println(r.getDriver()); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;System.out.println(r.getUrl()); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;System.out.println(r.getUserName()); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;System.out.println(r.getPassWord()); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://fangfeixue.javaeye.com/blog/107477#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/ad