﻿<?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-Reg-随笔分类-Application</title><link>http://www.blogjava.net/Reg/category/45435.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 28 Jun 2012 10:43:42 GMT</lastBuildDate><pubDate>Thu, 28 Jun 2012 10:43:42 GMT</pubDate><ttl>60</ttl><item><title>网络精灵(IP地址切换器)v2.0.0.3 final &lt;font color=red&gt;附AU3源码&lt;/font&gt;（更新）</title><link>http://www.blogjava.net/Reg/archive/2012/06/19/381088.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 19 Jun 2012 05:05:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2012/06/19/381088.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/381088.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2012/06/19/381088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/381088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/381088.html</trackback:ping><description><![CDATA[
<div>网络精灵 v2.0.0.3<br />软件说明：适合多网络办公使用，碰到杀软提示，请允许通过，如360<br />应用平台：<a class="linkwin7" href="http://www.duote.com/win7"><font color="#0000ff">Win7</font></a>/Vista/WinXP/<br />软件大小：396 KB<br />编写语言：AU3<br />作者邮箱：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#49;&#48;&#49;&#53;&#50;&#48;&#56;&#55;&#55;&#48;&#64;&#49;&#54;&#51;&#46;&#99;&#111;&#109;">1015208770@163.com</a><br /><strike>下载地址1：</strike><a href="http://www.blogjava.net/Files/Reg/NetworkSpirit.rar"><strike>http://www.blogjava.net/Files/Reg/NetworkSpirit.rar</strike></a>(内部函数调用有时候出现不正常的问题)<br />下载地址2：<a href="http://www.blogjava.net/Files/Reg/NetworkSpirit.rar"></a><a href="http://www.blogjava.net/Files/Reg/NetworkSpirit.zip">http://www.blogjava.net/Files/Reg/NetworkSpirit.zip</a>(这个是2.0.0.4版本，更新一个版本号，修复上个版本内部函数调用问题)<br />源码地址1：<a href="http://www.blogjava.net/Files/Reg/NetworkSpirit(code).rar">http://www.blogjava.net/Files/Reg/NetworkSpirit(code).rar(2.0.0.3</a>源码)<br /><br />MD5检测：<br />文件版本: 2.0.0.3<br />修改时间: 2012-06-19, 12:34:44<br />MD5: 09CBAE1D6436C4EAE867AB802140E26F<br />SHA1: 4B2DA60F609948A46989C417E44C17515B8FAA9B<br />CRC32: D3A9D77E<br /><br />更新说明：<br />1.源代码重构<br />2.全新UI<br />3.正式更名为网络精灵(IP地址切换器)<br /><br />功能说明：<br />1.支持多模式切换<br />2.自动屏蔽VMware虚拟网卡设置<br />3.自动判断网线是否已连接<br /><br />软件截图：<br /><br /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/reg/网络精灵v2.0.0.3.jpg" width="604" height="331" /><br /></div> 
 
