﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-wonderer's program-随笔分类-java</title><link>http://www.blogjava.net/wonderer/category/21144.html</link><description>everything will be better</description><language>zh-cn</language><lastBuildDate>Mon, 24 Dec 2007 03:14:35 GMT</lastBuildDate><pubDate>Mon, 24 Dec 2007 03:14:35 GMT</pubDate><ttl>60</ttl><item><title>Java中的全角和半角</title><link>http://www.blogjava.net/wonderer/archive/2007/12/23/169811.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Sun, 23 Dec 2007 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/12/23/169811.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/169811.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/12/23/169811.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/169811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/169811.html</trackback:ping><description><![CDATA[OYM中的任务中，有一项对文件内容的检查挺有意思的，就是要检查字符是否是全角的，例如&#8220;ＧＹ&#8221;（not&#8220;GY&#8221;），并且把这些字符改为半角的。<br />
想起了在研发中心的一个朋友的抱怨：&#8220;昨天写了一整天的程序，发到广大教务处那边居然说不能用，然后亲自跑了一躺，发现不是我的程序有问题，是那边的人输入个全角字符，搜半角的字符，当然不行了&#8221;<br />
恩，Betty写的需求真有意思，考虑的问题很周全，是一个很厉害的项目经理。如果从输入这里解决了字符是否是半角的，那么，以后的情况就容易解决很多了。恩，网上搜了一下资料，查了一下书，得出了以下代码：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;testChar()&nbsp;{<br />
&nbsp;&nbsp;String&nbsp;s1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">123</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;String&nbsp;s2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">ａｂｃ</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;String&nbsp;s3&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">123ａｂｃ</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;System.out.println(s1);<br />
&nbsp;&nbsp;System.out.println(s2);<br />
&nbsp;&nbsp;System.out.println(s3);<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;s1.length();&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s1.charAt(i);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(j&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">256</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;temp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">65248</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(temp&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)j</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">--&gt;:</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;temp);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;s2.length();&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s2.charAt(i);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(j&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">256</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;temp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">65248</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(temp&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)j</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">--&gt;:</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;temp);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print&nbsp;((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;s3.length();&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s3.charAt(i);<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(j&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">256</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;temp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">65248</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(temp&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)j</span><span style="color: #000000;">+</span><span style="color: #000000;">"</span><span style="color: #000000;">--&gt;:</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;temp);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)&nbsp;j);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;System.out.println();<br />
&nbsp;<br />
&nbsp;}</span></div>
输出的结果如下：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">123</span><span style="color: #000000;"><br />
ａ</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;">aｂ</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;">bｃ</span><span style="color: #000000;">--</span><span style="color: #000000;">c<br />
123ａ</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;">aｂ</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;">bｃ</span><span style="color: #000000;">--</span><span style="color: #000000;">c</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/wonderer/aggbug/169811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-12-23 16:46 <a href="http://www.blogjava.net/wonderer/archive/2007/12/23/169811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JEE上传文件的IO流</title><link>http://www.blogjava.net/wonderer/archive/2007/12/23/169676.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Sat, 22 Dec 2007 16:52:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/12/23/169676.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/169676.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/12/23/169676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/169676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/169676.html</trackback:ping><description><![CDATA[<p>OYM的任务中，有个要求，上传一个Excel文件，检查他的内容是否合法，并返回信息。</p> <p>今天想了一下，第一个要解决的问题就是上传一个Excel文件，上传文件的组件到挺多的，网上一搜，就有一大堆教程，但是现在并不是要上传一个文件到服务器以作存储之用，而是要上传一个文件到内存里，以Java的数据结构存储起来，并检查，把合乎要求的数据写到数据库里。所以在网上的一大堆上传文件的组件并不合用。于是又想自己写，思路就是从客户端那里获取一个InputStream，然后就对这个InputStream做一系列的检查。代码如下：</p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">ServletInputStream sis =  request.getInputStream();
InputStreamReader isr = <span style="color: #0000ff">new</span> InputStreamReader(sis);
             
<span style="color: #0000ff">int</span> ch;
<span style="color: #0000ff">while</span>((ch = isr.read()) != -1 ) {          
   <span style="color: #0000ff">out</span>.println((<span style="color: #0000ff">char</span>)ch);
}
             
System.<span style="color: #0000ff">out</span>.flush();</pre></div>
<p>结果的出去就是如下（输出东西写到页面）：</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">-----------------------------7d7ea23120550 
Content-Disposition: form-data; name=<span style="color: #006080">"file1"</span>; 
filename=<span style="color: #006080">"C:\Documents and Settings\Administrator\桌面\test.txt"</span> 
Content-Type: text/plain 
my name <span style="color: #0000ff">is</span> Rokey.Ｒｏｋｅｙ。我的名字叫Rokey. 
-----------------------------7d7ea23120550 Content-Disposition: form-data; 
name=<span style="color: #006080">"Submit"</span> 上传 -----------------------------7d7ea23120550--</pre></div>很明显，这里只有
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">my name <span style="color: #0000ff">is</span> Rokey.Ｒｏｋｅｙ。我的名字叫Rokey.</pre></div>
<p>对我有用，这个也正是我的文件里面的内容，其它的都是关于这些form的其它信息。对我这个程序是没有用的。如果这里写下去的话，还要我去分析那些是数据，哪些是form的参数。好，到现在为止，我已经打消了自己写的念头了。我想，那些组件都可以把上传文件封装得那么好，能不能利用那些库，抽出文件的IO流，让我操作呢?</p>
<p>于是，就开始对<a href="http://www.servlets.com/cos/">O'Reilly的上传组件cos.jar</a>的API看，看到里面有这么一段。</p>
<blockquote>
<p>public class MultipartParser<br>extends java.lang.Object<br>A utility class to handle multipart/form-data requests, the kind of requests that support file uploads. This class uses a "pull" model where the reading of incoming files and parameters is controlled by the client code, which allows incoming files to be stored into any OutputStream. If you wish to use an API which resembles HttpServletRequest, use the "push" model MultipartRequest instead. It's an easy-to-use wrapper around this class. 
<p>This class can receive arbitrarily large files (up to an artificial limit you can set), and fairly efficiently too. It cannot handle nested data (multipart content within multipart content). It can now with the latest release handle internationalized content (such as non Latin-1 filenames). 
<p>It also optionally includes enhanced buffering and Content-Length limitation. Buffering is only required if your servlet container is poorly implemented (many are, including Tomcat 3.2), but it is generally recommended because it will make a slow servlet container a lot faster, and will only make a fast servlet container a little slower. Content-Length limiting is usually only required if you find that your servlet is hanging trying to read the input stram from the POST, and it is similarly recommended because it only has a minimal impact on performance. </p></blockquote>
<p>而且里面的API已经封装程我想象得到的情况了。于是，我就觉得这样我就可以完成我的功能了。于是，就写了以下代码：</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">MultipartParser mp = <span style="color: #0000ff">new</span> MultipartParser(request, 10 * 1024 * 1024);
Part part;
<span style="color: #0000ff">while</span> ((part = mp.readNextPart()) != <span style="color: #0000ff">null</span>) {
      <span style="color: #0000ff">if</span> (part.isParam()) {
          <span style="color: #008000">// it's a parameter part</span>
          ParamPart paramPart = (ParamPart) part;
          <span style="color: #008000">//out.println("param: name=" + name + "; value=" + value);</span>
      } <span style="color: #0000ff">else</span> <span style="color: #0000ff">if</span> (part.isFile()) {
          FilePart filePart = (FilePart) part;
          InputStream <span style="color: #0000ff">is</span> = filePart.getInputStream();
          InputStreamReader isr = <span style="color: #0000ff">new</span> InputStreamReader(<span style="color: #0000ff">is</span>);

          <span style="color: #0000ff">int</span> ch;
          <span style="color: #0000ff">while</span> ((ch = isr.read()) != -1) {

              <span style="color: #0000ff">out</span>.print((<span style="color: #0000ff">char</span>) ch);
          }

          System.<span style="color: #0000ff">out</span>.flush();
          isr.close();
          <span style="color: #0000ff">is</span>.close();
      }
}
               </pre></div>
<p>出去结果如下：</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">my name <span style="color: #0000ff">is</span> Rokey.Ｒｏｋｅｙ。
我的名字叫Rokey.</pre></div>到现在，已经可以把这个流封装成一个文件流，送给Excel的组件去处理了。<img src ="http://www.blogjava.net/wonderer/aggbug/169676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-12-23 00:52 <a href="http://www.blogjava.net/wonderer/archive/2007/12/23/169676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转：什么是IOC</title><link>http://www.blogjava.net/wonderer/archive/2007/10/28/156488.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Sun, 28 Oct 2007 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/10/28/156488.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/156488.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/10/28/156488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/156488.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/156488.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 什么是IOC呢，在网上搜到了一非常有意思的讲解。IoC就是Inversion of Control，控制反转。在Java开发中，IoC意味着将你设计好的类交给系统去控制，而不是在你的类内部控制。这称为控制反转。 下面我们以几个例子来说明什么是IoC 假设我们要设计一个Girl和一个Boy类，其中Girl有kiss方法，即Girl想要Kiss一个Boy。那么，我们的问题是，Girl如何能够认识这个B...&nbsp;&nbsp;<a href='http://www.blogjava.net/wonderer/archive/2007/10/28/156488.html'>阅读全文</a><img src ="http://www.blogjava.net/wonderer/aggbug/156488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-10-28 16:50 <a href="http://www.blogjava.net/wonderer/archive/2007/10/28/156488.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Buffola的编码问题</title><link>http://www.blogjava.net/wonderer/archive/2007/10/26/156188.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Fri, 26 Oct 2007 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/10/26/156188.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/156188.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/10/26/156188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/156188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/156188.html</trackback:ping><description><![CDATA[<p>Buffloa里的传递参数的编码是GBK。</p> <p>buffalo.switchPart('body',url,false);如果url中包含汉字，是采用GBK编码的。在不改变tomcat的配置文件的情况下，在目标页面里获得url参数的正确方法是 </p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> String name = <span style="color: #0000ff">new</span> String(request.getParameter(<span style="color: #006080">"name"</span>).getBytes(</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>             <span style="color: #006080">"ISO8859-1"</span>), <span style="color: #006080">"GBK"</span>);</pre></div></div>
<p>注意，如果这里用utf-8作为编码的转换的话，会出现乱码。</p><img src ="http://www.blogjava.net/wonderer/aggbug/156188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-10-26 16:41 <a href="http://www.blogjava.net/wonderer/archive/2007/10/26/156188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP中request.getParameter()乱码问题</title><link>http://www.blogjava.net/wonderer/archive/2007/10/25/155980.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Thu, 25 Oct 2007 15:23:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/10/25/155980.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/155980.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/10/25/155980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/155980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/155980.html</trackback:ping><description><![CDATA[<p>最近在准备考试系统的开发，碰到了 request.getParameter乱码的问题。跟林彬讨论了一下，还是觉得用老方法管用。</p> <p>如果是post的话，可以通过设置filter的方法来解决。</p> <p>如果是get或者是超链接的话，以前是通过设置tomcat的配置文件server.xml来解决的，但这样不好，并不是所有的项目，我们都可以修改到服务器的tomcat的配置文件。具体代码如下：</p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> Connector port=<span style="color: #006080">"8080"</span> maxHttpHeaderSize=<span style="color: #006080">"8192"</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>                maxThreads=<span style="color: #006080">"150"</span> minSpareThreads=<span style="color: #006080">"25"</span> maxSpareThreads=<span style="color: #006080">"75"</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>                enableLookups=<span style="color: #006080">"false"</span> redirectPort=<span style="color: #006080">"8443"</span> acceptCount=<span style="color: #006080">"100"</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>                connectionTimeout=<span style="color: #006080">"20000"</span> disableUploadTimeout=<span style="color: #006080">"true"</span> uRIEncoding=<span style="color: #006080">"gbk"</span>/&gt;</pre></div></div>
<p>还是觉得老方法管用，只是有点麻烦:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> String id=<span style="color: #0000ff">new</span> String(request.getParameter(<span style="color: #006080">"id"</span>).getBytes(<span style="color: #006080">"ISO8859-1"</span>),<span style="color: #006080">"UTF-8"</span>);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> String name = <span style="color: #0000ff">new</span> String(request.getParameter(<span style="color: #006080">"name"</span>).getBytes(<span style="color: #006080">"ISO8859-1"</span>),<span style="color: #006080">"UTF-8"</span>);</pre></div></div><img src ="http://www.blogjava.net/wonderer/aggbug/155980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-10-25 23:23 <a href="http://www.blogjava.net/wonderer/archive/2007/10/25/155980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring DAO入门</title><link>http://www.blogjava.net/wonderer/archive/2007/07/18/131058.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Wed, 18 Jul 2007 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/07/18/131058.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/131058.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/07/18/131058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/131058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/131058.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 写了个Spring的DAO入门例子。 DAO的接口     1: package dataSourceDemo;   2: &nbsp;   3: public interface IUserDAO {   4:     public void insert(User user);   5:     public User find(Integer id);   6: &nbsp;   7: }...&nbsp;&nbsp;<a href='http://www.blogjava.net/wonderer/archive/2007/07/18/131058.html'>阅读全文</a><img src ="http://www.blogjava.net/wonderer/aggbug/131058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-07-18 14:04 <a href="http://www.blogjava.net/wonderer/archive/2007/07/18/131058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JUnit+Spring入门</title><link>http://www.blogjava.net/wonderer/archive/2007/07/18/130992.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Wed, 18 Jul 2007 03:12:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/07/18/130992.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/130992.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/07/18/130992.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/130992.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/130992.html</trackback:ping><description><![CDATA[<p>首先要导入包</p> <p>1：Spring支持包：spring.jar , commons-logging.jar</p> <p>2: JUnit支持包： JUnit.jar</p> <p><a href="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="131" alt="image" src="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_thumb.png" width="239" border="0"></a> </p> <p>建立Bean类，</p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> package refBeanDemo;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> import java.util.Date;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> HelloBean {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #0000ff">private</span> String helloWorld;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>     <span style="color: #0000ff">private</span> Date date;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>     <span style="color: #0000ff">public</span> Date getDate() {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>         <span style="color: #0000ff">return</span> date;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setDate(Date date) {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>         <span style="color: #0000ff">this</span>.date = date;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span>     <span style="color: #0000ff">public</span> String getHelloWorld() {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>         <span style="color: #0000ff">return</span> helloWorld;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setHelloWorld(String helloWorld) {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>         <span style="color: #0000ff">this</span>.helloWorld = helloWorld;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  20:</span>     </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  21:</span> }</pre></div></div>
<p>&nbsp;</p>
<p>建立配置文件，和在里面进行注入</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">&lt;?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="UTF-8"</span>?<span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #0000ff">&lt;!</span><span style="color: #800000">DOCTYPE</span> <span style="color: #ff0000">beans</span> <span style="color: #ff0000">PUBLIC</span> <span style="color: #0000ff">"-//SPRING/DTD BEAN/EN"</span> <span style="color: #0000ff">"../resources/spring-beans-2.0.dtd"</span> <span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #0000ff">&lt;</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">bean</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="dateBean"</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="java.util.Date"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #0000ff">&lt;</span><span style="color: #800000">bean</span> <span style="color: #ff0000">id</span><span style="color: #0000ff">="helloBean"</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">="refBeanDemo.HelloBean"</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>         <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="helloWorld"</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>             <span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span>你好，世界<span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>         <span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>         <span style="color: #0000ff">&lt;</span><span style="color: #800000">property</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="date"</span> <span style="color: #ff0000">ref</span><span style="color: #0000ff">="dateBean"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     <span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span> <span style="color: #0000ff">&lt;/</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></pre></div></div>
<p>写JUnit进行测试，方便管理，把JUnit的东东放到test包里。</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> package refBeanDemo;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> import org.springframework.context.ApplicationContext;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> import org.springframework.context.support.ClassPathXmlApplicationContext;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span> import junit.framework.TestCase;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> TestRefBeanDemo extends TestCase {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>     <span style="color: #0000ff">private</span> ApplicationContext context;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> setUp() {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>         context = <span style="color: #0000ff">new</span> ClassPathXmlApplicationContext(<span style="color: #006080">"refBeanDemo/NewFile.xml"</span>);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span> &nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> testSpring() {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>         HelloBean helloBean = (HelloBean)context.getBean(<span style="color: #006080">"helloBean"</span>);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>         System.<span style="color: #0000ff">out</span>.println(helloBean.getDate());</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>         assertEquals(<span style="color: #006080">"你好，世界"</span>, helloBean.getHelloWorld());</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span>         </pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  20:</span>     }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  21:</span> }</pre></div></div>
<p>&nbsp;</p>
<p>运行JUnit测试</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_1.png" atomicselection="true"></a><a href="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_2.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="142" alt="image" src="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_thumb_2.png" width="487" border="0"></a> </p>
<p>测试成功。类的分布如下：</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_3.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="84" alt="image" src="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_thumb_3.png" width="223" border="0"></a> </p>
<p><a href="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_4.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" alt="image" src="http://www.blogjava.net/images/blogjava_net/wonderer/WindowsLiveWriter/JUnitSpring_9CE8/image_thumb_4.png" border="0"></a></p><img src ="http://www.blogjava.net/wonderer/aggbug/130992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-07-18 11:12 <a href="http://www.blogjava.net/wonderer/archive/2007/07/18/130992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>翻译：Exceclsior JET for windows</title><link>http://www.blogjava.net/wonderer/archive/2007/03/31/107651.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Sat, 31 Mar 2007 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/03/31/107651.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/107651.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/03/31/107651.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/107651.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/107651.html</trackback:ping><description><![CDATA[<p></p> <p>自渎文件  <p>Exceclsior JET for windows<br>v4.5<br>请先阅读我 <br>* 大致浏览  <p>-JET 优化<br>-JET 运行<br>-安装工具包<br>*系统需求  <p>*快速开始  <p>*界面工具  <p>-Excelsior JET Launcher<br>-JET 控制面板<br>-jetPackII<br>-JET 安装<br>-开发者资源  <p>*大概<br>Excelsior JET 是一套完全为了优化运行的工具包,是用java编程语言写的可配置和可运行的程序.<br>Excelsior JET 产品包括了 JET优化程序,是一个完全的 java SE 5.0 的运行和安装程序工具包.<br>JET 优化程序能够将你的 class格式或者jar格式的文件转化成 开发者的x86(IA-32)的机器码.这样,<br>您就能够得到windows或者Linux的运行效果极好的原生代码.<br>另外,产生的原生代码具有高度的反编译和反修改能力.<br>JET运行程序包括了sun公司的java2 API的许可并同时提供了所有java的特性,例如垃圾回收机制(garbage colletion).<br>JET 优化程序和运行程序保证在java标准版本5.0(j2sdk 5.0)下正常运行.<br>如果你想要把你的应用程序分发给一定数量的用户,你可以使用安装工具包来准备一个包括已经优化过的程序和一个JET Excelsior的运行引擎.您的客户就可以简单地安装这个包就可以开始使用您的程序.一些多余的软件的安装,例如JRE,不是最终客户的系统的必须. <p>JET 优化程序<br>------------<br>JET优化程序会在程序开始运行之前把java的.class文件和.jar文件转换成开发者系统的高效的本地代码,直接运行在硬件上.<br>优化程序使用了很多很普遍使用在传统C/C++和FORTRAN编译器里的优化技巧.为了解决java的执行效率问题,JET优化程序是注入使用了内嵌虚拟方法,安全可移除普遍存在的同步和栈里分配对象的优雅的(state-of-the art)优化来做出来的.  <p>你可以在JET的控制面板上来用优化程序,一个图形界面的向导的,为了你更快地建立您的项目文件和转换你的程序为高效的可执行程序(请参考下面"图形界面工具"的环节)  <p>JET运行时间(runtime不知道是不是这样翻译)<br>--------------------------------------<br>JET运行环境是一个彻底的java虚拟机.但有一点特别,它包括了一个即时编译器(JIT)来装载和运行标准的java字节码文件.和其他虚拟机的关键的分别是JET运行环境可以同时工作在java的字节码文件和JET优化程序产生的原生文件.例如,一个JET编译的程序(.exe)可以装载以.jar形式的文件为java插件程序.  <p>如果你使用的程序是使用插件的,装载它们回耗费一些时间.为了减少这些时间,你可以在JET运行时间里打开你的JIT缓存.这样一来,用JIT编译器产生的原生代码就会保留在JIT的缓存力并会在后来的程序启动时重新使用.欲知详情,请参考JET用户指南的"混合编译模块"("mixed compilation model").  <p>包装程序包<br>---------  <p>为了提供快速的包装程序,Excelsior JET包括了包装程序(JetPackII),也是一个图形向导.通过它,你可以准备一个包括你的优化的java程序和一个JET的运行时间.  <p>基本的部署程序都是尽量简单的.这个产生的包,例如,一个本身包括了目录,能复制到目标系统.一个在没有解压环境都能点击就运行的系统.你可以简单的整合这些包为任何一个安装程序(NSIS和InstallShield或其他).  <p>包装程序能直接产生一个自解压的安装程序.也就是说,用它产生的安装程序,既可以是无人值的安装,也可以是GUI界面的安装.  <p>在GUI模式下,安装程序会通过安装过程处理允许用户来指定诸如目文件夹,快捷键,开始菜单等等的安装设置.你也可以把安装界面设置成一个飞出的窗口,用户协议和把安装程序显示为英语,德语,法语,俄罗斯语或者日本语,看你的喜好和系统的当地设置.欲知详情,请参考JET用户指南的"开发自动设置"("Deployment automation" ).  <p>请把你的回执提交到java@excelsior-usa.com.  <p>系统要求<br>操作系统:<br>windows版本的Excelsior JET 4.5已经在以下系统通过了JCK(Java SE compliance)的测试:<br>Windows 2000 Professional,<br>Windows 2000 Server,<br>Windows 2003 Server,<br>Windows XP Professional  <p>CPU: Intel Pentium III或800MHZ同等级或更高  <p>内存: 384或以上  <p>硬盘空间: 420MB以上  <p>------------------------------------------------------------------------------------------<br>详细清单在以下网址:  <p><a href="http://www.excelsior-usa.com/jetsysreq.html">http://www.excelsior-usa.com/jetsysreq.html</a></p><img src ="http://www.blogjava.net/wonderer/aggbug/107651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-03-31 16:25 <a href="http://www.blogjava.net/wonderer/archive/2007/03/31/107651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>翻译：Derby 开始之旅</title><link>http://www.blogjava.net/wonderer/archive/2007/03/31/107649.html</link><dc:creator>wonderer</dc:creator><author>wonderer</author><pubDate>Sat, 31 Mar 2007 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/wonderer/archive/2007/03/31/107649.html</guid><wfw:comment>http://www.blogjava.net/wonderer/comments/107649.html</wfw:comment><comments>http://www.blogjava.net/wonderer/archive/2007/03/31/107649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wonderer/comments/commentRss/107649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wonderer/services/trackbacks/107649.html</trackback:ping><description><![CDATA[<p></p> <p>Getting start with Derby  <p>version 10.2<br>来自http://db.apache.org/derby<br>翻译by wonderer <a href="http://www.blogjava.net/wonderer">http://www.blogjava.net/wonderer</a> <p>内容  <p>版权收有<br>Derby的介绍<br>部署选项<br>系统要求<br>Derby的库<br>安装并且用Derby来工作<br>安装Derby<br>设置你的环境变量<br>使用Derby工具和启动系列工具<br>使用工具 sysinfo<br>运行 ij<br>设置类路径(classpath)<br>有经验的JDBC用户的快速指南<br>Derby能运行的环境<br>嵌入式的环境<br>客户/服务端的环境<br>能用的驱动器<br>数据库连接URL<br>文档协定<br>术语<br>SQL语法<br>技术协定  <p>Derby的库和脚本:全部参考目录<br>Derby提供的库<br>不是由Derby提供的库<br>Derby已有的脚本  <p>商标  <p>版权所有<br>我翻译技术文档,这个就不翻译了, ^&lt;&gt;^  <p>Derby的介绍<br>欢迎来到Derby的世界,Derby是一个基于Java(TM)和SQL的关系数据库管理系统(RDBMS),这一部分是介绍 Derby的.<br>部署选项<br>你可以用很多不同的方法来部署Derby<br>你部署的选项包括:<br>-单用户嵌入式的java应用程序.因为不需要管理并同时可以工作跟应用程序工作在同一个虚拟机 上,Derby对于最终用户可以说是几乎透明的.<br>-多用户的嵌入式程序,例如网络服务器,一个应用程序服务器,或一个共享的开放环境.<br>-服务器框架的嵌入式.你可以用网络客户端驱动器或者服务端驱动器,以使用网络服务.  <p>系统要求<br>Derby是一个完全用java开发的数据库引擎.它可以运行在任意一个Java虚拟机里(JVM).  <p>Derby的库<br>Derby的库包括了Derby指南和API参考<br>Derby开发者指南<br>描述了Derby对所有部署的共同的功能和特征,例如Derby的JDBC和SQL的细节,部署Derby应用程序,安全, 和其他高级特性.  <p>Derby参考指南<br>指明了Derby是集成了SQL语言的.同时也提供了Derby的JDBC和JTA执行,关键字,系统表,属性,和SQL异常 的参考信息.<br>调较Derby<br>介绍了怎样通过属性来配置和调较Derby,并提供了属性的参考信息.同时也提供了性能提示,一个性能的 深入讨论,一个Derby最优化的信息.  <p>Derby工具指南<br>一个用derby工具(例如ij,和其他一些如import/export更高级的工具,和数据库类装载器)来工作的指  <p>Derby服务器和管理指南<br>这个指南的第一部分讨论了配置服务器,怎样来编客户端程序,和数据库的管理.<br>另外,一些系统可能需要例如备份数据库这样的管理.这些任务依赖于一些服务器框架,但也是单独的多 用户的大型系统.  <p>指南的第二部分讨论了如备份和调试死锁的管理问题.  <p>Derby API 文档<br>有所有Derby公开类文件自动产生.(没有提供JDBC的API). 如果要更详细的信息,请参考Derby参考指南.  <p>安装并且用Derby来工作<br>如果你是一个Derby和JDBC的新手,这一部分会帮助你使用这个产品.如果你是一个有经验的JDBC程序员, 请看有经验的JDBC用户的快速指南.  <p>安装Derby<br>要安装Derby,你必须先从Derby的网站下载Derby的zip或者tar包.<br>用你的浏览器输入以下网址http://db.apache.org/derby/derby_downloads.html 这个下载页面提供了若干个Derby的发行版本,包括了版本快照和稳定版本二进制发行版本.你也可以找到教你用subversion来获得最新源码的信息.  <p>发行版本有:<br>--二进制发行版包括了代码,示例程序和文档.已经优化了的jar文档在lib目录下<br>--lib发行版本包括了优化程序,部署Derby的最小jar的集合.<br>--lib-debug发行版本包括了调试Derby和报告问题的有用的最大集合.<br>--src发行版本包括了要来产生上面三个发行版的源文件.  <p>这个指南假定你会下载二进制发行版的.<br>解压下载的包,之后有以下几个子目录:<br>--demo包括了示例程序<br>--bin包括了运行和设置环境的代码<br>--javadoc包括了有源代码生产的aip文档<br>--doc包括了Derby文档<br>--lib包括了Derby的jar文件  <p>设置你的环境变量</p><img src ="http://www.blogjava.net/wonderer/aggbug/107649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wonderer/" target="_blank">wonderer</a> 2007-03-31 16:20 <a href="http://www.blogjava.net/wonderer/archive/2007/03/31/107649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>