﻿<?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-甘先生Blog-文章分类-Java</title><link>http://www.blogjava.net/gump/category/5127.html</link><description>生活就像一盒巧克力，你永远不知道你会得到什么</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:18:18 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:18:18 GMT</pubDate><ttl>60</ttl><item><title>Google发布Web工具包GWT</title><link>http://www.blogjava.net/gump/articles/50864.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Tue, 06 Jun 2006 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/50864.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/50864.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/50864.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/50864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/50864.html</trackback:ping><description><![CDATA[<p>Google近期发布了一个名为Google Web Toolkit (GWT)的<a href="http://code.google.com/webtoolkit/">Web工具包</a>，这个工具包可以让java程序员不需要写任何HTML和JS就可以轻松地构建一个AJAX应用程序。这个工具包可以把你的java转换成浏览器上的js和html。当然，如果你觉得GWT不能构建出你所需要的客户端脚本，你也可以通过<a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.JavaScriptNativeInterface.html">JSNI</a>来自己写JS代码。</p>
<p>是否还在为了实现AJAX的前进后退而烦恼呢？除了使用<a href="http://codinginparadise.org/projects/dhtml_history">dhtmlhistory</a>这个解决方案，你现在还可以通过GWT来很容易地<a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.History.html">实现这些功能</a>。再也不用担心浏览器的前进和后退按钮成为摆设了。</p>
<p>AJAX提高了用户的体验，但是相应的，开发的复杂程度也提高了，debug也变得异常的困难。通过GWT，程序员们可以很容易地进行<a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.Fundamentals.HostedMode.html">debug</a>工序。而且，这一切都是在java的环境中进行。</p>
<p>浏览器兼容性问题总是能困扰着web开发人员。GWT构建出来的Web程序，将会<a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.Fundamentals.WebMode.html">兼容</a>Firefox,IE,Mozilla, Safari, 和Opera等主流浏览器。而兼容性的工作，不再需要程序员们来进行。</p>
<p>在GWT中，<a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.RemoteProcedureCalls.html">远程通讯</a>将会变得异常简单，程序员们需要做的，仅仅是建立一个可序列化的对象。序列化和解序列化，将会由GWT来进行。<br /></p>
<p>下面是GWT自带的几个Demo:&nbsp; (点击相应页面进入)</p>
<div class="project">
<div class="screenshot"><a href="http://code.google.com/webtoolkit/documentation/examples/dynamictable/demo.html"><img alt="Screenshot" src="http://code.google.com/webtoolkit/images/dynamictable.jpg" /></a> </div>
<div class="info">
<div class="name"><a href="http://code.google.com/webtoolkit/documentation/examples/dynamictable/">Dynamic Table</a></div>
<div class="snippet">A table of data that demonstrates paging over objects retrieved through RPCs.</div>
<div class="apis">
<div class="head">&nbsp;</div>
<div class="item">
<div class="item"><a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.RemoteProcedureCalls.html"></a></div>
<a href="http://code.google.com/webtoolkit/documentation/examples/desktopclone/demo.html"><img alt="Screenshot" src="http://code.google.com/webtoolkit/images/desktopclone.jpg" /></a> </div>
</div>
</div>
</div>
<div class="project">
<div class="info">
<div class="name"><a href="http://code.google.com/webtoolkit/documentation/examples/desktopclone/">Desktop App Clone</a></div>
<div class="snippet">A replica of the UI of a desktop email application.</div>
<div class="item">
<div class="item"><a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.user.client.History.html"></a></div>
</div>
</div>
</div>
<div class="project">
<div class="info">
<div class="apis">
<div class="item">&nbsp;</div>
</div>
</div>
</div>
<div class="project">
<div class="screenshot"><a href="http://code.google.com/webtoolkit/documentation/examples/kitchensink/demo.html"><img alt="Screenshot" src="http://code.google.com/webtoolkit/images/kitchensink.jpg" /></a> </div>
<div class="info">
<div class="name"><a href="http://code.google.com/webtoolkit/documentation/examples/kitchensink/">Kitchen Sink</a></div>
<div class="snippet">An application that includes every UI widget GWT supports.<br /></div>
<div class="snippet"><br /></div>
<div class="snippet">相关链接:<br /><a class="headermaintitle" id="Header1_HeaderTitle" href="http://www.blogjava.net/peacess/">peacess</a>关于GWT的一些文章</div>
<div class="snippet"><a href="http://www.blogjava.net/peacess/category/11337.html">http://www.blogjava.net/peacess/category/11337.html</a></div>
</div>
</div><img src ="http://www.blogjava.net/gump/aggbug/50864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-06-06 18:19 <a href="http://www.blogjava.net/gump/articles/50864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)经典的JBOSS入门文章</title><link>http://www.blogjava.net/gump/articles/40283.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Mon, 10 Apr 2006 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/40283.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/40283.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/40283.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/40283.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/40283.html</trackback:ping><description><![CDATA[前言<br /><br />　　本文是为想在JBOSS环境下进行EJB开发的读者而写的，在阅读本文之前，你最好对EJB有一个基本了解。<br /><br />　　JBOSS是一个开放源码的免费EJB服务器，它实现了其它J2EE所规定的大多数功能，现在sun公司已经把JBOSS作为J2EE1.4的标准实现服务器了，本文就带领大家从Jboss3.2.6的安装开始，一直到开发出一个完整的”hello,world”的ejb为止。 <br /><br />　　JBOSS的安装与启动<br /><br />　　如果你是第一次使用JBOSS，你一定会感到很沮丧，因为它虽然是开放源码，并可以免费下载，但是它的文档或技术培训却是收费的，而且对于国人来说高不可及（几天的培训大约要10000美元，文档也要几十至几百美一份）！如果你试图在网上找一些关于JBOSS下简单入门的文章，可只是那么寥寥可数的几篇，而且很少有菜鸟级的文章。相反，对其核心设计等高深理论性的文章倒是居多，这样反倒让你越看越糊涂。因此，本文的目的就是：让你的JBOSS尽快地跑起来，并马上可以在其之上开发出简单的EJB！<br /><br />　　在安装JBOSS之前，首先要确定你已经安装了jdk1.3或以上版本，由于JBOSS不像weblogic等其它应用服务器捆绑了JDK，因此JBOSS非要jdk的支持才能运行。然后在 <a href="http://www.jboss.org网站上下载一个jboss的发行版(我下载的是jboss-3.2.6.zip)，在本文中我使用的其稳定的发行版jboss3.2.6　（集成了tomcat4.1），需要附带一句的是tomcat是apache基金会旗下著名的开源jsp/servlet服务器，如果要更多的了解tomcat，请访问http://jakarta.apache.org" target="_blank"><font color="#000000">http://www.jboss.org网站上下载一个jboss的发行版(我下载的是jboss-3.2.6.zip)，在本文中我使用的其稳定的发行版JBOSS3.2.6　（集成了tomcat4.1），需要附带一句的是tomcat是apache基金会旗下著名的开源jsp/servlet服务器，如果要更多的了解tomcat，请访问http://jakarta.apache.org</font></a> 以获得更详细的信息。<br /><br />　　当你把jboss-3.2.6.zip下载之后，下一步就是将它解压缩，如果你是在windows上，可以用winzip或winrar；如果是在linux下，就用unzip命令，以我自己为例，假设我将它解压到了如下目录<br /><br />c:\ jboss-3.2.6<br /><br />　　相对于weblogic，websphere等j2ee服务器来说，JBOSS的启动是简单得出乎意料，如果你是windows用户，只需要进入c:\ jboss-3.2.6\bin下面，输入run.bat命令，JBOSS就跑起来啦；如果是linux用户的话，只需要进入c:\ jboss-3.2.6\bin下面，输入run.sh，那么JBOSS也同样运行。怎么样？是挺简单的吧？<br />当你输入run.bat或run.sh后，你会发现屏幕上会不断地滚动一些提示信息，过大约1分钟之后（依赖于你机器的配置，我的是P4 1.7G，128M），提示信息就会停止滚动。（注意：如果你是在windows下，那么请让这个DOS窗口一直保持这种状态，千万不可将其中止！）等到它自己停止。<br />这样，JBOSS就已经处于运行状态了。和其它J2EE服务器一样，JBOSS也提供了一个WEB方式控制台，使用方法是在IE浏览器中输入http://127.0.0.1:8080/web-console/，看见欢迎界面，就成功了。<br />编写第一个EJB：”hello,world”<br /><br />　　下面我们正式开始EJB编程。在编写我们的第一个EJB之前，你应该对EJB有一个大致的了解，如果没有的话，建议你先到网上找一些这方面的文章来看，否则你将无法理解下面要讲述的内容。<br /><br />　　远程接口<br /><br />　　远程接口是指对于客户端而言所能看到了调用接口<br /><br /><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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">HelloWorld.java</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> sample;<br /><img id="Codehighlighter1_34_65_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_65_Open_Text.style.display='none'; Codehighlighter1_34_65_Closed_Image.style.display='inline'; Codehighlighter1_34_65_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_34_65_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_34_65_Closed_Text.style.display='none'; Codehighlighter1_34_65_Open_Image.style.display='inline'; Codehighlighter1_34_65_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_34_65_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_34_65_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">这是一个远程接口，客户端调用这个接口来使真正的ejb工作</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">interface</span><span style="COLOR: #000000"> HelloWorld </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> javax.ejb.EJBObject<br /><img id="Codehighlighter1_123_181_Open_Image" onclick="this.style.display='none'; Codehighlighter1_123_181_Open_Text.style.display='none'; Codehighlighter1_123_181_Closed_Image.style.display='inline'; Codehighlighter1_123_181_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_123_181_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_123_181_Closed_Text.style.display='none'; Codehighlighter1_123_181_Open_Image.style.display='inline'; Codehighlighter1_123_181_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_123_181_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_123_181_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String hello() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> <a title="java" href="/gump" target="_blank">java</a>.rmi.RemoteException;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />　　Home接口<br /><br />　　我们可以把Home接口看做是一个制造EJB的工厂，Home接口告诉EJB容器：“嗨，我的客户要我生成一个EJB，现在我把这个任务交给你啦！”<br /><br /><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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">HelloWorldHome.java</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> sample;<br /><img id="Codehighlighter1_38_67_Open_Image" onclick="this.style.display='none'; Codehighlighter1_38_67_Open_Text.style.display='none'; Codehighlighter1_38_67_Closed_Image.style.display='inline'; Codehighlighter1_38_67_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_38_67_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_38_67_Closed_Text.style.display='none'; Codehighlighter1_38_67_Open_Image.style.display='inline'; Codehighlighter1_38_67_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_38_67_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_38_67_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">Home接口告诉EJB容器怎样生成或销毁EJB的实例</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">interface</span><span style="COLOR: #000000"> HelloWorldHome </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"> javax.ejb.EJBHome<br /><img id="Codehighlighter1_127_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_127_209_Open_Text.style.display='none'; Codehighlighter1_127_209_Closed_Image.style.display='inline'; Codehighlighter1_127_209_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_127_209_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_127_209_Closed_Text.style.display='none'; Codehighlighter1_127_209_Open_Image.style.display='inline'; Codehighlighter1_127_209_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_127_209_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_127_209_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　HelloWorld create() </span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000"> <a title="java" href="/gump" target="_blank">java</a>.rmi.RemoteException,javax.ejb.CreateException;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />　　EJB的实现<br /><br />　　这里才是真正的EJB的实现<br /><br /><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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #008000">//</span><span style="COLOR: #008000">HelloWorldBean.java</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> sample;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.ejb.SessionContext;<br /><img id="Codehighlighter1_71_96_Open_Image" onclick="this.style.display='none'; Codehighlighter1_71_96_Open_Text.style.display='none'; Codehighlighter1_71_96_Closed_Image.style.display='inline'; Codehighlighter1_71_96_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_71_96_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_71_96_Closed_Text.style.display='none'; Codehighlighter1_71_96_Open_Image.style.display='inline'; Codehighlighter1_71_96_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_71_96_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_71_96_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">这个类具体实现的远程接口HelloWorld</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />pubic </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloWorldBean </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> javax.ejb.SessionBean<br /><img id="Codehighlighter1_158_612_Open_Image" onclick="this.style.display='none'; Codehighlighter1_158_612_Open_Text.style.display='none'; Codehighlighter1_158_612_Closed_Image.style.display='inline'; Codehighlighter1_158_612_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_158_612_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_158_612_Closed_Text.style.display='none'; Codehighlighter1_158_612_Open_Image.style.display='inline'; Codehighlighter1_158_612_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_158_612_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_158_612_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> SessionContext ctx;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> setSessionContext(SessionContext ctx)<br /><img id="Codehighlighter1_241_262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_241_262_Open_Text.style.display='none'; Codehighlighter1_241_262_Closed_Image.style.display='inline'; Codehighlighter1_241_262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_241_262_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_241_262_Closed_Text.style.display='none'; Codehighlighter1_241_262_Open_Image.style.display='inline'; Codehighlighter1_241_262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_241_262_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_241_262_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.ctx </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ctx;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　pubic </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> ejbRemove()<br /><img id="Codehighlighter1_289_329_Open_Image" onclick="this.style.display='none'; Codehighlighter1_289_329_Open_Text.style.display='none'; Codehighlighter1_289_329_Closed_Image.style.display='inline'; Codehighlighter1_289_329_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_289_329_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_289_329_Closed_Text.style.display='none'; Codehighlighter1_289_329_Open_Image.style.display='inline'; Codehighlighter1_289_329_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_289_329_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_289_329_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　System.out.println(“ejbRemove()”);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> ejbActivate()<br /><img id="Codehighlighter1_359_401_Open_Image" onclick="this.style.display='none'; Codehighlighter1_359_401_Open_Text.style.display='none'; Codehighlighter1_359_401_Closed_Image.style.display='inline'; Codehighlighter1_359_401_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_359_401_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_359_401_Closed_Text.style.display='none'; Codehighlighter1_359_401_Open_Image.style.display='inline'; Codehighlighter1_359_401_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_359_401_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_359_401_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　System.out.println(“ejbActivate()”);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> ejbPassivate()<br /><img id="Codehighlighter1_432_475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_432_475_Open_Text.style.display='none'; Codehighlighter1_432_475_Closed_Image.style.display='inline'; Codehighlighter1_432_475_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_432_475_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_432_475_Closed_Text.style.display='none'; Codehighlighter1_432_475_Open_Image.style.display='inline'; Codehighlighter1_432_475_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_432_475_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_432_475_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　System.out.println(“ejbPassivate()”);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_478_524_Open_Image" onclick="this.style.display='none'; Codehighlighter1_478_524_Open_Text.style.display='none'; Codehighlighter1_478_524_Closed_Image.style.display='inline'; Codehighlighter1_478_524_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_478_524_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_478_524_Closed_Text.style.display='none'; Codehighlighter1_478_524_Open_Image.style.display='inline'; Codehighlighter1_478_524_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_478_524_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_478_524_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">hello方法是实际的业务逻辑，它可以在客户端显示“hello,world”这个字符串</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> String hello()<br /><img id="Codehighlighter1_550_610_Open_Image" onclick="this.style.display='none'; Codehighlighter1_550_610_Open_Text.style.display='none'; Codehighlighter1_550_610_Closed_Image.style.display='inline'; Codehighlighter1_550_610_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_550_610_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_550_610_Closed_Text.style.display='none'; Codehighlighter1_550_610_Open_Image.style.display='inline'; Codehighlighter1_550_610_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_550_610_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_550_610_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　System.out.println(“hello()”);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> “hello,world”;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />　　好了，这个会话EJB的全部代码编写完毕，下一步我们要做的是编写它的部署文件：<br /><br />　　ejb-jar.xml<br /><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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="COLOR: #0000ff">?&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ejb-jar</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">description</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">JBoss Hello World Application</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">description</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Hello World EJB</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">display-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">enterprise-beans</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">session</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ejb-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Hello</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ejb-name</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">home</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">sample.HelloHome</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">home</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">remote</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">sample.Hello</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">remote</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ejb-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">sample.HelloBean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ejb-class</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">session-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Stateless</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">session-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　　</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">transaction-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">Bean</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">transaction-type</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />　</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">session</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">enterprise-beans</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ejb-jar</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"> </span></div><br />这样我们就完成了一个简单的会话EJB的编写，但其实JBOSS还提供了一个额外的配置文件：JBoss.xml，利用它可以对JBOSS服务器进行更多的定制，但由于本例实在是太简单了，因此我们可以将它省略不写。<br /><br />　　虽然我们完成了这个会话EJB的编写，但还有最后的一步工作要做：打包。首先我们进入当前项目的根目录：<br /><br />cd F:\project\jboss-tutorial <br /><br />　　然后执行jar命令将所有的类及ejb-jar.xml打包：<br /><br />jar cf HelloWorld.jar sample META-INF <br /><br />　　这时你会发现，在当前目录下多了一个名为HelloWorld.jar的文件，这就是我们的最终成品。<br /><br />　　部署我们的EJB<br /><br />　　部署EJB在JBOSS中是一件非常容易的事，你只需简单将HelloWorld.jar拷贝到c:\ jboss-3.2.6\server\default\deploy目录下就可以了。 <br /><br />　这时，你可以切换到JBOSS运行的那个DOS窗口下，你会发现屏幕上会新出现如下提示信息：<br /><br />15:09:21,184 INFO [MainDeployer] Starting deployment of<br />package: file:/F:/jboss<br />-3.２.3/server/default/deploy/HelloWorld.jar<br />15:09:21,324 INFO [EjbModule] Creating<br />15:09:21,354 INFO [EjbModule] Deploying HelloWorld<br />15:09:21,464 INFO [EjbModule] Created<br />15:09:21,484 INFO [EjbModule] Starting<br />15:09:21,555 INFO [EjbModule] Started<br />15:09:21,555 INFO [MainDeployer] Successfully completed<br />deployment of package: file:/F:/jboss-3.2.6/server/default/deploy/HelloWorld.jar <br /><br />　　客户端代码<br /><br />　　如果没有客户端代码的话,那么EJB对我们来说几乎毫无用处。以下我们将编写客户端代码来调用这个HelloWorld。<br /><br />　　如果你在同一台机器上运行客户端代码和JBOSS服务器的话，那以下代码无须任何修改就可以运行，但你的客户端在另一台机器上运行的话，那你要将源码中的相应行改变一下：<br /><br />/*以下是客户端源码中需要修改的行*/<br />env.put(Context.PROVIDER_URL, "localhost:1099"); <br /><br />　　假设EJB部署在一台IP地址为192.168.0.1的机器上，那么就应该将以上源码改为如下：<br /><br />/*以下是客户端源码中修改后的行*/<br />env.put(Context.PROVIDER_URL, "192.168.0.1:1099");<br /><br /><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"><img id="Codehighlighter1_0_24_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_24_Open_Text.style.display='none'; Codehighlighter1_0_24_Closed_Image.style.display='inline'; Codehighlighter1_0_24_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_24_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_0_24_Closed_Text.style.display='none'; Codehighlighter1_0_24_Open_Image.style.display='inline'; Codehighlighter1_0_24_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_24_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id="Codehighlighter1_0_24_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">HelloWorldClient.java</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> sample;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.naming.Context;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> javax.naming.InitialContext;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> <a title="java" href="/gump" target="_blank">java</a>.util.Hashtable;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HelloWorldClient<br /><img id="Codehighlighter1_165_900_Open_Image" onclick="this.style.display='none'; Codehighlighter1_165_900_Open_Text.style.display='none'; Codehighlighter1_165_900_Closed_Image.style.display='inline'; Codehighlighter1_165_900_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_165_900_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_165_900_Closed_Text.style.display='none'; Codehighlighter1_165_900_Open_Image.style.display='inline'; Codehighlighter1_165_900_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_165_900_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_165_900_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main( String [] args )<br /><img id="Codehighlighter1_211_898_Open_Image" onclick="this.style.display='none'; Codehighlighter1_211_898_Open_Text.style.display='none'; Codehighlighter1_211_898_Closed_Image.style.display='inline'; Codehighlighter1_211_898_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_211_898_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_211_898_Closed_Text.style.display='none'; Codehighlighter1_211_898_Open_Image.style.display='inline'; Codehighlighter1_211_898_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　</span><span id="Codehighlighter1_211_898_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_211_898_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　Hashtable env </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Hashtable();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　env.put(Context.INITIAL_CONTEXT_FACTORY,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.jnp.interfaces.NamingContextFactory</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　env.put(Context.PROVIDER_URL, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">localhost:1099</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　env.put(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><a title="java" href="/gump" target="_blank">java</a>.naming.factory.url.pkgs</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">org.jboss.naming:org.jnp.interfaces</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_474_782_Open_Image" onclick="this.style.display='none'; Codehighlighter1_474_782_Open_Text.style.display='none'; Codehighlighter1_474_782_Closed_Image.style.display='inline'; Codehighlighter1_474_782_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_474_782_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_474_782_Closed_Text.style.display='none'; Codehighlighter1_474_782_Open_Image.style.display='inline'; Codehighlighter1_474_782_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span id="Codehighlighter1_474_782_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_474_782_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　Context ctx </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> InitialContext(env);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　Object obj </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ctx.lookup( </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">HelloWorld</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　HelloWorldHome home </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(HelloWorldHome)javax.rmi.PortableRemoteObject.narrow(<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />obj, HelloWorldHome.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　HelloWorld helloWorld </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> home.create();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　System.out.println( helloWorld.hello());<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　helloWorld.remove();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　</span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"> ( Exception e )<br /><img id="Codehighlighter1_810_895_Open_Image" onclick="this.style.display='none'; Codehighlighter1_810_895_Open_Text.style.display='none'; Codehighlighter1_810_895_Closed_Image.style.display='inline'; Codehighlighter1_810_895_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_810_895_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_810_895_Closed_Text.style.display='none'; Codehighlighter1_810_895_Open_Image.style.display='inline'; Codehighlighter1_810_895_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />　　</span><span id="Codehighlighter1_810_895_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_810_895_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　e.printStackTrace();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />　　　System.out.println( </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Exception: </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> e.getMessage() );<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />　}</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>　好了，下面我就就可以编译并运行这个客户端了，如果你在编译的时候JVM报告找不到某些类的话，则可能是你没有将j2ee.jar这个包放在CLASSPATH这个路径变量中。客户端的执行结果虽然只是简单的在屏幕上打印一行“hello,world”，但它是来自于另一个世界<br />——JBOSS的声音！<br /><br />实例代码<a href="/Files/gump/hello.zip">下载</a><img src ="http://www.blogjava.net/gump/aggbug/40283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-04-10 17:38 <a href="http://www.blogjava.net/gump/articles/40283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在C4-1.7G 256M配置上安装Redhat Linux EL3安装Oracle 10G R2  </title><link>http://www.blogjava.net/gump/articles/34529.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Thu, 09 Mar 2006 10:53:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/34529.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/34529.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/34529.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/34529.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/34529.html</trackback:ping><description><![CDATA[硬件配置：<br>CPU: C4-1.7G<br>内存:256M<br>硬盘:40G空了10G给Linux<br><br>OS： Redhat Linux EL3<br>Broswer: FireFox+Opera<br>QQ: LumaQQ<br>JDK: Sun JDK 1.5<br><a title="java" HREF="/gump" target="_blank">java</a> IDE: Eclipse3.12+MyEclipse4.<br>Media Player: XMMS+ Realplayer<br>Input Mothod: Fcitx<br>Database: Oracle10G2R+Mysql5<br>Webserver: Apache<br>Other: PHP,Tomcat5<br><br>安装Oracle最麻烦，我参考了OTN的一篇文章。<br><a href="http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html">http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html</a><br><br>下面是部分截图：<br><a href="http://static.flickr.com/45/110041704_8be590219d_o.png"><img src="http://static.flickr.com/45/110041704_8be590219d.jpg?v=0"></a><br><a href="http://static.flickr.com/39/110035557_e0bb4f1658_o.png"><img src="http://static.flickr.com/39/110035557_e0bb4f1658.jpg?v=0"></a><br>点击图片查看原图。<br><br><br><img src ="http://www.blogjava.net/gump/aggbug/34529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-03-09 18:53 <a href="http://www.blogjava.net/gump/articles/34529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)使用Java Servlet动态生成图片</title><link>http://www.blogjava.net/gump/articles/28779.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Fri, 20 Jan 2006 06:37:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/28779.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/28779.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/28779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/28779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/28779.html</trackback:ping><description><![CDATA[<P>在Web应用中，经常需要动态生成图片，比如实时股市行情，各种统计图等等，这种情况下，图片只能在服务器内存中动态生成并发送给用户，然后在浏览器中显示出来。 </P>
<P>　　本质上，浏览器向服务器请求静态图片如jpeg时，服务器返回的仍然是标准的http响应，只不过http头的contentType不是text/html，而是image/jpeg而已，因此，我们在Servlet中只要设置好contentType，然后发送图像的数据流，浏览器就能正确解析并显示出图片。</P>
<P>　　在Java中，java.awt和java.awt.image包提供了基本的绘制图像的能力，我们可以在内存中绘制好需要的图形，然后编码成jpeg或其他图像格式，最后发送相应给浏览器即可。下面是使用Servlet动态创建图像的详细步骤：</P>
<P>　　1．创建BufferedImage对象，该对象存在内存中，负责保存绘制的图像；</P>
<P>　　2．创建Graphics2D对象，该对象负责绘制所需的图像；</P>
<P>　　3．当绘制完成后，调用com.sun.image.codec.jpeg包的JPEG编码器对其编码；</P>
<P>　　4．最后将编码后的数据输出至HttpResponse即可。</P>
<P>　　注意com.sun.image.codec.jpeg包位于JDK目录的rt.jar包中，它不是公开的API，需要将rt.jar复制到web应用程序的WEB-INF/lib下。</P>
<P>　　我们先创建一个最简单的Servlet：</P>
<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"><IMG id=Codehighlighter1_52_219_Open_Image onclick="this.style.display='none'; Codehighlighter1_52_219_Open_Text.style.display='none'; Codehighlighter1_52_219_Closed_Image.style.display='inline'; Codehighlighter1_52_219_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_52_219_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_219_Closed_Text.style.display='none'; Codehighlighter1_52_219_Open_Image.style.display='inline'; Codehighlighter1_52_219_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;CreateImageServlet&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;HttpServlet&nbsp;</SPAN><SPAN id=Codehighlighter1_52_219_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_52_219_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　</SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;ServletException,&nbsp;IOException<BR><IMG id=Codehighlighter1_173_217_Open_Image onclick="this.style.display='none'; Codehighlighter1_173_217_Open_Text.style.display='none'; Codehighlighter1_173_217_Closed_Image.style.display='inline'; Codehighlighter1_173_217_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_173_217_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_173_217_Closed_Text.style.display='none'; Codehighlighter1_173_217_Open_Image.style.display='inline'; Codehighlighter1_173_217_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>　</SPAN><SPAN id=Codehighlighter1_173_217_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_173_217_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">image/jpeg</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>　}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV>
<P>　我们首先设置了response的contentType为image/jpeg，这样浏览器就可以正确识别。</P>
<P>　　然后，创建一个大小为100x100的BufferedImage对象，准备绘图：</P>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;width&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">100</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;height&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">100</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>BufferedImage&nbsp;bi&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(width,&nbsp;height,&nbsp;BufferedImage.TYPE_INT_RGB);</SPAN></DIV><BR>接着，BufferedImage对象中获取Graphics2D对象并绘图：<BR>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">Graphics2D&nbsp;g&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;bi.createGraphics();&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;创建Graphics2D对象<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;填充背景为白色：</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">g.setBackground(Color.BLUE);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>g.clearRect(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;width,&nbsp;height);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;设置前景色：</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">g.setColor(Color.RED);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;开始绘图：</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">g.drawLine(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">99</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">99</SPAN><SPAN style="COLOR: #000000">);&nbsp;</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;绘制一条直线<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;绘图完成，释放资源：</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">g.dispose();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>bi.flush();</SPAN></DIV>　然后，对BufferedImage进行JPEG编码：<BR>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">JPEGImageEncoder&nbsp;encoder&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;JPEGCodec.createJPEGEncoder(out);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>JPEGEncodeParam&nbsp;param&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;encoder.getDefaultJPEGEncodeParam(bi);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>param.setQuality(</SPAN><SPAN style="COLOR: #000000">1.0f</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>encoder.setJPEGEncodeParam(param);<BR><IMG id=Codehighlighter1_194_217_Open_Image onclick="this.style.display='none'; Codehighlighter1_194_217_Open_Text.style.display='none'; Codehighlighter1_194_217_Closed_Image.style.display='inline'; Codehighlighter1_194_217_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_194_217_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_194_217_Closed_Text.style.display='none'; Codehighlighter1_194_217_Open_Image.style.display='inline'; Codehighlighter1_194_217_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_194_217_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_194_217_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　encoder.encode(bi);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_242_268_Open_Image onclick="this.style.display='none'; Codehighlighter1_242_268_Open_Text.style.display='none'; Codehighlighter1_242_268_Closed_Image.style.display='inline'; Codehighlighter1_242_268_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_242_268_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_242_268_Closed_Text.style.display='none'; Codehighlighter1_242_268_Open_Image.style.display='inline'; Codehighlighter1_242_268_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(IOException&nbsp;ioe)&nbsp;</SPAN><SPAN id=Codehighlighter1_242_268_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_242_268_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　ioe.printStackTrace();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV>
<P>　编码后的JPEG图像直接输出到了out对象中，我们只要传入response. getOutputStream()就可以直接输出到HttpResponse中。</P>
<P>　　下面是完整的代码：<BR></P>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">package</SPAN><SPAN style="COLOR: #000000">&nbsp;com.crackj2ee.web.util;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.io.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;java.awt.image.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;javax.servlet.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;javax.servlet.http.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">&nbsp;com.sun.image.codec.jpeg.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_186_215_Open_Image onclick="this.style.display='none'; Codehighlighter1_186_215_Open_Text.style.display='none'; Codehighlighter1_186_215_Closed_Image.style.display='inline'; Codehighlighter1_186_215_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_186_215_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_186_215_Closed_Text.style.display='none'; Codehighlighter1_186_215_Open_Image.style.display='inline'; Codehighlighter1_186_215_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_186_215_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</SPAN><SPAN id=Codehighlighter1_186_215_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>*&nbsp;</SPAN><SPAN style="COLOR: #808080">@author</SPAN><SPAN style="COLOR: #008000">&nbsp;Liao&nbsp;Xue&nbsp;Feng<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_269_1217_Open_Image onclick="this.style.display='none'; Codehighlighter1_269_1217_Open_Text.style.display='none'; Codehighlighter1_269_1217_Closed_Image.style.display='inline'; Codehighlighter1_269_1217_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_269_1217_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_269_1217_Closed_Text.style.display='none'; Codehighlighter1_269_1217_Open_Image.style.display='inline'; Codehighlighter1_269_1217_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">&nbsp;CreateImageServlet&nbsp;</SPAN><SPAN style="COLOR: #0000ff">extends</SPAN><SPAN style="COLOR: #000000">&nbsp;HttpServlet&nbsp;</SPAN><SPAN id=Codehighlighter1_269_1217_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_269_1217_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　</SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　</SPAN><SPAN style="COLOR: #0000ff">throws</SPAN><SPAN style="COLOR: #000000">&nbsp;ServletException,&nbsp;IOException<BR><IMG id=Codehighlighter1_391_478_Open_Image onclick="this.style.display='none'; Codehighlighter1_391_478_Open_Text.style.display='none'; Codehighlighter1_391_478_Closed_Image.style.display='inline'; Codehighlighter1_391_478_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_391_478_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_391_478_Closed_Text.style.display='none'; Codehighlighter1_391_478_Open_Image.style.display='inline'; Codehighlighter1_391_478_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>　</SPAN><SPAN id=Codehighlighter1_391_478_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_391_478_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　response.setContentType(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">image/jpeg</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　createImage(response.getOutputStream());<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>　}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG id=Codehighlighter1_525_1215_Open_Image onclick="this.style.display='none'; Codehighlighter1_525_1215_Open_Text.style.display='none'; Codehighlighter1_525_1215_Closed_Image.style.display='inline'; Codehighlighter1_525_1215_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_525_1215_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_525_1215_Closed_Text.style.display='none'; Codehighlighter1_525_1215_Open_Image.style.display='inline'; Codehighlighter1_525_1215_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>　</SPAN><SPAN style="COLOR: #0000ff">private</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;createImage(OutputStream&nbsp;out)&nbsp;</SPAN><SPAN id=Codehighlighter1_525_1215_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_525_1215_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;width&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">100</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;height&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">100</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　BufferedImage&nbsp;bi&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(width,&nbsp;height,&nbsp;BufferedImage.TYPE_INT_RGB);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　Graphics2D&nbsp;g&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;bi.createGraphics();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;set&nbsp;background:</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">　　g.setBackground(Color.BLUE);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　g.clearRect(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;width,&nbsp;height);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;set&nbsp;fore&nbsp;color:</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">　　g.setColor(Color.RED);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;start&nbsp;draw:</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">　　g.drawLine(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">99</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">199</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;end&nbsp;draw:</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">　　g.dispose();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　bi.flush();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">&nbsp;encode:</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">　　JPEGImageEncoder&nbsp;encoder&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;JPEGCodec.createJPEGEncoder(out);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　JPEGEncodeParam&nbsp;param&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;encoder.getDefaultJPEGEncodeParam(bi);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　param.setQuality(</SPAN><SPAN style="COLOR: #000000">1.0f</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">false</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　encoder.setJPEGEncodeParam(param);<BR><IMG id=Codehighlighter1_1128_1155_Open_Image onclick="this.style.display='none'; Codehighlighter1_1128_1155_Open_Text.style.display='none'; Codehighlighter1_1128_1155_Closed_Image.style.display='inline'; Codehighlighter1_1128_1155_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1128_1155_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1128_1155_Closed_Text.style.display='none'; Codehighlighter1_1128_1155_Open_Image.style.display='inline'; Codehighlighter1_1128_1155_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_1128_1155_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1128_1155_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　　encoder.encode(bi);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>　　}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_1182_1212_Open_Image onclick="this.style.display='none'; Codehighlighter1_1182_1212_Open_Text.style.display='none'; Codehighlighter1_1182_1212_Closed_Image.style.display='inline'; Codehighlighter1_1182_1212_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_1182_1212_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1182_1212_Closed_Text.style.display='none'; Codehighlighter1_1182_1212_Open_Image.style.display='inline'; Codehighlighter1_1182_1212_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>　　</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">(IOException&nbsp;ioe)&nbsp;</SPAN><SPAN id=Codehighlighter1_1182_1212_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1182_1212_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>　　　ioe.printStackTrace();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>　　}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>　}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV>
<P>　最后将这个Servlet编译，注册到web.xml中，映射路径为/CreateImage，写一个简单的index.html测试：<BR></P>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">＜html＞＜head＞＜/head＞<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>＜body＞<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>＜img&nbsp;src="CreateImage"＞<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>＜/body＞＜/html＞</SPAN></DIV>
<P><BR>如能正确显示，大功告成！<BR></P><img src ="http://www.blogjava.net/gump/aggbug/28779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-01-20 14:37 <a href="http://www.blogjava.net/gump/articles/28779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)SCJP 1.4 考试的详细介绍</title><link>http://www.blogjava.net/gump/articles/28777.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Fri, 20 Jan 2006 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/28777.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/28777.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/28777.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/28777.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/28777.html</trackback:ping><description><![CDATA[<P>&nbsp;SCJP 1.4 考试是 Sun Microsystems 推出的系列 Java 认证考试中的第一个，对于众多程序员来说，它是成为优秀 Java 开发人员的第一步。 </P>
<P>该考试测试 Java 的基础知识并需要对该语言的语法和语义有深入理解。</P>
<P>　　1．参加培训或自学Java经典课程。如果有C语言和面向对象的基础，只需自学SL275课程以及JDK1.4API，否则应该参加相应的培训班进行学习。我对C语言和面向对象都有一些基础，同时又参加了SL275+Weblogic+JSP课程的学习。 </P>
<P>　　2．确定考试版本，明确考查的知识点及知识点的考查难度。目前SCJP考试有两个版本1.2和1.4，两个版本的比较如下表： </P>
<P>　　其中选择题有两种形式：（1）给出一段代码让选择其运行结果；（2）给出关于某基本概念的一些描述语句让选择正确的答案。填空题一般是给出一段正确的代码，不提供选择项，而让你填写上运行结果。 </P>
<P>　　两个版本考查的知识点最大的差别在于310-025包含I/O、AWT，且对各个知识点的考查难度相对较容易，而310-035中去掉了I/O和AWT部分的内容，但增加了对Assertion的考查，同时对Wrapper classes、Collections、hashcode( )和equals( )考查的难度有所加大。所以要根据自己的情况选择合适的版本。我在复习时觉得I/O这一部分的内容较多且不好记忆，就选择了310-035，这个版本较难，也是对自己的一个挑战。 </P>
<P>　　3．根据考查的知识点做练习题。由于认证考试是以试题的形式来考查对知识点的掌握情况，所以多做题是通过考试的最有效方法之一，通过对SL275课程系统的学习，掌握了有关知识点的基础知识以后，必须通过做题来测试自己对知识点的掌握情况，书中写的有关知识点的内容比较概括，有时自己觉得已经掌握了这部分内容，但做题时可能会出现各式各样的错误，比如在声明main( )方法时应为public static void main( String args[ ] ){……}，如果在声明时漏写了static，则在编译时可以通过，而运行时会提示出错信息；如果main( )中的参数写string args[ ]，则在编译时会提示出错，在考试时有类似的题目，故意设一些陷阱，一不小心看似简单的问题却有可能失分。对于给出一段程序代码要求选择其运行结果的题目，最好亲手调试并分析其结果。 </P>
<P>　　对考查Wrapper classes、Collections、hashcode( )和equals( )方法的题目要认真查看API文档（Sun官方网站提供了下载的链接，也可以在Sun网站上在线查看）并做好笔记供以后查阅。通过做题巩固知识点、适应考试题型、找出容易出错的地方，同时对所学知识点也起到了查漏补缺的作用。 </P>
<P>　　4．下载相应的模拟环境进行实战训练，或者在线测试。知识点和题型都掌握以后，还不要急于考试，应该从网上下载一个模拟考试环境的软件进行实战演练。我下载了Jcertify5.0，它需在JDK1.3环境下安装运行，该软件可以设置考查的范围进行practice或者test，是一个很不错的模拟软件，里面的题目与实际考试题目难易程度相当。 </P>
<P>　　通过该软件可以检验你在规定的时间内（120分钟）完成题目的情况及各个知识点掌握的程度，这样就可以根据测验结果有针对性的复习掌握的不太好的知识点，反复测验、练习，直到自己满意为止。 </P>
<P>　　5．考前给自己足够的信心。通过做练习和模拟软件测验，对各个知识点都比较有把握以后，其实这时参加考试已经没有问题了，要相信自己的实力，给自己加油，此时切不可再做较难的题目，我当时就犯了这样的大忌，听说310-035的考试比较难，目前通过的人数不多，我怕考试时的题目比我做的练习题难，在考试的前一天，又做了一套题目，共43题，通过率为仅为42%，这个结果令我很失望，也丧失了自信心，晚上做梦一直考试且考试结果很糟糕，第二天醒来头昏脑胀，本来预约好的考试不得不往后推迟，这是沉痛的教训。 </P>
<P>　　6．预约、考试。知名的IT认证厂商在一些大城市都有指定的考试中心，Sun认证也不例外，考试前三天到Sun指定的考试中心报名，由他们帮你注册，除了考试做题，其他的事情你尽管交给考试中心去做就行了。 </P>
<P>　　7．考试注意事项。按预约的时间提前到达考试中心，熟悉考试环境，稳定情绪，考试中心在考场里设置有监视器，你的一举一动都会被录制下来，所以考试来不得半点虚假，尽早打消“打小抄”的念头。考务人员帮你进入考试系统后，开始进行考试，考试分三个阶段： </P>
<P>　　（1）正式考试前的问卷调查，给定时间为15分，有10来个问题，给出四个选项供你选择，主要调查你对SCJP要考查的知识点的掌握情况，如对数组、类的定义是精通、是了解但需要别人帮助还是不懂等，这部分内容的回答不影响你的考试成绩，如果你读懂问题的意思了，你可以根据自己的实际情况进行选择，否则你尽管随意选一个，一路Next下去，直到所有的问题做完； </P>
<P>　　（2）正式考试，共120分钟，选择题在题面中注明了正确答案的数目(如：choose two)，按Next做下一题，单击exhibit按钮查看题目提供的代码； </P>
<P>　　（3）题目做完后的问卷调查，同样也不影响你的考试结果。问卷结束后紧张、激动的时刻就要到了，此时你可以查看考试结果，考试系统列出你对各个知识点答题情况的一览表，如果你的成绩超过指定的分数底线，则Result即为Pass。 </P>
<P>　　拿到考试结果通知单的一刻是令人兴奋的，考后的总体感觉是SCJP认证并不像自己想象的那么难，只要你做好了充分的准备，拿到SCJP认证证书不成问题。</P><img src ="http://www.blogjava.net/gump/aggbug/28777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-01-20 14:02 <a href="http://www.blogjava.net/gump/articles/28777.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)强烈推荐几个比较好的Java代码查询网站</title><link>http://www.blogjava.net/gump/articles/28771.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Fri, 20 Jan 2006 05:44:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/28771.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/28771.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/28771.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/28771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/28771.html</trackback:ping><description><![CDATA[<P>这些是我经常使用的一些Java代码查询网站，希望在这里能起到抛砖引玉的效果，大家群策群力，一起分享Java快乐。<BR>&nbsp;<BR>&nbsp; 1. java2s&nbsp; <A href="http://www.java2s.com/">http://www.java2s.com/</A><BR>&nbsp;&nbsp; 这个网站非常好，分成三大类，分别是Example、Products、 Articles，每个大类下又分别设许多小类，还有搜索功能，这样查找起来非常方便。。比如，如果要学习SWT/JFace，只要把Example下的SWT JFace Eclipse 研究一下也就可以了。另外，这个网站还有JavaScript DHTML、 C# / C Sharp、 C / ANSI-C、 SQL / MySQL等类。总之，非常好。</P>
<P>&nbsp; 2. codeZoo <A href="http://www.codezoo.com/">http://www.codezoo.com/</A><BR>&nbsp;&nbsp; 这是O'Reily旗下的，除了Java之外，还有Ruby、Python。<BR>&nbsp;<BR>&nbsp; 3. Java学习源代码检索系统&nbsp; <A href="http://www.chinaitlab.com/www/school/codesearch/index.html">http://www.chinaitlab.com/www/school/codesearch/index.html</A><BR>&nbsp;&nbsp; 难得看见国产的，好歹也要支持一下，分类也算清楚。<BR>&nbsp;<BR>&nbsp; 4. Koders&nbsp; <A href="http://www.koders.com/">http://www.koders.com/</A><BR>&nbsp;&nbsp; 是个综合查询的网站，不过它好像是从代码中查找关键词，包含的语言挺多的。<BR>&nbsp; <BR>&nbsp; 5. Resources for Java server-side developers&nbsp; <A href="http://www.java201.com/">http://www.java201.com/</A><BR>&nbsp;&nbsp; 确切的说，它是一个资源收集的网站，代码查询并不多。不过它分类相当细，如Articles、Books、Examples、Extensions、Frameworks等类，你可以输入Spring或Hibernate作为关键词搜索一下看看。<BR>&nbsp;<BR>&nbsp;&nbsp; 存货不多，以后有了再补充。</P><img src ="http://www.blogjava.net/gump/aggbug/28771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-01-20 13:44 <a href="http://www.blogjava.net/gump/articles/28771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)组建J2EE开发团队</title><link>http://www.blogjava.net/gump/articles/28768.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Fri, 20 Jan 2006 05:36:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/28768.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/28768.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/28768.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/28768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/28768.html</trackback:ping><description><![CDATA[<P>J2EE这种应用模型允许不同的开发人员同时进行开发的各个元素。这里阐述一下对不同层次 <BR>的设计人员，开发人员的技术要求。对以下几个分类进行描述。 <BR>1、设计师组建团队 <BR>2、 表现逻辑层的团队角色 <BR>3、 业务逻辑层等团队角色 <BR>4、 数据库访问层的团队角色 <BR>团队的组成可以根据人员的数量和系统的范围大小。例如，不一定所有的角色都要分配，有些人可以担当不能的角色。 </P>
<P>****** <BR>设计师 <BR>****** <BR>在基于组件的应用系统开发中，一个或几个人必须对这个系统的整体需求有全面的了解，比如系统的控制流程，和其他的接口等等。有些公司称这个角色为总工程师，不管怎么叫，这个角色非常重要，他承担协调不同开发小组之间的工作，帮助他们考虑系统这个“大图”。 </P>
<P>******************** <BR>表现逻辑层的团队角色 <BR>******************** </P>
<P>在表现层，用户界面是动态生成的。需要如下开发人员： <BR>1、 Java servlet 开发人员 <BR>2、 JSP 开发人员 <BR>3、 HTML 设计人员 <BR>4、 美工人员 <BR>5、 客户端的JavaScript 开发人员 <BR>Servlet 开发人员建立表现层的逻辑，而其他人员建立表现的形式。 </P>
<P>Java Servlet 开发人员 </P>
<P>Servlet处理页和页之间的浏览，会话管理，简单的输入验证。Servlet也将业务逻辑的元素连接起来。 <BR>Servlet开发人员必须理解一些相关事宜，HTTP请求，安全，多语言，和一些页面元素如session, cookie，超时等等。J2EE的应用里面，servlet必须用Java来写，Servlet可能会调用JSP, EJB, JDBC等等。因此，servlet开发人员要与应用系统的其他人员紧密合作。 </P>
<P>JSP 开发人员 </P>
<P>JSP开发人员与servlet开发人员密切合作来定义系统的表现层页面。即使在复杂的开发项目里，JSP和servlet的开发人员也可能是一个人。 <BR>然而，如果一个系统中大部分Java在servlet而不是在JSP里，JSP人员就不必对Java非常熟悉。 </P>
<P>HTML 设计人员 </P>
<P>HTML 设计人员对HTML页面进行优化。例如，他可能要完成以下任务： </P>
<P>1、保证在不同的浏览器中所有的页面都能正常显示 <BR>2、 保证低速的调制解调器访问也不受影响 <BR>3、 对JSP设计人员的页面进行进一步的优化 </P>
<P>美工人员 </P>
<P>美工人员创建图片等等。这些图片要能小体积，快速下载。美工与HTML页面人员紧密合作。 </P>
<P>客户端的JavaScript 开发人员 <BR>使用客户端的JavaScript有很多原因。比如，可以处理简单的输入验证，不必提交给服务器，还可以让用户界面更生动。这个角色和servlet, JSP人员紧密合作。 </P>
<P>******************** <BR>业务逻辑层的团队角色 <BR>******************** </P>
<P>业务逻辑层包含业务规则和业务实体。需要以下人员： </P>
<P>1、Session bean 开发人员 <BR>2、 Entity bean 开发人员 </P>
<P>Session Bean 开发人员 </P>
<P>Session beans包含业务处理和业务规则的逻辑。比如，一个session bean 可能设计成计算一个支票的税率。如果一个系统面临处理经常变化的复杂逻辑，而又大量使用session bean，结果是，session bean就需要不断的更新。 <BR>Session bean 的开发人员一般是一个领域的专家，理解复杂的，专门领域的逻辑，还有数据验证的规则。这个人员与servlet和entity bean开发人员紧密合作。 <BR>Session bean可能需要调用JDBC接口，和其他的EJB。无状态的session bean系统运行的会更好一些。因为，如果计算费率是一个有状态的session bean，系统就必须访问一个保存bean的状态信息的服务器。如果那个服务器恰巧出现问题，整个流程就会受阻。 </P>
<P>Entity Bean 开发人员 </P>
<P>Entity bean代表永久的对象，如一个数据库中的一条记录。Entity bean开发人员的任务是设计一个面向对象的所有业务数据的组织图。建立面向对象的试图意味着要将数据库中的表（关系型的）映射成entity bean。例如，开发人员需要将客户表，发票表，和订单表转换成相应的客户，发票，和订单对象。 <BR>一个entity bean 开发人员与session bean, Servlet开发人员密切合作，保证应用系统提供快速的，灵活的，可扩展的对业务数据的访问。 <BR>Entity bean 可能会大量的调用JDBC接口。而entity bean 之间的调用会很少。 </P>
<P>********************** <BR>数据库访问层的团队角色 <BR>********************** </P>
<P>在数据库访问层，开发人员需要建立关系型数据库的ER图，数据字典等等相关文档。所有对数据库的修改，访问等等权限操作都要经过数据库访问层开发人员。这个角色在大部分项目中担当DBA的角色。 </P>
<P>团队组建之后，就可以开始设计用户界面。 </P>
<P>************ <BR>设计用户界面 <BR>************ </P>
<P>建议从前到后开始设计应用系统。就是说，先设计用户界面，再设计EJB，这样效率最高。 <BR>安博公司已经做了大量的界面设计工作，以后的工作完全可以参照已有的设计。下面提一些常用的建议性问题： <BR>1、页面流程是什么？ <BR>2、 每个页面上的命令按钮是什么？ <BR>3、是否适用frame? <BR>4、是否有公司标准的Logo,广告条幅？ <BR>5、 在什么地方需要登录过程？ <BR>6、 多语言的问题？ <BR>这些和设计servlet, JSP相关。</P><img src ="http://www.blogjava.net/gump/aggbug/28768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2006-01-20 13:36 <a href="http://www.blogjava.net/gump/articles/28768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个Laszlo-Jspl简单结合例子(Laszlo经过jsp读取数据库数据) </title><link>http://www.blogjava.net/gump/articles/21610.html</link><dc:creator>甘先生</dc:creator><author>甘先生</author><pubDate>Mon, 28 Nov 2005 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/gump/articles/21610.html</guid><wfw:comment>http://www.blogjava.net/gump/comments/21610.html</wfw:comment><comments>http://www.blogjava.net/gump/articles/21610.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/gump/comments/commentRss/21610.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gump/services/trackbacks/21610.html</trackback:ping><description><![CDATA[<STRONG>&nbsp; 数据库表:tblMobile.sql<BR>建立一个简单的测试表。<BR>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">create</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">table</SPAN><SPAN style="COLOR: #000000">&nbsp;tblMobile&nbsp;(id&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">int</SPAN><SPAN style="COLOR: #000000">,&nbsp;name&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">varchar</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">20</SPAN><SPAN style="COLOR: #000000">),&nbsp;price&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">decimal</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">10</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN><SPAN style="COLOR: #000000">),&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">image</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">varchar</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">50</SPAN><SPAN style="COLOR: #000000">),&nbsp;categoryid&nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">varchar</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">20</SPAN><SPAN style="COLOR: #000000">))&nbsp;;<BR>insert into tblMobile(1,'hello',200,'1.jpg','moto');</SPAN></DIV><BR><BR><BR>这里利用一个jsp文件生成xml文件。<BR>phonelist.jsp<BR><BR><BR><BR>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;?</SPAN><SPAN style="COLOR: #000000">xml&nbsp;version</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">1.0</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;encoding</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">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></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=utf-8</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">@&nbsp;page&nbsp;</SPAN><SPAN style="COLOR: #0000ff">import</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java.sql.*</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">phonelist</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;%</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sql&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;categoryID&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;request.getParameter(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">categoryID</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG id=Codehighlighter1_257_1371_Open_Image onclick="this.style.display='none'; Codehighlighter1_257_1371_Open_Text.style.display='none'; Codehighlighter1_257_1371_Closed_Image.style.display='inline'; Codehighlighter1_257_1371_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_257_1371_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_257_1371_Closed_Text.style.display='none'; Codehighlighter1_257_1371_Open_Image.style.display='inline'; Codehighlighter1_257_1371_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">try</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN id=Codehighlighter1_257_1371_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_257_1371_Open_Text><SPAN style="COLOR: #000000">{&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class.forName(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">org.hsqldb.jdbcDriver</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">).newInstance();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;URL</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">jdbc:hsqldb:hsql://localhost/xdb</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;user</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">sa</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;DriverManager.getConnection(URL,user,password);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Statement&nbsp;stmt&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;conn.createStatement();&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;strOut&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;String(categoryID.getBytes(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">ISO8859-1</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">),&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">GBK</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">categoryID=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">categoryID);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">categoryID=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">strOut);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">select&nbsp;id,&nbsp;name,&nbsp;price,&nbsp;image&nbsp;from&nbsp;tblMobile&nbsp;where&nbsp;categoryid='</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;strOut&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;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;stmt.executeQuery(sql);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG id=Codehighlighter1_910_1293_Open_Image onclick="this.style.display='none'; Codehighlighter1_910_1293_Open_Text.style.display='none'; Codehighlighter1_910_1293_Closed_Image.style.display='inline'; Codehighlighter1_910_1293_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_910_1293_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_910_1293_Closed_Text.style.display='none'; Codehighlighter1_910_1293_Open_Image.style.display='inline'; Codehighlighter1_910_1293_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN><SPAN style="COLOR: #000000">&nbsp;(rs.next())</SPAN><SPAN id=Codehighlighter1_910_1293_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_910_1293_Open_Text><SPAN style="COLOR: #000000">{&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;phone&nbsp;id=\</SPAN><SPAN style="COLOR: #000000">""</SPAN><SPAN style="COLOR: #000000">&nbsp;+&nbsp;rs.getString(1)&nbsp;+&nbsp;</SPAN><SPAN style="COLOR: #000000">"</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;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;id&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.getString(</SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;/id&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;name&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.getString(</SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;/name&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;price&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.getString(</SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;/price&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;image&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;rs.getString(</SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">)&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;/image&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;/phone&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs.close();&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stmt.close();&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conn.close();&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;<BR><IMG id=Codehighlighter1_1393_1425_Open_Image onclick="this.style.display='none'; Codehighlighter1_1393_1425_Open_Text.style.display='none'; Codehighlighter1_1393_1425_Closed_Image.style.display='inline'; Codehighlighter1_1393_1425_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_1393_1425_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1393_1425_Closed_Text.style.display='none'; Codehighlighter1_1393_1425_Open_Image.style.display='inline'; Codehighlighter1_1393_1425_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">catch</SPAN><SPAN style="COLOR: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</SPAN><SPAN id=Codehighlighter1_1393_1425_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_1393_1425_Open_Text><SPAN style="COLOR: #000000">{&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(e);&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">%&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">phonelist</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR><BR>test.lzx<BR><BR>
<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"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">canvas&nbsp;</SPAN><SPAN style="COLOR: #ff0000">height</SPAN><SPAN style="COLOR: #0000ff">="100"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;width</SPAN><SPAN style="COLOR: #0000ff">="500"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">dataset&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="myData"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;autorequest</SPAN><SPAN style="COLOR: #0000ff">="true"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="http"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;src</SPAN><SPAN style="COLOR: #0000ff">="phonelist.jsp?categoryID=moto"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">simplelayout&nbsp;</SPAN><SPAN style="COLOR: #ff0000">axis</SPAN><SPAN style="COLOR: #0000ff">="y"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">view&nbsp;</SPAN><SPAN style="COLOR: #ff0000">datapath</SPAN><SPAN style="COLOR: #0000ff">="myData:/phonelist/phone"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">simplelayout&nbsp;</SPAN><SPAN style="COLOR: #ff0000">axis</SPAN><SPAN style="COLOR: #0000ff">="x"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">text&nbsp;</SPAN><SPAN style="COLOR: #ff0000">datapath</SPAN><SPAN style="COLOR: #0000ff">="image/text()"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">text&nbsp;</SPAN><SPAN style="COLOR: #ff0000">datapath</SPAN><SPAN style="COLOR: #0000ff">="name/text()"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">view</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">canvas</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV><BR></STRONG><BR><BR><img src ="http://www.blogjava.net/gump/aggbug/21610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gump/" target="_blank">甘先生</a> 2005-11-28 09:59 <a href="http://www.blogjava.net/gump/articles/21610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>