<img src ="http://www.blogjava.net/Reg/aggbug/381088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2012-06-19 13:05 <a href="http://www.blogjava.net/Reg/archive/2012/06/19/381088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;font color=red&gt;advanced systemcare 5.2注册码&lt;/font&gt;</title><link>http://www.blogjava.net/Reg/archive/2012/04/06/373431.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Fri, 06 Apr 2012 01:21:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2012/04/06/373431.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/373431.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2012/04/06/373431.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/373431.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/373431.html</trackback:ping><description><![CDATA[<font size="2"><br />一款能分析系统性能瓶颈的优化软件。它通过对系统全方位的诊断，找到系统性能的瓶颈所在，然后有针对性地进行修改、优化。此外它还具有间谍软件和恶意软件扫描清除功能，也能将你的隐私信息从电脑中抹除。针对个人免费使用。Advanced <br />WindowsCare Personal已更名为Advanced SystemCare。<br />注册码:<br />79818-39C67-6AD87-1B8D4</font><img src ="http://www.blogjava.net/Reg/aggbug/373431.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2012-04-06 09:21 <a href="http://www.blogjava.net/Reg/archive/2012/04/06/373431.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>a different object with the same identifier value was already associated with the session</title><link>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 05 Apr 2011 14:26:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/347655.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/347655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/347655.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">这个错误我一共遇到过两次，一直没有找到很好的解决方案，这个错误产生原因相信大家都知道，因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.<br />
一开始按网上说的用session.merge(Object)报了一个错，可能是没有用好，改用&nbsp;session.clear();&nbsp;session.update(user);这样就OK了,<br />
方法为：<br />
<br />
</span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;org.springframework.orm.hibernate3.support;<br />
<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;modifyByMerge(User&nbsp;user)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getHibernateTemplate().getSessionFactory().<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getCurrentSession();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.clear();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.update(user);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
项目用的是spring&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session<br />
<br />
</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/347655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2011-04-05 22:26 <a href="http://www.blogjava.net/Reg/archive/2011/04/05/347655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库服务管理工具 V2.0.0.1(原创，望大家拍砖)</title><link>http://www.blogjava.net/Reg/archive/2011/03/30/347285.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Wed, 30 Mar 2011 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2011/03/30/347285.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/347285.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2011/03/30/347285.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/347285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/347285.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">数据库服务管理工具&nbsp;V2.0.0.1<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />创始之初:在开发过程中，烦于每次开机后都要用命令打开servers.msc启动服务，或者把要启动的服务写成一个BAT&nbsp;文件运行服务。我有点不太喜欢黑忽忽的窗口，所以了用AU3写了个小程序用来管理这些服务。<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />功能：<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />1.支持oracle,sqlserver,mysql数据库服务<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />2.支持设置服务启动模式<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />3.支持批量启动服务<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />4.支持Windows(XP,VISTA,2008,7),其他Windows系统由于时间问题没来得急测试。<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />注意:<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />1.oracle的监听器必需配置正确(下版将改进这个问题)</span></div>
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/Reg/48248/o_%e6%95%b0%e6%8d%ae%e5%ba%93%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7.gif" width="541" height="297" /><br />
本地下载:<a href="http://www.blogjava.net/Files/Reg/数据库服务管理工具.rar">http://www.blogjava.net/Files/Reg/数据库服务管理工具.rar</a><br />
分流地址:<a href="http://down.51cto.com/data/184705">http://down.51cto.com/data/184705</a> 
<img src ="http://www.blogjava.net/Reg/aggbug/347285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2011-03-30 15:23 <a href="http://www.blogjava.net/Reg/archive/2011/03/30/347285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让大背景图片不影响网站加载速度</title><link>http://www.blogjava.net/Reg/archive/2010/08/30/330279.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Mon, 30 Aug 2010 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/30/330279.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330279.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/30/330279.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330279.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330279.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">&lt;</span><span style="color: #800000">img&nbsp;</span><span style="color: #ff0000">src</span><span style="color: #0000ff">="/a.php?url=高质量大图片.jpg"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="88"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="98"</span><span style="color: #ff0000">&nbsp;hspace</span><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;vspace</span><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;border</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;lowsrc</span><span style="color: #0000ff">="/a.php?url=低质量图片.jpg"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/330279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-30 14:25 <a href="http://www.blogjava.net/Reg/archive/2010/08/30/330279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图片上传并生成缩略图 </title><link>http://www.blogjava.net/Reg/archive/2010/08/29/330183.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sun, 29 Aug 2010 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/08/29/330183.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/330183.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/08/29/330183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/330183.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/330183.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">1</span><span style="color: #000000">.负责处理图处的bean:<br />
</span><span style="color: #008000">//</span><span style="color: #008000">---------------------------------------------------------------</span><span style="color: #008000"><br />
</span><span style="color: #000000">package&nbsp;bean;<br />
<br />
import&nbsp;javax.imageio.ImageIO;<br />
import&nbsp;javax.imageio.IIOException;<br />
import&nbsp;java.awt.image.BufferedImage;<br />
import&nbsp;java.awt.Image;<br />
import&nbsp;java.io.File;<br />
import&nbsp;java.awt.image.AffineTransformOp;<br />
import&nbsp;java.awt.geom.AffineTransform;<br />
<br />
public&nbsp;class&nbsp;convertImage&nbsp;{<br />
<br />
<br />
private&nbsp;String&nbsp;fileInput&nbsp;;<br />
private&nbsp;String&nbsp;fileOutput&nbsp;;<br />
<br />
public&nbsp;convertImage()<br />
{<br />
<br />
}<br />
public&nbsp;String&nbsp;getFileInput()&nbsp;{<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;fileInput;<br />
}<br />
public&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setFileInput(String&nbsp;fileInput)&nbsp;{<br />
</span><span style="color: #0000ff">this</span><span style="color: #000000">.fileInput&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileInput;<br />
}<br />
public&nbsp;String&nbsp;getFileOutput()&nbsp;{<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;fileOutput;<br />
}<br />
public&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setFileOutput(String&nbsp;fileOutput)&nbsp;{<br />
</span><span style="color: #0000ff">this</span><span style="color: #000000">.fileOutput&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileOutput;<br />
}<br />
<br />
public&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;convert()<br />
{<br />
</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />
File&nbsp;fi&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(fileInput);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">大图文件</span><span style="color: #008000"><br />
</span><span style="color: #000000">File&nbsp;fo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(fileOutput);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">将要转换出的小图文件</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;nw&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">150</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">定义宽为150</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;nh&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">100</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">定义高为100</span><span style="color: #008000"><br />
</span><span style="color: #000000">AffineTransform&nbsp;transform&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;AffineTransform();<br />
BufferedImage&nbsp;bis&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ImageIO.read(fi);<br />
</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;w&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;bis.getWidth();<br />
</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;h&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;bis.getHeight();<br />
<br />
</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">double</span><span style="color: #000000">)nw</span><span style="color: #000000">/</span><span style="color: #000000">w;<br />
</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">double</span><span style="color: #000000">)nh</span><span style="color: #000000">/</span><span style="color: #000000">h&nbsp;;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">判断是横向图形还是坚向图形</span><span style="color: #008000"><br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;w&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;h&nbsp;)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">横向图形</span><span style="color: #008000"><br />
</span><span style="color: #000000">{<br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(sx&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;h&nbsp;)&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;nh&nbsp;)&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">比较高不符合高度要求,就按高度比例</span><span style="color: #008000"><br />
</span><span style="color: #000000">{<br />
<br />
&nbsp;<br />
<br />
sx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sy&nbsp;;<br />
nw&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(w</span><span style="color: #000000">*</span><span style="color: #000000">sx)&nbsp;;<br />
}<br />
</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
{<br />
sy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sx&nbsp;;<br />
nh&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(&nbsp;h</span><span style="color: #000000">*</span><span style="color: #000000">sy)&nbsp;;<br />
}<br />
}<br />
</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
{<br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(sy&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;w&nbsp;)&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;nw&nbsp;)&nbsp;<br />
{<br />
sy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sx&nbsp;;<br />
nh&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(h&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;sy&nbsp;)&nbsp;;<br />
}<br />
</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
{<br />
sx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sy&nbsp;;<br />
nw&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)(w</span><span style="color: #000000">*</span><span style="color: #000000">sx)&nbsp;;<br />
}<br />
}<br />
<br />
transform.setToScale(sx,sy);<br />
AffineTransformOp&nbsp;ato&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;AffineTransformOp(transform,</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
BufferedImage&nbsp;bid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);<br />
ato.filter(bis,bid);<br />
ImageIO.write(bid,</span><span style="color: #000000">"</span><span style="color: #000000">jpeg</span><span style="color: #000000">"</span><span style="color: #000000">,fo);<br />
}&nbsp;<br />
</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)&nbsp;<br />
{<br />
e.printStackTrace();<br />
}<br />
}&nbsp;<br />
}<br />
<br />
</span><span style="color: #000000">2</span><span style="color: #000000">.上传文件的upload.jsp<br />
</span><span style="color: #000000">--------------------------------------------------------------------</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/WEB-INF/struts-html.tld</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;prefix</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">html</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">My&nbsp;JSP&nbsp;'upload.jsp'&nbsp;starting&nbsp;page</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">pragma</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">cache-control</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">expires</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">keywords</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">keyword1,keyword2,keyword3</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">description</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;is&nbsp;my&nbsp;page</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;!--</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">link&nbsp;rel</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">stylesheet</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/css</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;href</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">styles.css</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html:form&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/upload.do</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;enctype</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">multipart/form-data</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html:file&nbsp;property</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">theFileone</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html:submit</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">html:form</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008000">//</span><span style="color: #008000">------------------------------------------------------------------------</span><span style="color: #008000"><br />
</span><span style="color: #000000">3</span><span style="color: #000000">.显示成功页面<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">------------------------------------------------------------------------</span><span style="color: #008000"><br />
</span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java.util.*</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=GB2312</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
String&nbsp;path&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getContextPath();<br />
String&nbsp;basePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getScheme()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">://</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">request.getServerName()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">:</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">request.getServerPort()</span><span style="color: #000000">+</span><span style="color: #000000">path</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;!</span><span style="color: #000000">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">base&nbsp;href</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">&lt;%=basePath%&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">My&nbsp;JSP&nbsp;'display.jsp'&nbsp;starting&nbsp;page</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">pragma</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">cache-control</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">expires</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">keywords</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">keyword1,keyword2,keyword3</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">description</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;is&nbsp;my&nbsp;page</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;!--</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">link&nbsp;rel</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">stylesheet</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/css</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;href</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">styles.css</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">--&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
上传成功.&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">br</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008000">//</span><span style="color: #008000">---------------------------------------------------------------------</span><span style="color: #008000"><br />
</span><span style="color: #000000">4</span><span style="color: #000000">.Action&nbsp;<br />
</span><span style="color: #008000">//</span><span style="color: #008000">Created&nbsp;by&nbsp;MyEclipse&nbsp;Struts</span><span style="color: #008000"><br />
//</span><span style="color: #008000">&nbsp;XSL&nbsp;source&nbsp;(default):&nbsp;platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.1/xslt/JavaClass.xsl</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
package&nbsp;com.mk.struts.action;<br />
<br />
import&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
<br />
import&nbsp;javax.servlet.http.HttpServletRequest;<br />
import&nbsp;javax.servlet.http.HttpServletResponse;<br />
<br />
import&nbsp;org.apache.struts.action.Action;<br />
import&nbsp;org.apache.struts.action.ActionForm;<br />
import&nbsp;org.apache.struts.action.ActionForward;<br />
import&nbsp;org.apache.struts.action.ActionMapping;<br />
import&nbsp;org.apache.struts.upload.FormFile;<br />
<br />
import&nbsp;com.mk.struts.form.UploadForm;<br />
<br />
import&nbsp;bean.convertImage;<br />
<br />
</span><span style="color: #008000">/*</span><span style="color: #008000">*&nbsp;<br />
*&nbsp;MyEclipse&nbsp;Struts<br />
*&nbsp;Creation&nbsp;date:&nbsp;03-28-2006<br />
*&nbsp;<br />
*&nbsp;XDoclet&nbsp;definition:<br />
*&nbsp;@struts.action&nbsp;validate="true"<br />
</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
public&nbsp;class&nbsp;UploadAction&nbsp;extends&nbsp;Action&nbsp;{<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;---------------------------------------------------------&nbsp;Instance&nbsp;Variables</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;---------------------------------------------------------&nbsp;Methods</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
</span><span style="color: #008000">/*</span><span style="color: #008000">*&nbsp;<br />
*&nbsp;Method&nbsp;execute<br />
*&nbsp;@param&nbsp;mapping<br />
*&nbsp;@param&nbsp;form<br />
*&nbsp;@param&nbsp;request<br />
*&nbsp;@param&nbsp;response<br />
*&nbsp;@return&nbsp;ActionForward<br />
</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
public&nbsp;ActionForward&nbsp;execute(<br />
ActionMapping&nbsp;mapping,<br />
ActionForm&nbsp;form,<br />
HttpServletRequest&nbsp;request,<br />
HttpServletResponse&nbsp;response)&nbsp;{<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000"><br />
</span><span style="color: #000000">String&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getCharacterEncoding()&nbsp;;<br />
</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;(encoding&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;)</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(encoding.equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">uft-8</span><span style="color: #000000">"</span><span style="color: #000000">)))<br />
{<br />
response.setContentType(</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=gb2312</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">如果没有找定编码，编码格式设为gb2312&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">}<br />
<br />
UploadForm&nbsp;theForm&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(UploadForm)&nbsp;form&nbsp;;<br />
FormFile&nbsp;fileone&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;theForm.getTheFileone()&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取得上传的文件名</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
{<br />
</span><span style="color: #008000">//</span><span style="color: #008000">开始上传文件</span><span style="color: #008000"><br />
</span><span style="color: #000000">String&nbsp;filePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getServlet().getServletContext().getRealPath(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取得当前路径</span><span style="color: #008000"><br />
</span><span style="color: #000000">InputStream&nbsp;stream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fileone.getInputStream()&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">把文件读入</span><span style="color: #008000"><br />
</span><span style="color: #000000">ByteArrayOutputStream&nbsp;baos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ByteArrayOutputStream()&nbsp;;<br />
<br />
</span><span style="color: #008000">/*</span><span style="color: #008000"><br />
*&nbsp;建立一个上传文件的输出流如果是linux系统请把"\\"&nbsp;换成&nbsp;"/"<br />
</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
OutputStream&nbsp;bos&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(filePath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fileone.getFileName())&nbsp;;<br />
<br />
request.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">fileName</span><span style="color: #000000">"</span><span style="color: #000000">,filePath&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">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fileone.getFileName()&nbsp;)&nbsp;;<br />
</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;bytesRead&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;;<br />
</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;buffer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[</span><span style="color: #000000">8192</span><span style="color: #000000">]&nbsp;;<br />
</span><span style="color: #0000ff">while</span><span style="color: #000000">(&nbsp;(bytesRead&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;stream.read(buffer,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">8192</span><span style="color: #000000">)&nbsp;)&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;)<br />
{<br />
bos.write(buffer,</span><span style="color: #000000">0</span><span style="color: #000000">,bytesRead)&nbsp;;<br />
}<br />
<br />
bos.close();<br />
stream.close()&nbsp;;&nbsp;<br />
<br />
</span><span style="color: #008000">//</span><span style="color: #008000">上传文件完成</span><span style="color: #008000"><br />
</span><span style="color: #000000">String&nbsp;oldurl</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filePath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fileone.getFileName()&nbsp;;<br />
String&nbsp;newurl</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filePath&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">min_</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fileone.getFileName()&nbsp;;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">新的缩略图保存地址</span><span style="color: #008000"><br />
</span><span style="color: #000000"><br />
convertImage&nbsp;convert&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;convertImage()&nbsp;;<br />
convert.setFileInput(oldurl)&nbsp;;<br />
convert.setFileOutput(newurl)&nbsp;;<br />
convert.convert()&nbsp;;<br />
<br />
}<br />
<br />
</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)<br />
{<br />
System.err.print(e)&nbsp;;<br />
}<br />
</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">display</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
}<br />
<br />
}<br />
</span></div>
<span style="font-family: 微软雅黑; font-size: 12pt">来源:http://www.ideagrace.com/html/doc/2006/04/21/00776.html</span>
<img src ="http://www.blogjava.net/Reg/aggbug/330183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-08-29 16:11 <a href="http://www.blogjava.net/Reg/archive/2010/08/29/330183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在一台机器上启动多个Tomcat </title><link>http://www.blogjava.net/Reg/archive/2010/07/24/327020.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sat, 24 Jul 2010 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/07/24/327020.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/327020.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/07/24/327020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/327020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/327020.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">在有些应用中，有时需要在一台机器上启动两个或多个Tomcat，如Tomcat+Eclipse+Geoserver应用中：<br />
<br />
方法：<br />
1、修改Server.xml<br />
&nbsp;将所有涉及到端口的数字的首数字加1，具体情况可视需要而定，只要该端口没有被占用即可。<br />
&nbsp;<br />
&nbsp;如：<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Define&nbsp;an&nbsp;AJP&nbsp;1.3&nbsp;Connector&nbsp;on&nbsp;port&nbsp;8009&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Connector&nbsp;</span><span style="color: #ff0000">port</span><span style="color: #0000ff">="9009"</span><span style="color: #ff0000">&nbsp;protocol</span><span style="color: #0000ff">="AJP/1.3"</span><span style="color: #ff0000">&nbsp;redirectPort</span><span style="color: #0000ff">="9443"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;An&nbsp;Engine&nbsp;represents&nbsp;the&nbsp;entry&nbsp;point&nbsp;(within&nbsp;Catalina)&nbsp;that&nbsp;processes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;every&nbsp;request.&nbsp;&nbsp;The&nbsp;Engine&nbsp;implementation&nbsp;for&nbsp;Tomcat&nbsp;stand&nbsp;alone<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;analyzes&nbsp;the&nbsp;HTTP&nbsp;headers&nbsp;included&nbsp;with&nbsp;the&nbsp;request,&nbsp;and&nbsp;passes&nbsp;them<br />
<br />
2、修改Startup.bat<br />
<br />
将&nbsp;if&nbsp;not&nbsp;"%CATALINA_HOME%"&nbsp;==&nbsp;""&nbsp;goto&nbsp;gotHome&nbsp;语句注释掉，<br />
rem&nbsp;Guess&nbsp;CATALINA_HOME&nbsp;if&nbsp;not&nbsp;defined<br />
set&nbsp;CURRENT_DIR=%cd%<br />
rem&nbsp;if&nbsp;not&nbsp;"%CATALINA_HOME%"&nbsp;==&nbsp;""&nbsp;goto&nbsp;gotHome<br />
set&nbsp;CATALINA_HOME=%CURRENT_DIR%&nbsp;</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/327020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-07-24 16:53 <a href="http://www.blogjava.net/Reg/archive/2010/07/24/327020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新建帐套报错问题解决方法</title><link>http://www.blogjava.net/Reg/archive/2010/07/11/325764.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sat, 10 Jul 2010 19:40:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/07/11/325764.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/325764.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/07/11/325764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/325764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/325764.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">show&nbsp;advanced&nbsp;options</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">reconfigure</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">go</span><span style="color: #000000"><br />
sp_configure&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">xp_cmdshell</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">reconfigure</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">go</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/325764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-07-11 03:40 <a href="http://www.blogjava.net/Reg/archive/2010/07/11/325764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JNI之C++调用Java类 —— java.lang.String</title><link>http://www.blogjava.net/Reg/archive/2009/11/18/302772.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Wed, 18 Nov 2009 03:01:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2009/11/18/302772.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/302772.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2009/11/18/302772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/302772.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/302772.html</trackback:ping><description><![CDATA[<p><a href="http://blog.csdn.net/tyrone1979/archive/2006/07/19/942871.aspx">原文出處</a></p>
<p>JNI之C++调用Java类 —— java.lang.String</p>
<p>&nbsp;&nbsp;&nbsp; 为什么要用C++调用Java类？很难回答，写着文章只是觉得JNI很有意思。于是开始编写一段使用VC++在Windows系统里调用java的String类，在C++里调用String类内的一些方法。</p>
<p>&nbsp;&nbsp;&nbsp; JNI已经被开发了很多年，而在我2年多的Java编程时间里从来没有接触过。直到最近研究JVM实现原理才注意到JNI。 JNI既Java Native Interface，Native这个词我见过我认为最恰当的翻译就是原生。原生的意思就是来自系统自己的，原汁原味的东西，例如Win32 API。Java类需要在虚拟机上运行，也就不是原生的，同样.NET Framework也不是原生的。JNI也就是Java原生接口。关于JNI的规范，以及为什么要使用它，它能做些什么，都在http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/jniTOC.html里记述着。</p>
<p>&nbsp;&nbsp;&nbsp; JNI是规范，它规定了虚拟机的接口，而把具体的实现留给开发者。</p>
<p>&nbsp;&nbsp;&nbsp; JVM的实现不是唯一的，目前存在很多种Java虚拟机，Sun Hotspot，IBM JDK，还有HP的，Kaffe等等。最流行的就是Sun的Hotspot，最复杂的就是IBM JDK，这是IBM的一贯作风。本文不讨论JVM的实现，只关注JNI。如果您安装了Sun的JDK，您就能在[JAVA_HOME]\include目录下找到jni.h。这个头文件就是虚拟机的唯一接口，你可以调用它声明的函数创建一个JVM。</p>
<p>&nbsp;&nbsp;&nbsp; 在说明C++调用Java类之前，我想先演示一下如果编写Java Native Method。</p>
<p>1．编写带有Native方法的Java类</p>
<p>package org.colimas.jni.test;</p>
<p>public class JniTest {</p>
<p>&nbsp;&nbsp;&nbsp; static { System.loadLibrary("JniTestImpl"); }&nbsp; //JVM调用JniTestImpl.dll</p>
<p>&nbsp;&nbsp;&nbsp; public JniTest(){<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; //原生方法<br />
&nbsp;&nbsp;&nbsp; public native void print(String str);</p>
<p>&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp; * @param args<br />
&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JniTest test=new JniTest();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test.print("hello JVM"); //调用原生方法<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>2．使用javah生成c语言头文件。</p>
<p>javah -jni org.colimas.jni.test.JniTest</p>
<p>目录里多了一个org_colimas_jni_test_JniTest.h文件，打开文件，内容如下:</p>
<p>/* DO NOT EDIT THIS FILE - it is machine generated */</p>
<p>#include &lt;jni.h&gt;</p>
<p>/* Header for class org_colimas_jni_test_JniTest */</p>
<p><br />
#ifndef _Included_org_colimas_jni_test_JniTest<br />
#define _Included_org_colimas_jni_test_JniTest<br />
#ifdef __cplusplus</p>
<p>extern "C" {</p>
<p>#endif</p>
<p>/*<br />
&nbsp;* Class:&nbsp;&nbsp;&nbsp;&nbsp; org_colimas_jni_test_JniTest<br />
&nbsp;* Method:&nbsp;&nbsp;&nbsp; print<br />
&nbsp;* Signature: (Ljava/lang/String;)V<br />
&nbsp;*/</p>
<p>JNIEXPORT void JNICALL Java_org_colimas_jni_test_JniTest_print<br />
&nbsp; (JNIEnv *, jobject, jstring);</p>
<p>#ifdef __cplusplus<br />
}</p>
<p>#endif<br />
#endif</p>
<p><br />
其中的Java_org_colimas_jni_test_JniTest_print就是JniTest类里面的print原生方法的C语言声明。</p>
<p>3．编写C代码实现原生方法print</p>
<p>#include &lt;jni.h&gt;<br />
#include "org_colimas_jni_test_JniTest.h" //javah生成的头文件<br />
#include &lt;stdio.h&gt;</p>
<p>JNIEXPORT void JNICALL Java_org_colimas_jni_test_JniTest_print<br />
&nbsp; (JNIEnv *env, jobject object,jstring str)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获得字符串<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char * txt=(*env)-&gt;GetStringUTFChars(env,str,0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%s\n",txt); //打印到控制台<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
}</p>
<p><br />
参数JNIEnv *env，是JNI里最重要的变量。Java.exe创建JVM，之后JVM生成一个env，该env相当于JVM内的Session，可以完成创建Java对象，调用类方法，获得类的属性等等。</p>
<p>在这里env将方法的参数Str从JNI的jstring类型转换为常数char数组。</p>
<p>4．编译</p>
<p>cl&nbsp; /Ic:\j2sdk1.4.2_10\include /Ic:\j2sdk1.4.2_10\include\win32 /c&nbsp; JniTestImpl.c</p>
<p>5．连接为DLL</p>
<p>link /dll JniTestImpl.obj</p>
<p>6．设置PATH</p>
<p>set PATH=C:\MyProject\Colimas\CD\JNI\MyJNI;%PATH%</p>
<p>7．运行</p>
<p>java org.colimas.jni.test.JniTest</p>
<p>返回结果</p>
<p>hello JVM</p>
<p>结束</p>
<p>&nbsp;&nbsp;&nbsp; 以上是实现Java原生方法的开发过程，下面进入正题，使用C++调用Java的java.lang.String类。</p>
<p>1. Object类出创建JVM。</p>
<p>使用Java类之前必须要创建JVM环境。JDK由java.exe来完成。本文有Object类的静态方法BeginJVM来创建，用EndJVM来关闭。</p>
<p>创建JVM之后会在创建2个变量，分别是JNIEnv* env和JavaVM* jvm，JNIEnv上文已经说明，JavaVM，顾名思义，代表Java虚拟机，用它来关闭JVM。</p>
<p>Object类的头文件</p>
<p>#include "jni.h"</p>
<p>class Object<br />
{<br />
public:<br />
&nbsp;&nbsp;&nbsp; static bool BeginJVM();<br />
&nbsp;&nbsp;&nbsp; static bool EndJVM();<br />
&nbsp;&nbsp;&nbsp; Object();<br />
&nbsp;&nbsp;&nbsp; virtual ~Object();</p>
<p>protected:<br />
&nbsp;&nbsp;&nbsp; static JNIEnv* env;<br />
&nbsp;&nbsp;&nbsp; static JavaVM* jvm;<br />
};</p>
<p>object.cpp代码</p>
<p>#include "stdafx.h"<br />
#include "JavaClasses.h"<br />
#include "Object.h"</p>
<p>Object::Object()<br />
{}</p>
<p>Object::~Object()<br />
{}</p>
<p>JNIEnv* Object::env=NULL;<br />
JavaVM* Object::jvm=NULL;</p>
<p>//创建JVM</p>
<p>bool Object::BeginJVM()<br />
{</p>
<p>&nbsp;&nbsp;&nbsp; JavaVMOption options[3];<br />
&nbsp;&nbsp;&nbsp; JavaVMInitArgs vm_args;</p>
<p>&nbsp;&nbsp;&nbsp; //各种参数<br />
&nbsp;&nbsp;&nbsp; options[0].optionString="-Xmx128m";<br />
&nbsp;&nbsp;&nbsp; options[1].optionString="-Verbose:gc";<br />
&nbsp;&nbsp;&nbsp; options[2].optionString="-Djava.class.path=.";</p>
<p>&nbsp;&nbsp;&nbsp; vm_args.version=JNI_VERSION_1_2;<br />
&nbsp;&nbsp;&nbsp; vm_args.options=options;<br />
&nbsp;&nbsp;&nbsp; vm_args.nOptions=3;</p>
<p>&nbsp;&nbsp;&nbsp; //创建JVM，获得jvm和env<br />
&nbsp;&nbsp;&nbsp; int res = JNI_CreateJavaVM(&amp;jvm,(void **)&amp;env, &amp;vm_args);<br />
&nbsp;&nbsp;&nbsp; return true;<br />
}</p>
<p>bool Object::EndJVM()<br />
{<br />
&nbsp;&nbsp;&nbsp; //关闭JVM<br />
&nbsp;&nbsp;&nbsp; jvm-&gt;DestroyJavaVM();<br />
&nbsp;&nbsp;&nbsp; return true;<br />
}</p>
<p>2. C++的String类调用java.lang.String类方法</p>
<p>编写C++版的String类，调用java String类方法。调用的方法如下：</p>
<p>&nbsp;&nbsp;&nbsp; String&nbsp; replaceAll(String regex, String replacement);</p>
<p>&nbsp;&nbsp;&nbsp; boolean endsWith(String str);</p>
<p>&nbsp;&nbsp;&nbsp; int indexOf(String str);</p>
<p>&nbsp;&nbsp;&nbsp; int compareTo(String anotherString);</p>
<p>&nbsp;&nbsp;&nbsp; char charAt(int i);</p>
<p>String的头文件:</p>
<p>class String&nbsp; :public Object<br />
{<br />
public:<br />
//与要调用的Java方法名一致。<br />
&nbsp;&nbsp;&nbsp; const char * replaceAll(char *regex,char *replacement);</p>
<p>&nbsp;&nbsp;&nbsp; bool endsWith(char * str);</p>
<p>&nbsp;&nbsp;&nbsp; int indexOf(char * str);</p>
<p>&nbsp;&nbsp;&nbsp; int compareTo(char *anotherString);</p>
<p>&nbsp;&nbsp;&nbsp; char charAt(int i);</p>
<p>&nbsp;&nbsp;&nbsp; String(char *str);</p>
<p>&nbsp;&nbsp;&nbsp; virtual ~String();<br />
};</p>
<p>实现：</p>
<p>#include "stdafx.h"<br />
#include "String.h"<br />
#include "jni.h"</p>
<p>using namespace std;</p>
<p>jclass clazz;&nbsp;&nbsp;&nbsp; //全局变量，用来传递class<br />
jobject object;&nbsp; //全局变量，用来传递object<br />
String::String(char *str)<br />
{<br />
&nbsp;&nbsp;&nbsp; jstring jstr;</p>
<p>&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; //获得java.lang.String类<br />
&nbsp;&nbsp;&nbsp; clazz=Object::env-&gt;FindClass("java/lang/String");</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; //获得String(String str)构造体<br />
&nbsp;&nbsp;&nbsp; jmethodID mid= Object::env-&gt;GetMethodID(clazz,"&lt;init&gt;", "(Ljava/lang/String;)V");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; //将字符串封装为jstring。<br />
&nbsp;&nbsp;&nbsp; jstr = Object::env-&gt;NewStringUTF(str);</p>
<p>&nbsp;&nbsp;&nbsp; if (jstr == 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Out of memory" &lt;&lt;endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //创建一个java.lang.String对象。<br />
&nbsp;&nbsp;&nbsp; object=Object::env-&gt;NewObject(clazz,mid,jstr);<br />
}</p>
<p>String::~String()<br />
{}</p>
<p>char String::charAt(int i)<br />
{<br />
&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (object ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "String object is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jmethodID mid;</p>
<p>&nbsp;&nbsp;&nbsp; //获得charAt方法，（I）C表示 参数为int型，返回char型。详细参见JNI规范<br />
&nbsp;&nbsp;&nbsp; mid = Object::env-&gt;GetMethodID(clazz,"charAt", "(I)C");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jint ji=i;</p>
<p>&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //调用charAt<br />
&nbsp;&nbsp;&nbsp; jchar z = Object::env-&gt;CallCharMethod(object,mid,i);</p>
<p>&nbsp;&nbsp;&nbsp; //返回结果。<br />
&nbsp;&nbsp;&nbsp; return z;<br />
}</p>
<p><br />
int String::compareTo(char *anotherString)<br />
{</p>
<p>&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (object ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "String object is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jmethodID mid;</p>
<p>&nbsp;&nbsp;&nbsp; //(Ljava/lang/String;)I表示参数为java.lang.String，返回int<br />
&nbsp;&nbsp;&nbsp; mid= Object::env-&gt;GetMethodID(clazz,"compareTo", "(Ljava/lang/String;)I");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jstring jstr = Object::env-&gt;NewStringUTF(anotherString);<br />
&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //调用方法<br />
&nbsp;&nbsp;&nbsp; jint z=Object::env-&gt;CallIntMethod(object,mid,jstr);</p>
<p>&nbsp;&nbsp;&nbsp; //返回结果<br />
&nbsp;&nbsp;&nbsp; return z;<br />
}</p>
<p><br />
int String::indexOf(char *str)<br />
{<br />
&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (object ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "String object is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jmethodID mid;<br />
&nbsp;&nbsp;&nbsp; mid= Object::env-&gt;GetMethodID(clazz,"indexOf", "(Ljava/lang/String;)I");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jstring jstr = Object::env-&gt;NewStringUTF(str);<br />
&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; jint z=Object::env-&gt;CallIntMethod(object,mid,jstr);<br />
&nbsp;&nbsp;&nbsp; return z;<br />
}</p>
<p><br />
bool String::endsWith(char *str)<br />
{</p>
<p>&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (object ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "String object is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jmethodID mid;<br />
&nbsp;&nbsp;&nbsp; mid= Object::env-&gt;GetMethodID(clazz,"endsWith", "(Ljava/lang/String;)Z");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jstring jstr = Object::env-&gt;NewStringUTF(str);<br />
&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; bool z = Object::env-&gt;CallBooleanMethod(object,mid,jstr);<br />
&nbsp;&nbsp;&nbsp; return z;<br />
}</p>
<p><br />
const char * String::replaceAll(char *regex, char *replacement)<br />
{<br />
&nbsp;&nbsp;&nbsp; if (Object::env ==NULL){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "JVM is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (clazz ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "Class is not found" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if (object ==0 ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; "String object is not created" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jmethodID mid;<br />
&nbsp;&nbsp;&nbsp; mid= Object::env-&gt;GetMethodID(clazz,"replaceAll", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;");</p>
<p>&nbsp;&nbsp;&nbsp; if (mid==0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr&lt;&lt; "GetMethodID Error for class" &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(-1);<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; jvalue array[2];<br />
&nbsp;&nbsp;&nbsp; jstring jreg = Object::env-&gt;NewStringUTF(regex);<br />
&nbsp;&nbsp;&nbsp; jstring jstr = Object::env-&gt;NewStringUTF(replacement);</p>
<p>&nbsp;&nbsp;&nbsp; array[0].l=jreg;<br />
&nbsp;&nbsp;&nbsp; array[1].l=jstr;</p>
<p>&nbsp;&nbsp;&nbsp; cout &lt;&lt; "invoking method" &lt;&lt; endl;</p>
<p>&nbsp;&nbsp;&nbsp; //传入参数，调用replaceAll方法<br />
&nbsp;&nbsp;&nbsp; jobject z=Object::env-&gt;CallObjectMethodA(object,mid,array);<br />
&nbsp;&nbsp;&nbsp; const char *result=Object::env-&gt;GetStringUTFChars((jstring)z, 0);</p>
<p>&nbsp;&nbsp;&nbsp; return (const char *)result;<br />
}</p>
<p>3．测试</p>
<p>编写测试代码</p>
<p>using namespace std;</p>
<p>int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])<br />
{<br />
&nbsp;&nbsp;&nbsp; int nRetCode = 0;</p>
<p>&nbsp;&nbsp;&nbsp; if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; _T("Fatal Error: MFC initialization failed") &lt;&lt; endl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nRetCode = 1;<br />
&nbsp;&nbsp;&nbsp; } else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建JVM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object::BeginJVM();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String test("hello");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调用replaceAll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *result = test.replaceAll("l","z");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //返回结果<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt; result &lt;&lt;endl;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关闭JVM<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object::EndJVM();<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return nRetCode;<br />
}</p>
<p><br />
4．运行</p>
<p>编译需要 jni.h和jvm.lib文件。</p>
<p>jni.h在[JAVA_HOME]\include</p>
<p>jvm.lib在[JAVA_HOME]\lib</p>
<p>运行需要jvm.dll</p>
<p>jvm.dll在[JAVA_HOME]\ jre\bin\client</p>
<p>运行结果如下：</p>
<p>invoking method</p>
<p>invoking method</p>
<p>hezzo</p>
<p>Press any key to continue</p>
<p>尽管本文的代码很有意思，但我还没有想到有什么价值，以及应用到实际项目中的理由。</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/onlymilan/archive/2006/07/20/947652.aspx</p>
  <img src ="http://www.blogjava.net/Reg/aggbug/302772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2009-11-18 11:01 <a href="http://www.blogjava.net/Reg/archive/2009/11/18/302772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>父窗体和子窗体传值(js+jquery)</title><link>http://www.blogjava.net/Reg/archive/2009/11/15/302384.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sat, 14 Nov 2009 16:29:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2009/11/15/302384.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/302384.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2009/11/15/302384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/302384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/302384.html</trackback:ping><description><![CDATA[<fieldset><legend>Value.jsp</legend>
<p>&nbsp;&nbsp; &lt;script type="text/javascript" language="javascript"&gt;<br />
&nbsp;&nbsp;&nbsp; $(function()<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;$('#btn1').click(function(){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;var show=window.showModalDialog('show.jsp');<br />
&nbsp;&nbsp;&nbsp;&nbsp;var temp1=pd(show.id);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(temp1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp1.childNodes[3].innerHTML=parseInt(temp1.childNodes[3].innerHTML)+1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var tr=$('&lt;tr&gt;');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var td1=$('&lt;td&gt;').html(show.id).appendTo(tr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var td2=$('&lt;td&gt;').html(show.name).appendTo(tr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var td3=$('&lt;td&gt;').html(show.price).appendTo(tr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var td4=$('&lt;td&gt;').html(1).appendTo(tr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('#tbody1').append(tr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; )<br />
&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; &nbsp;function pd(value){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;var boq;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;var tbody=$('#tbody1 tr');<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;for(var i=1;i&lt;tbody.length;i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;if(tbody[i].childNodes[0].innerHTML==value){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;boq=tbody[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return boq;<br />
&nbsp;&nbsp;&nbsp; &nbsp;}&nbsp;<br />
&nbsp;&nbsp; &lt;/script&gt;<br />
&nbsp; &lt;/head&gt;<br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp; &lt;table&gt;<br />
&nbsp;&nbsp; &lt;tbody id="tbody1"&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;tr &gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;序号&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;名称&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;价格&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;数量&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp; &lt;/tbody&gt;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input id="btn1" type="button"&nbsp; /&gt;<br />
&nbsp; &lt;/body&gt;</p>
</fieldset>
<fieldset><legend>Show.jsp</legend>&nbsp; &lt;script type="text/javascript"&gt;<br />
&nbsp; &nbsp;function dddd(){<br />
&nbsp; &nbsp;&nbsp;var e={id:'',name:'',price:''};<br />
&nbsp; &nbsp;//alert(event.srcElement.innerHTML);<br />
&nbsp; &nbsp;e.id=event.srcElement.parentNode.childNodes[0].innerHTML;<br />
&nbsp; &nbsp;e.name=event.srcElement.parentNode.childNodes[1].innerHTML;<br />
&nbsp; &nbsp;e.price=event.srcElement.parentNode.childNodes[2].innerHTML;<br />
&nbsp; &nbsp;//alert(event.srcElement.parentNode.childNodes[0].innerHTML);<br />
&nbsp; &nbsp;window.returnValue=e;<br />
&nbsp;window.close();<br />
&nbsp; &nbsp;}<br />
&nbsp; &lt;/script&gt;<br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp; &lt;table&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;tr onclick="dddd()"&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;zzz&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;ddd&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;eee&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;tr&nbsp; onclick="dddd()"&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;aaa&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;bbb&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;ccc&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;tr&nbsp; onclick="dddd()"&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;ttt&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;ggg&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&lt;td&gt;nnn&lt;/td&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp; &lt;/body&gt;</fieldset>
 <img src ="http://www.blogjava.net/Reg/aggbug/302384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2009-11-15 00:29 <a href="http://www.blogjava.net/Reg/archive/2009/11/15/302384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>递归树(新思路)[JDBC+Servlet+javaBean]&lt;font color=red&gt;(新手版高手勿进)&lt;/font&gt;</title><link>http://www.blogjava.net/Reg/archive/2009/11/15/302380.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sat, 14 Nov 2009 16:06:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2009/11/15/302380.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/302380.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2009/11/15/302380.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/302380.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/302380.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<fieldset><legend>BaseDao</legend>
<p>&nbsp;package com.common;</p>
<p>import java.sql.Connection;<br />
import java.sql.DriverManager;<br />
import java.sql.ResultSet;<br />
import java.sql.SQLException;<br />
import java.sql.Statement;</p>
<p>public class Common implements ICommon {</p>
<p>&nbsp;//driver<br />
&nbsp;String classStr="oracle.jdbc.driver.OracleDriver";<br />
&nbsp;//connection<br />
&nbsp;String connStr="jdbc:oracle:thin:@127.0.0.1:1521:orcl";<br />
&nbsp;//username<br />
&nbsp;String name="lw";<br />
&nbsp;//password<br />
&nbsp;String password="admin";<br />
&nbsp;</p>
<p>&nbsp;//transact add/delete/update method<br />
&nbsp;public boolean tsg(String sql){<br />
&nbsp;&nbsp;boolean b=false;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;//loading driver<br />
&nbsp;&nbsp;&nbsp;Class.forName(classStr);<br />
&nbsp;&nbsp;&nbsp;//create connection<br />
&nbsp;&nbsp;&nbsp;Connection conn=DriverManager.getConnection(connStr,name,password);<br />
&nbsp;&nbsp;&nbsp;//create transact SQL object<br />
&nbsp;&nbsp;&nbsp;Statement sta=conn.createStatement();<br />
&nbsp;&nbsp;&nbsp;//transact SQL<br />
&nbsp;&nbsp;&nbsp;sta.executeUpdate(sql);<br />
&nbsp;&nbsp;&nbsp;//close sta<br />
&nbsp;&nbsp;&nbsp;sta.close();<br />
&nbsp;&nbsp;&nbsp;//close conn<br />
&nbsp;&nbsp;&nbsp;conn.close();<br />
&nbsp;&nbsp;&nbsp;//set b true<br />
&nbsp;&nbsp;&nbsp;b=true;<br />
&nbsp;&nbsp;} catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;} catch (ClassNotFoundException e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return b;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;//transact select<br />
&nbsp;public ResultSet select(String sql){<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Class.forName(classStr);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;Connection conn=DriverManager.getConnection(connStr,name,password);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;Statement sta=conn.createStatement();<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;ResultSet rs=sta.executeQuery(sql);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;return rs;<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;// TODO: handle exception<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return null;<br />
&nbsp;}<br />
&nbsp;<br />
}</p>
</fieldset> <br />
<fieldset><legend>DemoDaoImpl</legend>
<p>package com.demo.dao;</p>
<p>import java.sql.ResultSet;<br />
import java.sql.SQLException;<br />
import java.util.ArrayList;<br />
import java.util.List;</p>
<p>import com.demo.bean.Dept;<br />
import com.demo.common.BaseDaoImpl;<br />
import com.demo.common.IBaseDao;</p>
<p>public class DemoDaoImpl implements IDemoDao {</p>
<p>&nbsp;private IBaseDao baseDao = new BaseDaoImpl();</p>
<p>&nbsp;public Dept queryDemoById(int id) {</p>
<p>&nbsp;&nbsp;String sql = "select * from dept where did=" + id;</p>
<p>&nbsp;&nbsp;ResultSet rs = baseDao.query(sql);</p>
<p>&nbsp;&nbsp;Dept dept = new Dept();</p>
<p>&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;while (rs.next()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setDid(rs.getInt(1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setDname(rs.getString(2));<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setParentid(rs.getInt(3));<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return dept;<br />
&nbsp;}</p>
<p>&nbsp;public List&lt;Dept&gt; queryDemos(int id) {</p>
<p>&nbsp;&nbsp;String sql = "select * from dept where parentid=" + id;</p>
<p>&nbsp;&nbsp;ResultSet rs = baseDao.query(sql);</p>
<p>&nbsp;&nbsp;List&lt;Dept&gt; list = new ArrayList&lt;Dept&gt;();</p>
<p>&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;while (rs.next()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dept dept = new Dept();<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setDid(rs.getInt(1));<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setDname(rs.getString(2));<br />
&nbsp;&nbsp;&nbsp;&nbsp;dept.setParentid(rs.getInt(3));<br />
&nbsp;&nbsp;&nbsp;&nbsp;list.add(dept);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (SQLException e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;return list;<br />
&nbsp;}</p>
<p>&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;IDemoDao dao = new DemoDaoImpl();<br />
&nbsp;&nbsp;Dept d = dao.queryDemoById(1);<br />
&nbsp;&nbsp;System.out.println(d);<br />
&nbsp;}<br />
}<br />
</p>
</fieldset>
<fieldset><legend>DemoServImpl</legend>
<p>package com.demo.serv;</p>
<p>import java.util.List;</p>
<p>import com.demo.bean.Dept;<br />
import com.demo.dao.DemoDaoImpl;<br />
import com.demo.dao.IDemoDao;</p>
<p>public class DemoServImpl implements IDemoServ {</p>
<p>&nbsp;private IDemoDao demoDao = new DemoDaoImpl();</p>
<p>&nbsp;private static String htmlStr="";<br />
&nbsp;<br />
&nbsp;private void search(int id) {<br />
&nbsp;&nbsp;List&lt;Dept&gt; list = demoDao.queryDemos(id);<br />
&nbsp;&nbsp;htmlStr+="&lt;ul&gt;";<br />
&nbsp;&nbsp;for (Dept dept : list) {<br />
&nbsp;&nbsp;&nbsp;htmlStr+="&lt;li&gt;";<br />
&nbsp;&nbsp;&nbsp;htmlStr+="&lt;a href='"+dept.getDid()+"'&gt;"+dept.getDname()+"&lt;/a&gt;";<br />
&nbsp;&nbsp;&nbsp;htmlStr+="&lt;/li&gt;";<br />
&nbsp;&nbsp;&nbsp;search(dept.getDid());<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;htmlStr+="&lt;/ul&gt;";<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public String resHTML(int id){<br />
&nbsp;&nbsp;htmlStr="";<br />
&nbsp;&nbsp;search(id);<br />
&nbsp;&nbsp;return htmlStr;<br />
&nbsp;}<br />
}<br />
</p>
</fieldset>
<fieldset><legend>DemoServlet</legend>
<p>&nbsp;</p>
<p>package com.demo.servlet;</p>
<p>import java.io.IOException;<br />
import java.io.PrintWriter;</p>
<p>import javax.servlet.ServletException;<br />
import javax.servlet.http.HttpServlet;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>import com.demo.serv.DemoServImpl;<br />
import com.demo.serv.IDemoServ;</p>
<p>public class DemoServlet extends HttpServlet {</p>
<p>&nbsp;private IDemoServ demoserv = new DemoServImpl();</p>
<p>&nbsp;public void doGet(HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />
&nbsp;&nbsp;doPost(request, response);<br />
&nbsp;}</p>
<p>&nbsp;public void doPost(HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />
&nbsp;&nbsp;request.setCharacterEncoding("utf-8");<br />
&nbsp;&nbsp;request.setCharacterEncoding("utf-8");<br />
&nbsp;&nbsp;response.setContentType("text/html");<br />
&nbsp;&nbsp;PrintWriter out = response.getWriter();<br />
&nbsp;&nbsp;int id = Integer.parseInt(request.getParameter("id"));<br />
&nbsp;&nbsp;String reshtml = demoserv.resHTML(id);<br />
&nbsp;&nbsp;out.write(reshtml);<br />
&nbsp;&nbsp;out.flush();<br />
&nbsp;&nbsp;out.close();<br />
&nbsp;}</p>
<p>}</p>
</fieldset>
   <img src ="http://www.blogjava.net/Reg/aggbug/302380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2009-11-15 00:06 <a href="http://www.blogjava.net/Reg/archive/2009/11/15/302380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>