﻿<?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-囝泺的博客[www.bluenuo.cn]</title><link>http://www.blogjava.net/chybox/</link><description>网盘[disk.bluenuo.cn]</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 20:49:05 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 20:49:05 GMT</pubDate><ttl>60</ttl><item><title>通用离开页面前检查form内容是否发生改变</title><link>http://www.blogjava.net/chybox/archive/2009/02/07/253707.html</link><dc:creator>囝泺</dc:creator><author>囝泺</author><pubDate>Sat, 07 Feb 2009 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/chybox/archive/2009/02/07/253707.html</guid><wfw:comment>http://www.blogjava.net/chybox/comments/253707.html</wfw:comment><comments>http://www.blogjava.net/chybox/archive/2009/02/07/253707.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chybox/comments/commentRss/253707.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chybox/services/trackbacks/253707.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 文/囝泺 www.bluenuo.cn使用方法：1.在需要的页面引入javascript核心代码（下面有，复制粘贴即可）2.在body的onload事件中加入saveElementsOnLoad(myform);方法，其中myform是所验证的form对象3.在body的onbeforeunload事件中加入return checkFormOnUnload(myform);其中my...&nbsp;&nbsp;<a href='http://www.blogjava.net/chybox/archive/2009/02/07/253707.html'>阅读全文</a><img src ="http://www.blogjava.net/chybox/aggbug/253707.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chybox/" target="_blank">囝泺</a> 2009-02-07 16:05 <a href="http://www.blogjava.net/chybox/archive/2009/02/07/253707.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下安装使用Subversion</title><link>http://www.blogjava.net/chybox/archive/2008/05/09/199448.html</link><dc:creator>囝泺</dc:creator><author>囝泺</author><pubDate>Fri, 09 May 2008 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/chybox/archive/2008/05/09/199448.html</guid><wfw:comment>http://www.blogjava.net/chybox/comments/199448.html</wfw:comment><comments>http://www.blogjava.net/chybox/archive/2008/05/09/199448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chybox/comments/commentRss/199448.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chybox/services/trackbacks/199448.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 这几天把工作环境从windows下面转到linux了，因为用的java语言开发，项目移植还是蛮容易的，但不准备再用CVS来做版本控制系统了，决定换功能较强大的SVN，于是了解了下linux下安装Subversion的方法，现总结如下<br />
<p align="center">文/囝泺 <a href="http://www.bluenuo.cn/">www.bluenuo.cn</a>&nbsp;</p>
<hr size="2" width="100%" />
<span style="color: #2000ff;"><span style="color: #020202;"><strong>编译安装相关软件</strong>（我们采用源码编译安装）</span></span><br />
<span style="color: #2000ff;"><span style="color: #020202;">a.httpd<br />
下载地址：http://httpd.apache.org<br />
下载</span></span><a href="http://apache.mirror.phpchina.com/httpd/httpd-2.2.8.tar.gz">httpd-*.tar.gz</a> (*为版本号，这里使用的是2.8.8）<br />
安装<br />
<span>
#tar -zxvf httpd-2.8.8.tar.gz<br />
#cd httpd-2.8.8<br />
#./configure --enable-dav --enable-so --enable-maintainer-mode<br />
#make<br />
#make install<br />
b.</span><span>Berkeley DB<br />
下载地址：http://www.oracle.com/technology/products/berkeley-db/index.html<br />
下载</span>Berkeley DB 4.7.25.tar.gz<br />
<span style="color: #2000ff;"><span style="color: #020202;">安装<br />
</span></span><span>
#tar -zxvf db-4.4.20.NC.tar.gz<br />
#cd db-4.4.20.NC/build_unix/<br />
#../dist/configure --prefix=/usr/local/bdb<br />
#make<br />
#make install</span><br />
<span>c.Subversion<br />
下载地址：http://subversion.tigris.org<br />
下载</span><a href="http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz">subversion-*.tar.gz</a>和<a href="http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz">
subversion-deps-*.tar.gz</a>包下下来，后一个包里是一些依赖程序，把2个包放在同一个目录下，解压缩，解压的文件会自动放到同一个文件夹下。<br />
安装<br />
<span>
#tar -zxvf subversion-1.2.3.tar.gz<br />
#cd subversion-1.2.3<br />
#./configure --with-berkeley-db=/usr/local/bdb --with-apxs=/usr/local/apache2/bin/apxs<br />
#make<br />
#make install</span><br />
安装成功后你可以使用<span>
#svnadmin --version检查是否安装成功<br />
安装成功会出现<br />
</span>svnadmin，版本 1.4.6 (r28521)<br />
&nbsp;&nbsp; 编译于 May&nbsp; 6 2008，19:55:08<br />
&#8230;&#8230;&#8230;&#8230;<br />
<strong>配置 <br />
</strong>配置Subversion<br />
# mkdir /home/*/svn(*代表用户目录）<br />
# cd /usr/local/subversion/bin<br />
# ./svnadmin create /home/*/svn/test<br />
这样我们就在svn下面建立了一个test仓库<br />
修改httpd配置文件<br />
# vi /usr/local/apache2/conf/httpd.conf <font color="#008000"><br />
在最下面添加如下内容</font><br />
LoadModule dav_svn_module modules/mod_dav_svn.so <br />
LoadModule authz_svn_module modules/mod_authz_svn.so <br />
&lt;Location /svn&gt; <br />
DAV svn <br />
SVNParentPath /home/*/svn/ <font color="#008000">//svn父目录 </font><br />
AuthzSVNAccessFile /home/*/svn/authz.conf <font color="#008000">//权限配置文件 </font><br />
AuthType Basic <font color="#008000">//连接类型设置 </font><br />
AuthName "Subversion.zoneyump" <font color="#008000">//连接框提示 </font><br />
AuthUserFile /home/*/svn/authfile <font color="#008000">//用户配置文件 </font><br />
Require valid-user <font color="#008000">//采用何种认证 </font><br />
&lt;/Location&gt;<br />
<font color="#008000">//其中authfile是通过"htpasswd [&#8211;c] /home/*/svn/authfile username password"来创建的 <br />
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它，<br />
//则只能第一个用户可以访问新建库<br />
</font>修改好后保存，重启apache<br />
# ./usr/local/apache2/bin/apachectl restart <br />
<p> </p>
权限管理<br />
<p>
1)增加用户<br />
# ./usr/local/apache2/bin/htpasswd [-c] /home/*/svn/authfile wooin<br />
<font color="#008000">//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码，完成对用户的增加</font><br />
# ./usr/local/apache2/bin/htpasswd authfile 用户名(加入新的用户)<br />
2)权限分配</p>
<p># vi /home/svnroot/repository/authz.conf <br />
&nbsp;&nbsp;  [test:/] <font color="#008000">//这表示，仓库test的根目录下的访问权限 </font><br />
&nbsp;&nbsp;  wooin = rw <font color="#008000">//test仓库wooin用户具有读和写权限 </font><br />
&nbsp;&nbsp;  bao = r <font color="#008000">//test仓库bao用户具有读权限 </font><br />
&nbsp;&nbsp;  [test2:/] <font color="#008000">//test2仓库根目录下的访问权限 </font><br />
&nbsp;&nbsp;  wooin = r <font color="#008000">//wooin用户在test2仓库根目录下只有读权限 </font><br />
&nbsp;&nbsp;  bao = <font color="#008000">//bao用户在 test2仓库根目录下无任何权限 </font><br />
&nbsp;&nbsp;  [/] <font color="#008000">//这个表示在所有仓库的根目录下 </font><br />
&nbsp;&nbsp;  * = r <font color="#008000">//这个表示对所有的用户都具有读权限 </font><br />
&nbsp;&nbsp;  #[groups] <font color="#008000">//这个表示群组设置 </font><br />
&nbsp;&nbsp;  #svn1-developers = wooin, bao <font color="#008000">//这个表示某群组里的成员 </font><br />
&nbsp;&nbsp;  #svn2-developers = wooin <br />
&nbsp;&nbsp;  #[svn1:/] <br />
&nbsp;&nbsp;  #@svn1-developers = rw <font color="#008000">//如果在前面加上@符号，则表示这是个群组权限设置</font></p>
<p> </p>
<p>将这个设置完成后。重启Apache，就可以通过 <br />
http://localhost/svn/test <br />
这个URL来访问仓库了</p>
<p>至于在eclipse使用svn就需要自己安装svn插件了</p>
<p>这里介紹Eclipse的SVN Plugin，叫做Subclipse,官方网站的下载地址在<a href="http://subclipse.tigris.org/"><font color="#007799">http://subclipse.tigris.org/</font></a>，也提供了update site <a href="http://subclipse.tigris.org/update"><font color="#007799">http://subclipse.tigris.org/update</font></a>。<br />
Eclipse
的使用者可以通过Eclipse的插件自动下载和更新功能来安装这个插件，在Eclipse的菜单中选择Help-&gt;Software
Updates-&gt;Find and Install-&gt; Search for new features to install
-&gt;New Remote Site。URL中就输入<a href="http://subclipse.tigris.org/update"><font color="#007799">http://subclipse.tigris.org/update</font></a>，Eclipse就会自已安装上了.
</p>
<p>安装完成后，在Eclipse的plugins中就会多了5个包，命名为org.tigris.subversion.*的都应该是了。打开
Eclipse,window-&gt;show
view窗口中多了一个SVN文件夹，到此就证明svn插件成功的安装上了。具体的使用方法，在Eclipse的Help中有详细的帮助
Subclipse - Subversion Eclipse
Plugin，教你一步一步的使用SVN的客户端了。如果你对subversion想进行深入的了解，那么看看help中的Version
Control with
Subversion一定有所收获，通过本人的观察，这份文档和sbuversion安装文件中提供的官方文档一样，这里看起来就更舒服些了。</p>
<p>注：本文是总结前辈资料的成果</p>
<hr size="2" width="100%" />
<p><font size="3">囝泺</font>，武汉科技学院<br />
您可以通过其博客了解更多信息和文章：<a href="http://www.bluenuo.cn" target="_blank">http://www.bluenuo.cn</a> </p>
<p><font color="#008000"></font></p>
<p> </p>
<span style="color: #2000ff;">
</span>
<img src ="http://www.blogjava.net/chybox/aggbug/199448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chybox/" target="_blank">囝泺</a> 2008-05-09 11:41 <a href="http://www.blogjava.net/chybox/archive/2008/05/09/199448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>easyJWeb+Eclipse快速入门</title><link>http://www.blogjava.net/chybox/archive/2008/01/29/178393.html</link><dc:creator>囝泺</dc:creator><author>囝泺</author><pubDate>Tue, 29 Jan 2008 11:26:00 GMT</pubDate><guid>http://www.blogjava.net/chybox/archive/2008/01/29/178393.html</guid><wfw:comment>http://www.blogjava.net/chybox/comments/178393.html</wfw:comment><comments>http://www.blogjava.net/chybox/archive/2008/01/29/178393.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/chybox/comments/commentRss/178393.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chybox/services/trackbacks/178393.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由于学习需要，需要接触网站开发方面的技术，从VB、C、C++、java&#8230;&#8230;也学了不少的语言，以前做网站都用jsp、servlet、javabean，没怎么用过MVC框架，自己也接触了一些STRUTS、HIBERNATE相关的技术，最近有幸认识到国人自己的开源项目easyJWeb（下面简称ejf），很是兴奋，花了半个小时研究了下ejf的使用，单是配置是非常简单的，下面总结一下第一次接触ejf的经验，也希望更多的人加入到国人自己的开源项目中来。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ejf的官方网站是<a href="http://www.easyjf.com/">http://www.easyjf.com</a>，如果需要深入了解可以直接去官网查看，本文只是一个入门教程。<br />
<p align="center">文/囝泺 <a href="http://www.bluenuo.cn/">www.bluenuo.cn</a></p>
<p>
<hr />
<strong>获得ejf<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先，我们去<a href="http://www.easyjf.com/news/download.html">http://www.easyjf.com/news/download.html</a>下载一个名为easyjweb-1.0-m3.zip（目前是这个版本），下载到EasyJWeb后，我们解压这个压缩文件，会得到类似图1所示的目录结构：<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0006.jpg" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图1<br />
然后找个空目录，这里我们在e:\java路径下建立ejf目录，然后把ejf的lib目录下的easyjweb-core-1.0-m3.jar以及required目录下的全部jar拷贝到刚建立的文件夹下。
<p>&nbsp;</p>
<p>&nbsp;<strong>用eclipse+MyEclipse建立新的web工程<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong>新建web工程，然后右键点击新建的工程目录，点击propertitex，选择java build path设置环境变量，把刚建立的目录下的所有jar导入path，如果2<br />
<img height="535" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0007.jpg" width="637" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图2<br />
<strong>修改web.xml</strong><br />
为了让web应用能使用EasyJWeb框架，需要在web.xml文件中添加一个servlet，并把所有扩展名为.ejf的请求映射给该servlet来处理。EasyJWeb的Servlet定义如下：<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.easyjf.web.ActionServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.ejf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span></div>
为了让Java Web应用能更好的处理中文字符，还需要在web.xml中添加一个字符编辑过滤器，配置如下：
<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.easyjf.web.CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">encoding</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">UTF-8</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">ignore</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span></div>
<br />
&nbsp;另外，为了让EasyJWeb能自动找到你的应用中的所有Action，你需要在web.xml中添加一个名为defaultActionPackages的应用上下文件参数来告诉EasyJWeb扫描哪些包。配置如下：
<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">defaultActionPackages</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">ejf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span></div>
最后，得到一个完整的web.xml文件，如下
<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app&nbsp;</span><span style="color: #ff0000">version</span><span style="color: #0000ff">="2.5"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/javaee&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">defaultActionPackages</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">ejf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">index.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">welcome-file-list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.easyjf.web.ActionServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.ejf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.easyjf.web.CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">encoding</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">UTF-8</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">ignore</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">easyjf</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
修改好后，我们把web工程放到web服务器上，这里用的是tomcat，在浏览器敲入<a href="http://localhost:8080/chytool/helloerror.ejf">http://localhost:8080/chytool/helloerror.ejf</a>，因为没有这个页面，ejf将显示默认友情提示，如图3<br />
<img height="501" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0008.jpg" width="586" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图3<br />
<strong>第一个web页面<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面我们建立第一个web页面，跟学习其他语言一样，我们用ejf版的helloworld作为入门，首先，我们在eclipse工程目录下建立ejf.hello.mvc包，然后新建class HelloAction.java，在ejf里面我们将这个类叫做action，源代码如下<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;ejf.hello.mvc;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Date;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.web.WebForm;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.easyjf.web.core.AbstractPageCmdAction;<br />
<img id="Codehighlighter1_182_363_Open_Image" onclick="this.style.display='none'; Codehighlighter1_182_363_Open_Text.style.display='none'; Codehighlighter1_182_363_Closed_Image.style.display='inline'; Codehighlighter1_182_363_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_182_363_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_182_363_Closed_Text.style.display='none'; Codehighlighter1_182_363_Open_Image.style.display='inline'; Codehighlighter1_182_363_Open_Text.style.display='inline';" alt="" 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;HelloAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractPageCmdAction&nbsp;</span><span id="Codehighlighter1_182_363_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_182_363_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_217_361_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_361_Open_Text.style.display='none'; Codehighlighter1_217_361_Closed_Image.style.display='inline'; Codehighlighter1_217_361_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_217_361_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_217_361_Closed_Text.style.display='none'; Codehighlighter1_217_361_Open_Image.style.display='inline'; Codehighlighter1_217_361_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;index(WebForm&nbsp;form)&nbsp;</span><span id="Codehighlighter1_217_361_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_217_361_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.addResult(</span><span style="color: #000000">"</span><span style="color: #000000">msg</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">您好，这是EasyJWeb的第一个程序!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.addResult(</span><span style="color: #000000">"</span><span style="color: #000000">date</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Date());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.addResult(</span><span style="color: #000000">"</span><span style="color: #000000">address</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://www.bluenuo.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
接下来我们在web目录下的WEB-INF下建立如下目录架构WEB-INF\hello\view<br />
然后建立index.html文件，文件内容如下<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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">EasyJWeb示例程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" 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">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="keywords"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="keyword1,keyword2,keyword3"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="description"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="this&nbsp;is&nbsp;my&nbsp;page"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="content-type"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="text/html;&nbsp;charset=UTF-8"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&lt;link&nbsp;rel="stylesheet"&nbsp;type="text/css"&nbsp;href="./styles.css"&gt;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">div</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">h4</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">EasyJWeb版本的HelloWorld程序</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h4</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;来自EasyJWeb的问候:</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">font&nbsp;</span><span style="color: #ff0000">color</span><span style="color: #0000ff">="#0000FF"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${msg}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">font</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">font&nbsp;</span><span style="color: #ff0000">color</span><span style="color: #0000ff">="#0000FF"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${date}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">font</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="${address}"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${address}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" 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">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
整个目录结构如图4所示<br />
<img height="306" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0009.jpg" width="193" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图4<br />
然后导入web服务器目录，在浏览器敲入地址http://localhost:8080/chytool/hello.ejf<br />
效果如图5所示<br />
<img height="501" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0010.jpg" width="586" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图5<br />
怎么样？easyJWeb就是这么简单，使用过struts的一定感受得到ejf是多么的容易上手<br />
希望笔者的介绍已经把你领进ejf的大门，至于更深层的开发跟应用，还需要我们自己探讨<br />
<hr />
<img src ="http://www.blogjava.net/chybox/aggbug/178393.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chybox/" target="_blank">囝泺</a> 2008-01-29 19:26 <a href="http://www.blogjava.net/chybox/archive/2008/01/29/178393.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学swt的一个实践</title><link>http://www.blogjava.net/chybox/archive/2008/01/25/177735.html</link><dc:creator>囝泺</dc:creator><author>囝泺</author><pubDate>Fri, 25 Jan 2008 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/chybox/archive/2008/01/25/177735.html</guid><wfw:comment>http://www.blogjava.net/chybox/comments/177735.html</wfw:comment><comments>http://www.blogjava.net/chybox/archive/2008/01/25/177735.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/chybox/comments/commentRss/177735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chybox/services/trackbacks/177735.html</trackback:ping><description><![CDATA[<p dir="ltr" style="margin-right: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;学了一段实践SWT/JFace,也学会了不少东西，java课程设计就用swt做了个类似QQ的聊天软件，分服务端与客户端，也花了2个多星期时间，现在把安装软件帖出来，下载地址在最下面，用的学校的服务器，如果失效了请联系我，需要源代码的可以发我mail:chybox@yahoo.cn，下面稍微介绍一下这个小软件。</p>
<p>
<center>文/囝泺 <a href="http://www.bluenuo.cn/">www.bluenuo.cn</a><br />
<hr />
<br />
</center>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;软件分服务端与客户端，所有通信信息都统一发送到服务端，由服务端通信协议负责分发到相应的客户端，协议我做得比较简单，通过一个MyMessage类来实例化一次具体的通信信息，其类结构如下</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.Serializable;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Date;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_100_292_Open_Image" onclick="this.style.display='none'; Codehighlighter1_100_292_Open_Text.style.display='none'; Codehighlighter1_100_292_Closed_Image.style.display='inline'; Codehighlighter1_100_292_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_100_292_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_100_292_Closed_Text.style.display='none'; Codehighlighter1_100_292_Open_Image.style.display='inline'; Codehighlighter1_100_292_Open_Text.style.display='inline';" alt="" 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;MyMessage&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Serializable</span><span id="Codehighlighter1_100_292_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_100_292_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;src;//发送者的id号，其中id号注册后获得，唯一标识一个用户<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;des;//目的id号<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;cas;//协议号<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Usr&nbsp;usr;//用户信息，可以为null<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;message;//发送的消息<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Date&nbsp;date;//发送时间<br />
<img id="Codehighlighter1_232_290_Open_Image" onclick="this.style.display='none'; Codehighlighter1_232_290_Open_Text.style.display='none'; Codehighlighter1_232_290_Closed_Image.style.display='inline'; Codehighlighter1_232_290_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_232_290_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_232_290_Closed_Text.style.display='none'; Codehighlighter1_232_290_Open_Image.style.display='inline'; Codehighlighter1_232_290_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;MyMessage()</span><span id="Codehighlighter1_232_290_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_232_290_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;des</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cas</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;usr</span><span style="color: #000000">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message</span><span style="color: #000000">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<p><br />
协议信息比较简单，不过处理这个聊天的事务已经足够了。</p>
<p>客户端也有个完全一样的类，只是协议的具体内容不太一样，同时，客户端和服务端还用了不少的范型结构，如LinkedList&lt;&gt;,HashMap&lt;&gt;等<br />
下面帖几张软件的截图<br />
<img height="238" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0001.jpg" width="329" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图一：客户端登陆界面<br />
<img height="486" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0002.jpg" width="217" border="0" /><br />
&nbsp; 图2：客户端好友面板<br />
<img height="437" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0003.jpg" width="394" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图片3：客户端消息对话框<br />
<img height="189" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0004.jpg" width="207" border="0" /><br />
&nbsp;&nbsp;&nbsp; 图片4：服务端主界面<br />
<img height="165" alt="" src="http://www.blogjava.net/images/blogjava_net/chybox/0005.jpg" width="407" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图片5：服务端数据库管理界面<br />
以上是整个软件大体上的界面，需要了解更多可以通过下面的链接下载，安装包自带jre，<span style="color: #ff0000">使用的时候需要把客户端的host.ini文件里的ip改成localhost或者改成你自己的ip，服务端必须先通过管理工具开启用户注册，否则无法注册。<br />
<span style="color: #000000">服务端下载地址：<a href="http://edu.bluenuo.cn/myfiles/chyqq_ser_windows_2008beta.exe">http://edu.bluenuo.cn/myfiles/chyqq_ser_windows_2008beta.exe</a><br />
客户端下载地址：<a href="http://edu.bluenuo.cn/myfiles/chyqq_windows_2008beta.exe">http://edu.bluenuo.cn/myfiles/chyqq_windows_2008beta.exe</a><br />
<br />
需要源代码可以通过我的mail联系我chybox@yahoo.cn<br />
<br />
<hr />
</span></span>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/chybox/aggbug/177735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chybox/" target="_blank">囝泺</a> 2008-01-25 12:40 <a href="http://www.blogjava.net/chybox/archive/2008/01/25/177735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>主窗口居中显示</title><link>http://www.blogjava.net/chybox/archive/2007/12/16/168072.html</link><dc:creator>囝泺</dc:creator><author>囝泺</author><pubDate>Sun, 16 Dec 2007 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/chybox/archive/2007/12/16/168072.html</guid><wfw:comment>http://www.blogjava.net/chybox/comments/168072.html</wfw:comment><comments>http://www.blogjava.net/chybox/archive/2007/12/16/168072.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chybox/comments/commentRss/168072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chybox/services/trackbacks/168072.html</trackback:ping><description><![CDATA[<center>
<p>文/囝泺 <a href="http://www.bluenuo.cn">www.bluenuo.cn</a></p>
</center>
<p>&nbsp;</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">shell&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Shell();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />shell.setSize(</span><span style="color: #000000">500</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">375</span><span style="color: #000000">);<br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Monitor&nbsp;primary&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;shell.getMonitor();//获得屏幕<br />
&nbsp;&nbsp;&nbsp;&nbsp;Rectangle&nbsp;bounds&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;primary.getBounds&nbsp;();//获得屏幕尺寸<br />
&nbsp;&nbsp;&nbsp;&nbsp;Rectangle&nbsp;rect&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;shell.getBounds&nbsp;();//获得窗口尺寸<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;bounds.x&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;(bounds.width&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;rect.width)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;//计算x坐标<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;bounds.y&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;(bounds.height&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;rect.height)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;//计算y坐标<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(x&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)//判断坐标是否在屏幕之外<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(y&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLocation&nbsp;(x,&nbsp;y);//设置窗口坐标<br />
&nbsp;&nbsp;&nbsp;&nbsp;shell.open();</span></div>
<img src ="http://www.blogjava.net/chybox/aggbug/168072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chybox/" target="_blank">囝泺</a> 2007-12-16 15:35 <a href="http://www.blogjava.net/chybox/archive/2007/12/16/168072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>