<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>一路风尘</title>
    <description>我不是个归人，是个过客...</description>
    <link>http://yexin218.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>意气奋发</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/233596" style="color:red;">http://yexin218.javaeye.com/blog/233596</a>&nbsp;
          发表时间: 2008年08月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: small;"><span style="color: #0001ff;"><span style="color: #000102;">&nbsp; 今天去老师办公室的时候，在过道碰到了院长，她一看见我说,回来了，意气奋发的样子。呵呵，听到这句话，我很高兴，因为我知道自己好久没有振作了。<img src="http://www.cublog.cn/images/face/005.gif" alt="" />
<br />
<br />
&nbsp; 其实今天并没有什么特别的事情发生。<br />
<br />
&nbsp; 今天是周三，每周的这一天我都要向老师汇报上半个月的进展。我称之为&ldquo;面圣&rdquo;。因为毕竟有些时候有些心惊胆战，深怕自己的表现没有能够让老师满意。可是每次下来气氛都很轻松，虽然老师有些时候我感觉到了有点恨铁不成钢的感觉。<img src="http://www.cublog.cn/images/face/011.gif" alt="" />
<br />
<br />
&nbsp;
老实说，上个月我有些日子都在家里过的。同往年一样，我不会把学习的东西带回家，好不容一才回家一次，自然好好享受。更不用说这次恰好碰上奥运会，当然看
电视成了每天主要的节目了。办签证的时间大概需要两周，所以在中旬的时候，我必须赶回学校了，因为毕竟耽误了不少时间，没有办法啊，开学的时候还要交蛮多
学费的。让我郁闷的是，自己本科时期多修了学分，艾，多交了1000块钱啊。而且还是RMB啊。<img src="http://www.cublog.cn/images/face/035.gif" alt="" style="width: 19px; height: 19px;" />
绕过厦门，顺便见了我高中老师。没有什么特别的。只是普通的相聚。<br />
<br />
&nbsp; 感觉自己很多东西还没有入门，所以自然做起事情来有些困惑。不过老师挺好的，慢慢的引导我，尤其是今天跟我讲了他的算法，我想我是没有花太多的事件去思考才会这样。所以决定今后更加的努力思考。我相信会有一个好的结果。<br />
<br />
&nbsp;在图书馆的时候，碰到了以为学长，比我长一届。他要开始写论文了，可是也有好多为难的地方。这让我觉得生活有些时候真的很残酷，你总是无法找到一个让你心里平衡的一点。不过，他说了，走走看看吧。我想也只能这样了。<br />
<br />
&nbsp;我不知道自己对今后的路，有多少把握。今天刚领了暑假的薪水，可是明天却要拿着这钱去交学费了，那张支票仅仅是从手中溜过一回，然后就不再属于我了，我不明白生活有些时候到底为了什么..难道只为了所追求的东西在眼前的那昙花一现的感觉？<br />
<br />
&nbsp;意气奋发，好个词...</span>
</span>
</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/233596#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Aug 2008 22:22:55 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/233596</link>
        <guid>http://yexin218.javaeye.com/blog/233596</guid>
      </item>
          <item>
        <title>JAVA记事本【可拖读文件】</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/233020" style="color:red;">http://yexin218.javaeye.com/blog/233020</a>&nbsp;
          发表时间: 2008年08月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div id="art" style="margin: 15px;">
<p>原帖及讨论：<a href="http://bbs.bccn.net/thread-227477-1-1.html">http://bbs.bccn.net/thread-227477-1-1.html</a>
</p>
<div class="t_msgfont" id="postmessage_1351097">JAVA记事本终于完成了，在过些天从里面选出部分做个笔记整理，增加对JAVA图形界面、事件响应的熟悉。然后就该学习数据库操作了；<br />
记事本的主要功能：<br />
(一).支持直接拖入文本并读取内容；<br />
(二).状态栏：1.显示文本路径；2.显示当前系统时间；3.即时显示鼠标在文本内点击处的行数，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用于编程时快速的定位；<br />
(三).支持对文本框内 字体 、字形、大小、颜色的调整；<br />
(四).调色板功能；<br />
还有部分问题等学习之后再解决```。</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont"><a href="http://www.bccn.net/Article/UploadFDL05/200808/2008081019222163.rar" title="JAVA记事本.rar"><span style="text-decoration: underline;"><strong><span style="color: #0000ff;">JAVA记事本.rar</span>
</strong>
</span>
</a>
<br />
或者 <a href="原帖及讨论：http://bbs.bccn.net/thread-227477-1-1.html JAVA记事本终于完成了，在过些天从里面选出部分做个笔记整理，增加对JAVA图形界面、事件响应的熟悉。然后就该学习数据库操作了； 记事本的主要功能： (一).支持直接拖入文本并读取内容； (二).状态栏：1.显示文本路径；2.显示当前系统时间；3.即时显示鼠标在文本内点击处的行数，         用于编程时快速的定位； (三).支持对文本框内 字体 、字形、大小、颜色的调整； (四).调色板功能； 还有部分问题等学习之后再解决```。   JAVA记事本.rar 或者 http://download.csdn.net/source/589123   原文地址 http://www.bccn.net/Article/kfyy/java/jszl/200808/7761.html" title="原帖及讨论：http://bbs.bccn.net/thread-227477-1-1.html JAVA记事本终于完成了，在过些天从里面选出部分做个笔记整理，增加对JAVA图形界面、事件响应的熟悉。然后就该学习数据库操作了； 记事本的主要功能： (一).支持直接拖入文本并读取内容； (二).状态栏：1.显示文本路径；2.显示当前系统时间；3.即时显示鼠标在文本内点击处的行数，         用于编程时快速的定位； (三).支持对文本框内 字体 、字形、大小、颜色的调整； (四).调色板功能； 还有部分问题等学习之后再解决```。   JAVA记事本.rar 或者 http://download.csdn.net/source/589123   原文地址 http://www.bccn.net/Article/kfyy/java/jszl/200808/7761.html" target="_blank">http://download.csdn.net/source/589123</a>
<br />
<br />
</div>
</div>
<p style="margin: 5px; line-height: 150%;">&nbsp;</p>
<p>

&nbsp;<span style="color: #000099;"><strong>原文地址</strong>
</span>
<a href="http://www.bccn.net/Article/kfyy/java/jszl/200808/7761.html" target="_blank">http://www.bccn.net/Article/kfyy/java/jszl/200808/7761.html</a>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/233020#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 26 Aug 2008 22:21:37 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/233020</link>
        <guid>http://yexin218.javaeye.com/blog/233020</guid>
      </item>
          <item>
        <title>用JAVA读取MP3文件的标签信息</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/233006" style="color:red;">http://yexin218.javaeye.com/blog/233006</a>&nbsp;
          发表时间: 2008年08月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>&nbsp; 突然看到网上有人在用JavaScript来读取MP3中ID3信息。<a href="http://blog.nihilogic.dk/2008/08/reading-id3-tags-with-javascript.html" target="_blank"><span style="color: #0000ff;">详细请看</span></a>!</div>
<div>&nbsp; 我也在网上搜索了用Flex写的实现同样的功能的。<a href="http://lab.benstucki.net/archives/id3streamexplorer/" target="_blank"><span style="color: #0000ff;">详细请看</span></a>!<br />&nbsp; 但是我比较熟悉Java.所以也在网上搜索到了用Java实现的读取MP3文件标签信息。代码如下：
<pre name="code" class="java">import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class ReadMp3 {
private SongInfo info = null;
private RandomAccessFile ran = null;
private File file = null;

public ReadMp3() throws FileNotFoundException {
file = new File("simcoder.mp3");
ran = new RandomAccessFile(file, "r");
System.out.println("文件裝載完畢");

}

public static void main(String[] args) throws IOException {
ReadMp3 read = new ReadMp3();
byte[] buffer = new byte[128];

read.ran.seek(read.ran.length() - 128);

read.ran.read(buffer);
SongInfo info = new SongInfo(buffer);
System.out.println("name:" + info.getSongName() + " year:"
+ info.getYear() + " 歌手:" + info.getArtist() + " 專輯名:"
+ info.getAlbum() + " 備注:" + info.getComment());

}
}

</pre>
&nbsp;
<pre name="code" class="java">public class SongInfo {

private final String TAG = "TAG"; // 文件头1-3

private String songName; // 歌曲名4-33

private String artist; // 歌手名34-63

private String album; // 专辑名61-93

private String year; // 年94-97

private String comment; // 备注98-125

private byte r1, r2, r3; // 三个保留位126，127，128

private boolean valid; // 是否合法

public transient String fileName; // 此歌曲对应的文件名,没有封装


public SongInfo(byte[] data) {
if (data.length != 128) {
throw new RuntimeException("数据长度不合法:" + data.length);
}
String tag = new String(data, 0, 3);
// 只有前三个字节是TAG才处理后面的字节

if (tag.equalsIgnoreCase("TAG")) {
valid = true;
songName = new String(data, 3, 30).trim();
artist = new String(data, 33, 30).trim();
album = new String(data, 63, 30).trim();
year = new String(data, 93, 4).trim();
comment = new String(data, 97, 28).trim();
r1 = data[125];
r2 = data[126];
r3 = data[127];
} else {
valid = false;
}
}

public SongInfo() {
}

/**
* 返回是否合法
*
* @return 是否
*/
public boolean isValid() {
return valid;
}

/**
* 得到此对象的128个字节的表示形式
*
* @return
*/
public byte[] getBytes() {
byte[] data = new byte[128];
System.arraycopy(TAG.getBytes(), 0, data, 0, 3);
byte[] temp = songName.getBytes();
System.arraycopy(temp, 0, data, 3, temp.length &gt; 30 ? 30 : temp.length);
temp = artist.getBytes();
System
.arraycopy(temp, 0, data, 33, temp.length &gt; 30 ? 30
: temp.length);
temp = album.getBytes();
System
.arraycopy(temp, 0, data, 63, temp.length &gt; 30 ? 30
: temp.length);
temp = year.getBytes();
System.arraycopy(temp, 0, data, 93, temp.length &gt; 4 ? 4 : temp.length);
temp = comment.getBytes();
System
.arraycopy(temp, 0, data, 97, temp.length &gt; 28 ? 28
: temp.length);
data[125] = r1;
data[126] = r2;
data[127] = r3;
return data;
}

public String getArtist() {
return artist;
}

public void setArtist(String authorName) {
this.artist = authorName;
}

public String getComment() {
return comment;
}

public void setComment(String comment) {
this.comment = comment;
}

public byte getR1() {
return r1;
}

public void setR1(byte r1) {
this.r1 = r1;
}

public byte getR2() {
return r2;
}

public void setR2(byte r2) {
this.r2 = r2;
}

public byte getR3() {
return r3;
}

public void setR3(byte r3) {
this.r3 = r3;
}

public String getSongName() {
return songName;
}

public void setSongName(String songName) {
if (songName == null) {
throw new NullPointerException("歌名不能是null!");
}
valid = true;
this.songName = songName;
}

public String getAlbum() {
return album;
}

public void setAlbum(String specialName) {
this.album = specialName;
}

public String getYear() {
return year;
}

public void setYear(String year) {
this.year = year;
}

}
</pre>
&nbsp;
<table cellspacing="0" border="0" align="center" bgcolor="#ffffff" width="760" cellpadding="0" style="border-collapse: collapse; word-wrap: break-word;">
<tbody>
<tr>
<td align="center">
<table cellspacing="0" border="0" width="740" cellpadding="0" style="border-collapse: collapse; word-wrap: break-word;">
<tbody>
<tr>
<td width="740">
<div id="art" style="margin: 15px;">
<p>执行结果如下：</p>
<table cellspacing="0" bordercolor="#999999" border="1" bgcolor="#f1f1f1" width="95%" cellpadding="0" style="border-collapse: collapse;">
<tbody>
<tr>
<td>
<p style="margin: 5px; line-height: 150%;"><code><span style="color: #000000;">name<span style="color: #0000cc;">:</span>简单程序员 year<span style="color: #0000cc;">:</span>2008 歌手<span style="color: #0000cc;">:</span>编曲<span style="color: #0000cc;">.</span>后期：丙峰 專輯名<span style="color: #0000cc;">:</span>电话：011186 備注<span style="color: #0000cc;">:</span><span style="color: #0000ff;">QQ</span><br />：5104</span></code></p>
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
<p style="margin: 5px; line-height: 150%;">&nbsp;</p>
</td>
</tr>
<tr>
<td height="25">&nbsp;<span style="color: #000099;"><strong>原文地址</strong></span> <a href="http://xiangzi527.spaces.live.com/Blog/cns!D510D99107C879F4!123.entry" target="_blank">http://xiangzi527.spaces.live.com/Blog/cns!D510D99107C879F4!123.entry</a> </td>
</tr>
</tbody>
</table>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/233006#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 26 Aug 2008 21:53:34 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/233006</link>
        <guid>http://yexin218.javaeye.com/blog/233006</guid>
      </item>
          <item>
        <title>NS2新建QQ群：14945449 欢迎加入</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/231203" style="color:red;">http://yexin218.javaeye.com/blog/231203</a>&nbsp;
          发表时间: 2008年08月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>本人最近一段而且持续一段时间都在研究NS2，苦于无法很好交流沟通，建立此QQ群：14945449 ，欢迎加入。请注明：NS2.
		
		
		
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/231203#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Aug 2008 15:33:26 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/231203</link>
        <guid>http://yexin218.javaeye.com/blog/231203</guid>
      </item>
          <item>
        <title>Flex-CUBlog排行榜解析</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/221282" style="color:red;">http://yexin218.javaeye.com/blog/221282</a>&nbsp;
          发表时间: 2008年07月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>不知道为什么一直有一个想法把CUBlog排行榜的数据提取出来放在Flex的DataGrid中浏览。上网看过了关于html解析有很多开源的比如
html parser等。但好像都要写蛮多的代码才能实现。一个比较简单快速的方法就是使用正则表达式了。刚学习，顺便练习下。效果图：<br />
<img src="http://photo1.bababian.com/upload12/20080729/24FEEBC3106429E59F28442AF7ABBDA1.jpg" alt="" />
<br />
<br />
Flex和后台Java的沟通方式是采用remoteObject。直接贴代码把，很简单不用解释。<br />
前台Flex处理：</p>
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
    &lt;mx:Style&gt;

    &lt;/mx:Style&gt;
    &lt;mx:Script&gt;
        &lt;![CDATA[
        import mx.rpc.events.ResultEvent;
        import mx.collections.ArrayCollection;
        import com.adobe.serialization.json.JSON;

        [Bindable]
        private var dataArray:ArrayCollection;

        private function initDataGrid():void{
            dataArray = new ArrayCollection();
        }

        private function getBolgListFun():void{
            var blogIndex:int;
            blogIndex = showId.selectedIndex;
            getBlog.getList(blogIndex);
            labTxt.text=&quot;请稍候，正在读取博客列表...你选择查看&quot;+showId.selectedItem.toString()+&quot;的排行榜！&quot;;
        }
        private function getBlogListResult(event:ResultEvent):void{
            var rawArray:Array;
            var arraySize:int;
            var rawData:String = event.result as String;
            rawArray = JSON.decode(rawData) as Array;
            dataArray = new ArrayCollection(rawArray);
            arraySize = dataArray.length;
            labTxt.text=&quot;读取成功...&quot;;
        }
        ]]&gt;
    &lt;/mx:Script&gt;
    &lt;mx:RemoteObject id=&quot;getBlog&quot; destination=&quot;getBlogList&quot; showBusyCursor=&quot;true&quot; result=&quot;getBlogListResult(event)&quot;/&gt;
    &lt;mx:Panel x=&quot;10&quot; y=&quot;40&quot; width=&quot;681&quot; height=&quot;430&quot; layout=&quot;absolute&quot; title=&quot;CU博客排行版&quot;&gt;
        &lt;mx:DataGrid id=&quot;blogGrid&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;661&quot; height=&quot;284&quot; dataProvider=&quot;{dataArray}&quot; creationComplete=&quot;{initDataGrid()}&quot; verticalScrollPolicy=&quot;on&quot; fontFamily=&quot;Times New Roman&quot; fontSize=&quot;12&quot; color=&quot;#0142FC&quot;&gt;
            &lt;mx:columns&gt;
                &lt;mx:DataGridColumn headerText=&quot;名次&quot; dataField=&quot;no&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;博客名称&quot; dataField=&quot;blog&quot; width=&quot;220&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;用户名&quot; dataField=&quot;user&quot; width=&quot;80&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;技术文章&quot; dataField=&quot;technique&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;总文章&quot; dataField=&quot;total&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;访问量&quot; dataField=&quot;visit&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;评论量&quot; dataField=&quot;common&quot;/&gt;
                &lt;mx:DataGridColumn headerText=&quot;推荐数&quot; dataField=&quot;recommand&quot;/&gt;
            &lt;/mx:columns&gt;
        &lt;/mx:DataGrid&gt;
        &lt;mx:Button id=&quot;getBtn&quot; x=&quot;10&quot; y=&quot;323&quot; label=&quot;读取更新&quot; width=&quot;474&quot; height=&quot;35&quot; click=&quot;getBolgListFun()&quot; fontFamily=&quot;Times New Roman&quot; fontSize=&quot;12&quot; color=&quot;#02FEF5&quot;/&gt;
        &lt;mx:Label id=&quot;labTxt&quot; x=&quot;0&quot; y=&quot;292&quot; width=&quot;626&quot; height=&quot;23&quot; fontFamily=&quot;Times New Roman&quot; fontSize=&quot;12&quot; color=&quot;#FE0315&quot;/&gt;
        &lt;mx:ComboBox x=&quot;492&quot; y=&quot;323&quot; width=&quot;134&quot; height=&quot;35&quot; fontSize=&quot;12&quot; fontFamily=&quot;Times New Roman&quot; color=&quot;#A103FC&quot; selectedIndex=&quot;3&quot; id=&quot;showId&quot;&gt;
         &lt;mx:dataProvider&gt;
             &lt;mx:Array&gt;
                 &lt;mx:String&gt;技术文章&lt;/mx:String&gt;
                 &lt;mx:String&gt;推荐总数&lt;/mx:String&gt;
                 &lt;mx:String&gt;总文章数&lt;/mx:String&gt;
                 &lt;mx:String&gt;总访问量&lt;/mx:String&gt;
                 &lt;mx:String&gt;评论总数&lt;/mx:String&gt;
             &lt;/mx:Array&gt;
         &lt;/mx:dataProvider&gt;
        &lt;/mx:ComboBox&gt;
    &lt;/mx:Panel&gt;

&lt;/mx:Application&gt;</pre>
<p>&nbsp;后台Java处理：</p>
<pre name="code" class="java">package cublog;
/*
 * @Author: yexin218
 * @Email:feixianyexin@qq.com
 */
import java.net.*;
import java.io.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class PaiHangBang {
    public static void main(String[] args){
        PaiHangBang p = new PaiHangBang();
        System.out.println(p.getList(3));
    }
    public String getList(int selectIndex){
        String blogList=&quot;&quot;;
        int showBlogNo=25;//the no of blog to show

        StringBuffer document = new StringBuffer();
        try{
        URL url = new URL(&quot;http://blog.chinaunix.net/top/?type=&quot;+selectIndex);
        URLConnection conn = url.openConnection();
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line = null;
        String result=null;
        while ((line = reader.readLine()) != null)
        document.append(line+&quot;|&quot;);
        result = document.toString().replaceAll(&quot;&lt;[^&gt;]*&gt;&quot;,&quot;&quot;).replaceAll(&quot;\\s+&quot;,&quot;&quot;);
        result = result.substring(result.indexOf(&quot;推荐数&quot;)+6, result.indexOf(&quot;关于我们&quot;));

        String array[] = result.split(&quot;\\|&quot;);
        String str=&quot;&quot;;
        for(int i=0;i&lt;array.length;i++){
            if(!array[i].equals(&quot;&quot;)){
                str+=array[i]+&quot;|&quot;;
            }

        }
         JSONArray blogListArray = new JSONArray();
         JSONObject blogObj = new JSONObject();
        String newBlogArray[] = str.split(&quot;\\|&quot;);//here is all the item independently

        for(int i=0;i&lt;showBlogNo;i++){//The head 20 items

            blogObj.put(&quot;no&quot;, newBlogArray[8*i]);
            blogObj.put(&quot;blog&quot;, newBlogArray[8*i+1]);
            blogObj.put(&quot;user&quot;, newBlogArray[8*i+2]);
            blogObj.put(&quot;technique&quot;, newBlogArray[8*i+3]);
            blogObj.put(&quot;total&quot;, newBlogArray[8*i+4]);
            blogObj.put(&quot;visit&quot;, newBlogArray[8*i+5]);
            blogObj.put(&quot;common&quot;, newBlogArray[8*i+6]);
            blogObj.put(&quot;recommand&quot;, newBlogArray[8*i+7]);
            blogListArray.add(blogObj);
        }

      blogList = blogListArray.toString();
     reader.close();
    }catch(MalformedURLException e){
        e.printStackTrace();
    }catch(IOException ex){
        ex.printStackTrace();
    }
    System.out.println(blogList);
    return blogList;
    }

}</pre>
<p>&nbsp;前后台之间需要的remote-config.xml配置。增加以下语句：</p>
<pre name="code" class="xml">&lt;destination id=&quot;getBlogList&quot;&gt;
     &lt;properties&gt;
         &lt;source&gt;cublog.PaiHangBang&lt;/source&gt;
       &lt;/properties&gt;
 &lt;/destination&gt;&lt;destination id=&quot;getBlogList&quot;&gt;
     &lt;properties&gt;
         &lt;source&gt;cublog.PaiHangBang&lt;/source&gt;
       &lt;/properties&gt;
 &lt;/destination&gt;</pre>
<p>&nbsp;
Eclipse工程文件下载：http://download.csdn.net/source/561370</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/221282#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Jul 2008 20:55:41 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/221282</link>
        <guid>http://yexin218.javaeye.com/blog/221282</guid>
      </item>
          <item>
        <title>穿越嘉乐庇总督大桥</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/219967" style="color:red;">http://yexin218.javaeye.com/blog/219967</a>&nbsp;
          发表时间: 2008年07月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp; 每天乘坐的巴士都要从这座桥上穿梭而过。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       来澳门四年了，从来没有像最近这样有一种站在桥上一览澳门和氹仔两边的风景，享受下尽收眼底的大海的景象的强烈欲望。幸运的是，这座桥是澳门唯一可以行人的。所以昨天就决定好了下午完成一次徒步穿梭。<br /></p>
<div>
<div>
<div>
<div><a href="http://photo1.bababian.com/upload12/20080727/6223945BA130BA0A6A5F3B56A72A51A3_500.jpg" target="_blank"><img class="blogimg" src="http://photo1.bababian.com/upload12/20080727/6223945BA130BA0A6A5F3B56A72A51A3_500.jpg" border="0" height="267" alt="" width="406" />
</a>
</div>
<a href="http://bbs.dpnet.com.cn/bbs/Uploadfile/2007-6/200762020372124592.jpg" target="_blank"><br />
</a>
</div>
<a href="http://photocdn.sohu.com/20080503/Img256635944.jpg" target="_blank">［嘉乐庇总督大桥］<br />
</a>
</div>
<a href="http://zh.wikipedia.org/wiki/Image:Macau-Taipa_Bridge_Mo707.JPG" target="_blank"><br />
</a>
</div>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;
下午5点左右就出发了，天上太阳离海平面还有一大节，不过已经不是很热了，因为海上总是有一阵阵的风。从家里出发，大约10分钟左右就到了桥头了。我没有
马上就启程，因为我心里有点怕中途跨下了。因为每次坐车都需要至少一首歌的时间，对于桥的长度事先没有了解，桥的拱起的部分挡住了桥的终点，所以心里未免
有些恐惧。试了好几次才最终启程。<br />
<br />
<br />
&nbsp;&nbsp;
开始的时候体力还算是充沛，尽管中午11点就把午饭解决了，还去了一趟珠海回来。跟那些车辆比起来我的速度真的像蜗牛，但我知道这个急不得，所以一步一步
按照自己的节奏在前进。海风吹来，海面泛起微波，在阳关的斜照下，闪闪花光，倒映在水面的桥影连接这两个岛屿，而我的身影也在那条纽带上移动着。<br />
<br />
&nbsp;&nbsp;&nbsp;
好久没有锻炼，发现自己体力已经不如以前了，加上天气炎热干燥，我就感觉到自己的节奏乱了，喉咙开始变得干渴，于是放慢了速度，顺便欣赏美丽的风光。从桥
上最直接可以看到就是海面上的作业船只了，轰隆隆的从桥底穿过，除了船过后留下的水波，就没有其他好感了。桥的左边的友谊大桥，右边西湾大桥。这两座桥，
以及桥边的景色，加上蔚蓝的大海构成了澳门一个亮丽的景区。</p>
<div>
<div><a href="http://photo1.bababian.com/upload12/20080727/EABF02997A9F1A0A3850D792592AC83B_500.jpg" target="_blank"><img class="blogimg" src="http://photo1.bababian.com/upload12/20080727/EABF02997A9F1A0A3850D792592AC83B_500.jpg" border="0" height="265" alt="" width="469" />
</a>
</div>
<a href="http://bbs.dpnet.com.cn/bbs/Uploadfile/2007-6/200762020362329191.jpg" target="_blank"><br />
</a>
</div>
<p>
&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;      ［友谊大桥］<br />
&nbsp;&nbsp;&nbsp;&nbsp;      最引人注目我想应该是澳门的旅游塔了，这个亚洲高度可数的建筑同大三巴牌坊成了澳门的典型象征。</p>
<div>
<div><a href="http://photo1.bababian.com/upload12/20080727/0F2BE47B870788C9EE31A010A9426716_500.jpg" target="_blank"><img class="blogimg" src="http://photo1.bababian.com/upload12/20080727/0F2BE47B870788C9EE31A010A9426716_500.jpg" border="0" height="270" alt="" width="451" />
</a>
</div>
<a href="http://bbs.dpnet.com.cn/bbs/Uploadfile/2007-6/20076202038760231.jpg" target="_blank"><br />
</a>
</div>
<p>
&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;      ［友谊大桥］<br />
&nbsp;&nbsp;&nbsp;&nbsp;
中途休息了几次，大约25分钟至半小时的时间我总算到了桥的另一端。途中出了刚才见到的风景，体会最深刻的就是每当巴士经过时给桥身带来的微微的动感，有
些时候我真的担心，这桥是否能承受的住繁忙的运输任务。不过安全抵挡目的地。接下来休息一会儿，开始原路返回。因为我觉得体力还可以支撑我回到起点。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
回来的路，由于体力的消耗，休息三次跑到桥的顶端之后，发现自己开始肚子痛了，无奈，下坡的时候，我就开始慢慢徒步了，好在一点，我可以看到我的目的地
了，那也是我起点。不知道身边穿过多少辆汽车之后，我成功的往返了嘉乐庇总督大桥。哈哈，第一次哦。无名的兴奋。接下来就是托着疲惫的身躯回家了。<br />
<br />
&nbsp;&nbsp;&nbsp;       明天是星期天，室友说他也想去，所以明天还会继续，不过他说体力不支，恐怕只能支撑单程。呵呵，我在想办法把他脱下水，来个双程。先沉默不说...哈哈！<br />
<br />
&nbsp;&nbsp;       洗完澡，好舒服，享受下。<br />
<br />
&nbsp;&nbsp;   附上一张嘉乐庇总督大桥的夜景。</p>
<div><a href="http://upload.wikimedia.org/wikipedia/zh/a/a9/Ponte_Governador_Norbe_de_Carvalho.jpg" target="_blank"><img class="blogimg" src="http://upload.wikimedia.org/wikipedia/zh/a/a9/Ponte_Governador_Norbe_de_Carvalho.jpg" border="0" height="290" alt="" width="538" />
</a>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/219967#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 26 Jul 2008 20:40:38 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/219967</link>
        <guid>http://yexin218.javaeye.com/blog/219967</guid>
      </item>
          <item>
        <title>学黑客必去的网站</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/217413" style="color:red;">http://yexin218.javaeye.com/blog/217413</a>&nbsp;
          发表时间: 2008年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="cnt" id="blog_text">
<p> 学黑客必去的网站&ldquo;黑客基地&rdquo;：</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  <span style="font-size: x-small;"><a style="font-weight: bold; font-size: 12pt; color: #00ff00; text-decoration: underline;">http://www.hackbase.com</a>
</span>
</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  如何学黑客技术并从事网络安全：</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  <span style="font-size: x-small;"><a style="font-weight: bold; font-size: 12pt; color: #00ff00; text-decoration: underline;">http://www.hackbase.com/tech/2007-02-11/38699.html</a>
</span>
 </p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  推荐最好用的免费冰盾ARP防火墙：</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  <span style="font-size: x-small;"><a style="font-weight: bold; font-size: 12pt; color: #00ff00; text-decoration: underline;">http://www.hackbase.com/soft/2008-01-26/16558.html</a>
</span>
</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  新手学黑客快速入门的好地方<span style="font-size: x-small;"><span style="font-weight: 400;">：</span>
</span>
</p>
<p style="line-height: 150%;"><span style="font-size: x-small;"> <span style="font-weight: 400;">&nbsp;&nbsp;&nbsp;  </span>
<a href="http://vip.hackbase.com/" target="_blank" style="font-weight: bold; font-size: 12pt; color: #00ff00; text-decoration: underline;">http://vip.hackbase.com</a>
</span>
</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  推荐下载最专业的免费DDOS防火墙：</p>
<p style="line-height: 150%;">&nbsp;&nbsp;&nbsp;  <span style="font-size: x-small;"><a style="font-weight: bold; font-size: 12pt; color: #00ff00; text-decoration: underline;">http://www.hackbase.com/news/2007-01-06/7357.html</a>
</span>
</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/217413#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 22 Jul 2008 08:24:30 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/217413</link>
        <guid>http://yexin218.javaeye.com/blog/217413</guid>
      </item>
          <item>
        <title>下一步，你走多远了</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/213719" style="color:red;">http://yexin218.javaeye.com/blog/213719</a>&nbsp;
          发表时间: 2008年07月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp; 人生不是每一步都能按照自己的意愿走的。<br />
&nbsp;&nbsp;&nbsp;&nbsp;  <br />
&nbsp;&nbsp;&nbsp;&nbsp;  虽说人生是可以用某方式来规划的，但是也许个人的智慧不同，方式不同，自然走的路子也就有所差异了。但是有些时候，即使你的规划已经成稿，但是实施的方式就也许不能由你自己实现安排的了。也许这也叫着无可奈何吧。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
澳门大学的录取通知书已经到家里了，如果是先前报考大学的时候，见到录取通知书，会有一种喜悦自豪之感，但是一看到自己申请的奖学金没有落实，心里就沉默
了。知道自己之前所期待的那份喜悦已经落空了。没有附带奖学金的录取通知书对我来说相当于一张白纸，凄白色的。那首我所向往的大学，如今我也只能远远的观
望了。好落单，感觉自己做错了什么，一下子喘不过气来。<br />
<br />
&nbsp;&nbsp;&nbsp;
虽然知道，有些事情自己也无能为力，但还是久久不能平静。我一直在问自己，在规划的时候，是不是只是简单的在纸上画出自己的未来，涂色颜色就会给自己带来
缤纷的世界呢？是不是规划之后，我的努力不过呢？否则现在怎么会有如此狼狈的结局。而面对着这样的结果，面对着自己的规划全部被打乱之后，我的下一步又该
做什么呢？还有我能做什么呢？<br />
&nbsp;&nbsp;&nbsp;  <br />
&nbsp;&nbsp;&nbsp;
也许，你会说，任何事情都有做两手准备。而事实上，我早已把自己的后路断绝了。本来以为在这里找一份工作，一边实习，一边在等录取结果。可是每次面试之后
都没有结果了，或者是找了一份跟自己专业无关的工作，怕自己实在不感兴趣就辞掉了，而一心就像继续自己的学业。然而事情发展并非我当初我预料的。而可怜的
我却没有为这个结果做任何的打算。真的好害怕，自己什么都失去了，然后孤零零站在雨中的只字路口，迷失了自己，感叹上苍对我的忘却。<br />
<br />
&nbsp;&nbsp;  下一步，就摆在眼前，就在这个七月，我还能走多远呢？</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/213719#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 10 Jul 2008 23:11:43 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/213719</link>
        <guid>http://yexin218.javaeye.com/blog/213719</guid>
      </item>
          <item>
        <title>工作小結</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/210828" style="color:red;">http://yexin218.javaeye.com/blog/210828</a>&nbsp;
          发表时间: 2008年07月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp; 做關於IPv6無限網絡定位的項目已經差不多半個月了，在這半個月中，老師布置的任務是搜索關於這個領域的最新技術文章，然後總結出對自己有幫助的資料。
老師說他自己有一套自己的思路，雖然還沒有決定具體的技術方案，爲了不影響我的思路，他決定讓我自己找文章總結資料。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
兩個星期下來，我的確在網上搜索了很多文章，而且也很認真的開始閱讀做筆記。不知道是由於自己經驗不足還是其他原因，我的做法是先搜索關鍵字找到論文，估
計找了差不多了，然後開始逐篇閱讀，看到一些覺得自己還有用的就記錄下來，時間一長，自然記錄了不少。可是後來當發現自己要根據某個要點總結的時候，卻忘
記了那個要點出自那片論文了。所以早上也只好硬著頭皮去見老師。<br />
&nbsp;&nbsp;   <br />
&nbsp;&nbsp;&nbsp;
在聽我我做的那些筆記之後，我突然覺得老師不是很滿意我的半個月的以來的工作。他笑著說第一次沒有經驗，我也不多說什麽，下次需要把你看過的論文分類整
理，比如使用的RSS技術一類文章整理出來，分析某個技術的優勢和不足以及那些可以為我們所有。我尷尬了點點頭。自己也意識到了半個月工作的質量實在是不
合格。但是看到阿Sir【老師，我這樣叫他的】微笑的樣子，心情也舒緩很多。心裡暗暗下定決心，下次見面我一定讓你刮目相看。<br />
<br />
&nbsp;&nbsp;&nbsp;
不知道是不是由於上半個月的工作壓力不夠呢還是爲了趕進度。阿SIr給我任務好像更多了。首先繼續找類似Horus定位系統的文章，側重于移動設備的位置
檢測，還有就是使用Open
source軟件NS-2來模擬虛擬網絡的架構，并要求我在Windows上安裝好，寫一個在移動無線網絡中，一個移動設備在兩個AP的環境中隨機自由移
動，每秒取樣記錄信號強度值。聽起來好像很簡單，關鍵是我對Tcl這么語言不是很熟悉，上次面試的時候又一位考官給我留了一個作業就是用這門語言來寫一個
員工信息管理系統。可是現在要用這個做出一個模擬的效果出來，除了熟悉掌握TCL好需要其他Nam,C++等的結合使用。說實在的，真的好沒有底氣。花了
一個下午，在Windows上安裝好了NS。到官方網站上看了看，好像也沒有找到具體的入門教程。看來要自己摸索的路好長哦？真的懷疑兩個星期能否完成任
務，但是我會加油的。<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;   估計這兩周，沒有多少時間去看電影電視劇了。不過我想我會抽空來這裡寫點東西的，因為勞累的時候，寫點東西也是一個放鬆的方式。<br />
<br />
&nbsp;&nbsp;&nbsp;   邊努力工作，邊耐心等待研究生結果。七月，火熱火熱的......</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/210828#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Jul 2008 23:22:24 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/210828</link>
        <guid>http://yexin218.javaeye.com/blog/210828</guid>
      </item>
          <item>
        <title>写在毕业之后</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/210337" style="color:red;">http://yexin218.javaeye.com/blog/210337</a>&nbsp;
          发表时间: 2008年07月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 毕业，就意味着四年的相聚的结束。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
早上送走一位同学。不知道为什么？得知她要离开的时候，顿时就觉得也许从此天涯别离，各据一方了。所以我说我想送她上车，她也欣然同意，也许她和我也有相
似的感觉。萍聚萍散，本应看成缘分安排的一个相识，相会相知和别离的过程，不应该有太多的情感，可当你为她关上车门的刹那，透过车窗望着她轻轻挥动的手
势，无可奈何，生命中的离别再次上演。车辆渐渐驶出视野，消失在期待之外。朋友，一路顺风。<br />
&nbsp;&nbsp;&nbsp;&nbsp;   <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;   毕业，也意味着一种阶段性的等待。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
也许那些不怎么幸运找到工作的人此刻都和一样在等待。有的等待着搬出校园后和自己同租房子的室友，有的在等待心仪公司的一个面试机会，有的在等待面试后的
结果，还有的像我在等待研究生的录取结果，以及奖学金名额分配结果。也许这个阶段性的等待实在无法避免。因为有时候我们必须跟着别人的步伐走路，或快或
慢，都由不得自己控制。学会在这个乏味的等待中重新找到自己的生活都是一个智慧的选择。<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;   毕业，还意味着开始奔波。<br />
<br />
&nbsp;&nbsp;&nbsp;
也许正如妈妈所说的，该是时候开始分担家庭的负担了。毕业了，每个拥有这中责任或者愿意承担这样责任的都开始筹划自己的生活了。我的很多同学都已经找到工
作了，大都数都开始回家办理劳工签证了，当然还有一部分还为自己的路子焦虑的规划着；在十字路口徘徊着。但是我想一切都会好起来的，每一个人都会有自己一
个比较满意的去处，无论是在那个时间段之后。<br />
<br />
&nbsp;&nbsp;
七月，也许是今年最重要的日子了。因为一切的人生决定因素在七月。有时候我真的不愿意去考虑这一切的结果，因为我害怕自己筹划的路子偏离了自己的地图。似
乎自己真的没有为偏离的后果做任何的准备，不是我很自信，只不过生活有些时候需要适当的&ldquo;忘记&ldquo;，忘记那些对自己最重要的结果的产生过程，因为人往往比较
容易接受结果而非过程。忘记吧，找回真正的自己继续生活。<br />
<br />
&nbsp;&nbsp;&nbsp;    毕业之后，我等待七月的结束。等待一个新的稳定的开始。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/210337#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 01 Jul 2008 23:23:36 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/210337</link>
        <guid>http://yexin218.javaeye.com/blog/210337</guid>
      </item>
          <item>
        <title>青春忧虑</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/209761" style="color:red;">http://yexin218.javaeye.com/blog/209761</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: small;">&nbsp; 答辩完已经好久了，这也是大学生活的最后一天了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
毕业之后的第一件事：搬出学校。昨天我搬出了住了四年的宿舍，一箱书，几件衣服，零零碎碎加起来四五个袋子。不是很多，不过还是很累人，从打包，搬运，到
目的地卸车，再搬运，重新整理，也弄得你无所适从，等一切妥当，都已经是晚上了。很幸运，能和自己同学住在一起。新家不是很大，而且我们还是两个人一间
房，不过还是挺温馨的，新铺的木质地板，走起来很舒服，很凉快。房子靠近市中心，出门走出一条街，就到了澳门最繁华的街道，这是我喜欢的一个原因：闷的时
候，可以跟住人群走走。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
毕业后第二件事：打工。现在要开始付房租了，而且还要养活自己，不得不做点事情了。现在在跟老师做项目，刚开始，只是看看一些这个领域的论文，整理应用技
术的分类和最新的解决方法，看了很多，好多方法，需要进一步去总结。已经看了近半个月了，脑袋中有一些这方面知识的轮廓和大概的解决方法以及应用的技术。
不过具体研究那个技术还要在这周三跟老师进一步讨论。这个阶段算是对知识的一个积累，一个起步。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
毕业后第三件事：等待。前两件事，第一件已经完成，第二件正在进行，而且希望能持续进行。最难煎熬的就是第三件事了，我想对每个人来说都是如此。等待研究
生的录取结果和奖学金的申请结果。我仿佛回到了高考结束后等待录取通知书的那个阶段了。等待，恐怖的不是时间消逝的特别的慢，而是除了等待你什么也不能做
的那种焦虑的心里。&ldquo;对于无法控制结果，我从来不去想，那是徒劳的&rdquo;我同学这么跟我说的。也对，该做的你已经做完了，等待是人生常见的一个时间段，任何的
焦虑都是多余的，无数次我对自己这样说着。&ldquo;每个人都是这样过来的，庆幸的是结果还不错&rdquo;我的一个roommate说的。对，我也不例外。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   我想毕业的人都需要经历我经历的，找房子，开始打工养活自己，还要等待，等待公司的录取通知，学校的录取通知，等待着自己希望发生的事情。如果不知道明天发生什么事情，那么我想做好今天就是对自己和生活的最好的gift了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   <br />
&nbsp;&nbsp;&nbsp;&nbsp;   突然想起来一句话：青春无须忧虑：春有百花，秋有月；夏有凉风，冬有雪。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;   愿生活美好！</span>

</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/209761#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 14:39:16 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/209761</link>
        <guid>http://yexin218.javaeye.com/blog/209761</guid>
      </item>
          <item>
        <title>味,变了</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/208370" style="color:red;">http://yexin218.javaeye.com/blog/208370</a>&nbsp;
          发表时间: 2008年06月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>记得两年前，我刚刚买电脑的那段时间，我疯狂在网上搜索下载音乐。首先呢？找好一个容易下载的网站，我记得很清楚是<a href="http://hi.baidu.com/yexin218/blog/item/www.sogou.com" target="_blank">www.sogou.com</a>
，
老实说，这个网上的音乐下载比百度强多了。然后呢，在搜索列表中寻找wma格式呢，最后在选择体积较小的那个一般好像是0.5Mb的，就它了。看到别人同
样一首歌占了5Mb以上，心里就有一丝自豪感，然而他就看看我，笑了笑。就这样，我都一直这样从不浪费我的硬盘空间，在网络上寻找着自己喜欢的，体积小的
歌曲，一点一点填充着硬盘。我也一直享受着128k或者以下的压制的音乐。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
然而，慢慢的，我发现有些改变了。不知道是不是我看了一些关于音乐的资料，还是自己的耳朵开始有所追求呢？不知道从哪天起，我已经不下载wma格式的音乐
了，逐渐喜欢mp3格式的。而且也把硬盘中以前下载的音乐筛选删除，现在硬盘中已经没有几首是wma格式的音乐了。而且我养成了一个习惯，下载音乐前先试
听（我不喜欢那种现场演唱会版本或者电台版本），然后检查音乐音质，至少是128k,其实这只是最早期的cd音质了，如果你细心的话，你会发现128k的
音乐在高频部分或者细小音节跟原版就会有非常大的差距。所以呢，192k便开始成为我的搜索目标了，当然了，这样压制的歌曲体积也开始变大了，一首需要
5~6Mb左右，消耗硬盘的同时，带给你的是听觉的享受。所以硬盘的消耗也自然认为是理所当然的。<br />
&nbsp;&nbsp;&nbsp;&nbsp;
如果你吃惯了山珍海味，突然要你吃窝窝头，也许不是那么容易让人接受的。我发现自己对音乐的品质要求越来越苛刻：一般下载都是6Mb以上的102k压制
的，有时候听到一首好听的音乐后，然后就开始搜索它320k压制的版本，有好几次还乐此不疲。我想我是喜欢上了高品质的音乐了。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
现在回想起我那同学的一笑，也许我明白了。其实生活哪方面都好，千万不要太随意。当然随意的日子随意过，不过，可能就没有太多激情了，因为你的生活像
128k以下的音乐没有保真，体会不到生活的慷慨的高音。有时候就是这样，就连听音乐，都不可以马虎，因为那是享受生活的片刻。<br />
&nbsp;&nbsp;&nbsp;    好了，既然说了这么多，分享下我的收获：320k的<a href="http://www.box.net/shared/k729ekygcc" target="_blank">《华纳白金十三首》7CD</a>
 和<a href="http://www.box.net/shared/t3upuez0go" target="_blank">westlife 7张专辑</a>
 【bt下载】。享受生活，从音乐开始...</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/208370#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 26 Jun 2008 21:27:06 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/208370</link>
        <guid>http://yexin218.javaeye.com/blog/208370</guid>
      </item>
          <item>
        <title>使用Flex,Java，Json更新Mysql数据【高级篇】</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/207638" style="color:red;">http://yexin218.javaeye.com/blog/207638</a>&nbsp;
          发表时间: 2008年06月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>&nbsp; 前面已经介绍如何使用Flex,java,json来更新datagrid中的数据。详细请见：<a href="http://blog.chinaunix.net/u/21684/showart_732957.html" target="_blank">使用Flex,Java，Json更新Mysql数据【1】</a>
和 <a href="http://blog.chinaunix.net/u/21684/showart_733111.html" target="_blank">使用Flex,Java，Json更新Mysql数据&nbsp;【2】</a>
<a href="http://blog.chinaunix.net/u/21684/showart_732957.html" target="_blank"></a>
。但是有一个问题就是在更新的时候都是发送整个datagrid的dataprovider中信息到数据库，无论有的资料并没有需要更新，这样处理起来效率就很低了。所在在高级篇中我想传递的数据只是用户更新的那部分。这样效率就会明显提高了。</div>
<div>&nbsp;</div>
<div>&nbsp;首先还是来看后台处理：这次我们除了原有的更新数据的功能，我们将增加删除功能【用户通过delete键删除datagrid中行】。我们的数据传输格式还是json.所以在后台读取的部分保持不变，数据格式更前面的一样，主要是修改更新那部分：</div>
<div>&nbsp;
<pre name="code" class="java">public String sendJsonArray(String jsonData){
        String result= new String();
        //jsonData = jsonData.replace(&quot;\\&quot;, &quot;&quot;);

       JSONArray jsonArray = JSONArray.fromObject(jsonData);
      System.out.println(jsonArray.toString());
       try{
           Connection conToDb = conToDB();
           Statement stmt = conToDb.createStatement();
       for(int i=0;i&lt;jsonArray.size();i++){
           JSONObject jsonObject = JSONObject.fromObject(jsonArray.getString(i));
           String operation = jsonObject.getString(&quot;operation&quot;);

           if(operation.equals(&quot;update&quot;)){
               String name = jsonObject.getString(&quot;name&quot;);
               String id = jsonObject.getString(&quot;id&quot;);
               stmt.executeUpdate(&quot;update employee set name='&quot;+name+&quot;' where id='&quot;+id+&quot;'&quot;);
               result=&quot;恭喜，成功更新&quot;+name+&quot;数据！&quot;;
               System.out.println(result);
           }else if(operation.equals(&quot;delete&quot;)){
               String id = jsonObject.getString(&quot;id&quot;);
               stmt.executeUpdate(&quot;delete from employee where id = '&quot;+id+&quot;'&quot;);
                result=&quot;恭喜，成功删除&quot;+id+&quot;数据!&quot;;
           }
           //String name = jsonObject.getString(&quot;name&quot;);

           //stmt.executeUpdate(&quot;update employee set name='&quot;+name+&quot;' where id='&quot;+id+&quot;'&quot;);

       }

        conToDb.close();
       }catch(Exception e){
           result = e.getLocalizedMessage();
       }
      return result;
    }</pre>
&nbsp;我们传递过来的数据经过json解码之后的格式如下：
<pre name="code" class="java">[{&quot;operation&quot;:&quot;delete&quot;,&quot;id&quot;:&quot;MS009&quot;},{&quot;operation&quot;:&quot;update&quot;,&quot;id&quot;:&quot;MS008&quot;,&quot;name&quot;:&quot;Luciya6&quot;}]</pre>
&nbsp;
<p>有一个operation选项：这个决定是执行更新还是删除操作，更新就包括id,name了。如果是删除就只有id这个数据。至于数据库操作起来就很简单了。看代码就可以了。操作成功我们有一个返回值：&ldquo;恭喜，成功更新Luciya6数据！&rdquo;返回给Flex界面。</p>
<p>接下来解析前台的处理。前台的界面设计还是跟前面的一样，不过增加了一个组件checkbox：用于提供自动更新功能【用户无需手动点击更新按钮】。</p>
<pre name="code" class="xml">&lt;mx:CheckBox id=&quot;chkAutoUpdate&quot; x=&quot;391&quot; y=&quot;268&quot; label=&quot;Auto&quot;/&gt;</pre>
&nbsp;原先我们的做法是在dataProvider上直接赋值，那么这次我们就需要另外顶一个类似dataProvider类型的[ArrayCollection]的数组了，这里叫做dataToUpdate;所以在初始化中增加：
<pre name="code" class="xml">private function initDataGrid():void{
      dataArray = new ArrayCollection();
      dataToUpdate = new ArrayCollection;//用来保存用户更新部分数据
          getData.getOperation('getJsonArray').send();
    }</pre>
&nbsp;同时呢，我们开始监听dataProvider中书的数据dataArray的修改的动作。
<pre name="code" class="xml">private function getJsonData(event:ResultEvent):void{
      var rawArray:Array;
      var arraySize:int;
      var rawData:String = event.result as String;
      rawArray = JSON.decode(rawData) as Array;
      dataArray = new ArrayCollection(rawArray);
      arraySize = dataArray.length;
      lblStatus.text=&quot;读取成功,总共&quot;+arraySize+&quot;条员工信息&quot;;
      dataArray.addEventListener(CollectionEvent.COLLECTION_CHANGE,dataChanged);//监听操作
    }</pre>
&nbsp;
<p>接下来我们定义dataChanged方法：</p>
<p>该方法主要是用来监听修改操作，一旦用户在datagrid中修改数据，就会触发
CollectionEvent.COLLECTION_CHANGE事件，然后根据事件的类型，这里只考虑update类型，如果是update类型执
行记录用户更新的部分资料，然后保存到dataToUpdate数组中：</p>
<pre name="code" class="xml">private function dataChanged(event:CollectionEvent):void{
      var item:Object;
      var updatedObj:Object;
      var i:int;
      if(event.kind == CollectionEventKind.UPDATE){
        for(i=0;i &lt; event.items.length;i++){


          updatedObj = new Object;
          updatedObj.operation = &quot;update&quot;
          updatedObj.id = dgData.selectedItem.id;//get the id

          updatedObj.name =dgData.selectedItem.name;//name
          dataToUpdate.addItem(updatedObj);//push it into array
        }</pre>
&nbsp;这里我们处理完了更新部分，接下来处理键盘的delte事件，首先在dataGrid中添加keyUp事件处理：
<pre name="code" class="xml">&lt;mx:DataGrid id=&quot;dgData&quot; toolTip=&quot;姓名可编辑&quot; x=&quot;10&quot; y=&quot;10&quot; width=&quot;436&quot; height=&quot;250&quot; dataProvider=&quot;{dataArray}&quot;
       creationComplete=&quot;{initDataGrid()}&quot; editable=&quot;true&quot; itemEditEnd=&quot;{checkName(event)}&quot; verticalScrollPolicy=&quot;on&quot;
        keyUp=&quot;checkKeyPress(event)&quot;&gt;</pre>
&nbsp;然后具体定义checkKeyPress()事件：
<pre name="code" class="xml">private function checkKeyPress(event:KeyboardEvent):void{
      if(event.keyCode == Keyboard.DELETE){
        var data:ArrayCollection = dgData.dataProvider as ArrayCollection;
        if(dgData.selectedIndex&gt;=0 &amp;&amp; dgData.selectedIndex&lt;data.length){
            //save the data before removed
             var updatedObj:Object = new Object;
             updatedObj.operation = &quot;delete&quot;;
             updatedObj.id = dgData.selectedItem.id;
             dataToUpdate.addItem(updatedObj);
          data.removeItemAt(dgData.selectedIndex);
        }
      }
    }</pre>
&nbsp;同样把要删除的那行数据先保存到要更新的数组中，然后执行removeItemAt()方法移除那行。这样所有要更新或者要删除的数据都保存在了
dataToUpate数组中。当然我们分别定义了operation的内容，后台程序也会更具operation的内容执行具体的操作。最后是发送数据
给后台程序：我们使用的是remoteObject方法，这里不继续讲了【参考签两篇文章】，给出代码：
<pre name="code" class="xml">private function sendDataAction():void{
      var dataString:String;
      var objSend:Object = new Object();
      if(dataToUpdate.length==0){
          lblStatus.text=&quot;没有数据改动...!&quot;;
      }else{
      dataString = JSON.encode(dataToUpdate.toArray());
      sendData.sendJsonArray(dataString);
      //clear the dataArray for new operation
      dataToUpdate.removeAll();
      lblStatus.text=&quot;正在更新，请稍候...&quot;;
      }
    }</pre>
&nbsp;
<p>很简单，把ArrayCollection转化为Array,然后用json的encode方式转化成json格式传输。后台处理也只要更具getString(property)方式拿到对应的值就可以了，参考前面给出的java代码。</p>
<p>效果图：</p>
<p><img class="photoBorder" src="http://photo1.bababian.com/upload11/20080624/F7E5051F1778BBCA283402A238049EE4_500.jpg" id="current" alt="" />
</p>
<p>附件下载：<a href="http://download.csdn.net/source/511770">http://download.csdn.net/source/511770</a>
</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/207638#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jun 2008 20:21:18 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/207638</link>
        <guid>http://yexin218.javaeye.com/blog/207638</guid>
      </item>
          <item>
        <title>Flex+Java Servlet文件上传实例</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/207219" style="color:red;">http://yexin218.javaeye.com/blog/207219</a>&nbsp;
          发表时间: 2008年06月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>资源都是来自网上。本实例将展示使用Flex和java servlet上传文件。
</p>
<div>&nbsp;事前准备就是到<a href="http://commons.apache.org/">http://commons.apache.org</a>
下载common-fileupload-1.1.1.jar以及common-io-1.2.jar两个包。</div>
<div>前台Flex代码：
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; xmlns=&quot;*&quot; creationComplete=&quot;init();&quot;&gt;
&lt;mx:Script&gt;
&lt;![CDATA[
import flash.net.FileReference;
import mx.controls.Alert;
import mx.events.CloseEvent;
import flash.events.*;

private var file: FileReference;

private function init(): void{
Security.allowDomain(&quot;*&quot;);
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(Event.SELECT, onSelect);
file.addEventListener(Event.COMPLETE, completeHandle);
}

private function completeHandle(event:Event):void{
    Alert.show(&quot;恭喜你，上传成功&quot;);
}

private function upload(): void{
var imageTypes:FileFilter = new FileFilter(&quot;Images (*.jpg, *.jpeg, *.png)&quot;, &quot;*.jpg;*.jpeg;*.png&quot;);
var allTypes:Array = new Array(imageTypes);
file.browse(allTypes);
file.browse();
}
private function onSelect(e: Event): void{
Alert.show(&quot;上传 &quot; + file.name + &quot; (共 &quot;+Math.round(file.size)+&quot; 字节)?&quot;,
&quot;确认上传&quot;,
Alert.YES|Alert.NO,
null,
proceedWithUpload);
}

private function onProgress(e: ProgressEvent): void{
lbProgress.text = &quot; 已上传 &quot; + e.bytesLoaded
+ &quot; 字节，共 &quot; + e.bytesTotal + &quot; 字节&quot;;
var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
bar.setProgress(proc, 100);
bar.label= &quot;当前进度: &quot; + &quot; &quot; + proc + &quot;%&quot;;
}

private function proceedWithUpload(e: CloseEvent): void{
if (e.detail == Alert.YES){
var request: URLRequest = new URLRequest(&quot;http://localhost:8080/FileUploaded/FileUploaded&quot;);
try {
file.upload(request);
} catch (error:Error) {
trace(&quot;上传失败&quot;);
}

}
}
]]&gt;
&lt;/mx:Script&gt;

&lt;mx:Canvas width=&quot;100%&quot; height=&quot;100%&quot; x=&quot;10&quot; y=&quot;170&quot; fontSize=&quot;15&quot;&gt;
&lt;mx:VBox width=&quot;100%&quot; horizontalAlign=&quot;center&quot;&gt;
&lt;mx:Label id=&quot;lbProgress&quot; text=&quot;上传&quot;/&gt;
&lt;mx:ProgressBar id=&quot;bar&quot; labelPlacement=&quot;bottom&quot; themeColor=&quot;#F20D7A&quot;
minimum=&quot;0&quot; visible=&quot;true&quot; maximum=&quot;100&quot; label=&quot;当前进度: 0%&quot;
direction=&quot;right&quot; mode=&quot;manual&quot; width=&quot;200&quot;/&gt;

&lt;mx:Button label=&quot;上传文件&quot; click=&quot;upload();&quot;/&gt;
&lt;/mx:VBox&gt;
&lt;/mx:Canvas&gt;
&lt;/mx:Application&gt;</pre>
&nbsp;
<p><span style="font-family: NSimsun; color: #ff00ff;"><a href="http://localhost:8080/FileUploaded/FileUploaded">http://localhost:8080/FileUploaded/FileUploaded</a>
<span style="color: #000000;">就是你自己写的servlet的路径了。</span>
</span>
</p>
<p><span style="font-family: 新宋体;">接下来写的是Java Servlet:</span>
</p>
<pre name="code" class="xml">package upload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *
 * @author crystal
 */
public class FileUploaded extends HttpServlet {

    /**
     * Processes requests for both HTTP &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; methods.
     * @param request servlet request
     * @param response servlet response
     */
    // 定义文件的上传路径

    private String uploadPath = &quot;d:\\a\\&quot;;

// 限制文件的上传大小

    private int maxPostSize = 100 * 1024 * 1024;

    public FileUploaded() {
        super();
    }

    public void destroy() {
        super.destroy();
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println(&quot;Access !&quot;);
        response.setContentType(&quot;text/html;charset=UTF-8&quot;);
        PrintWriter out = response.getWriter();

//保存文件到服务器中

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(4096);
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(maxPostSize);
        try {
            List fileItems = upload.parseRequest(request);
            Iterator iter = fileItems.iterator();
            while (iter.hasNext()) {
                FileItem item = (FileItem) iter.next();
                if (!item.isFormField()) {
                    String name = item.getName();
                    System.out.println(name);
                    try {
                        item.write(new File(uploadPath + name));
                       // SaveFile s = new SaveFile();

                       // s.saveFile(name);

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
            System.out.println(e.getMessage() + &quot;结束&quot;);
        }
    }

    // &lt;editor-fold defaultstate=&quot;collapsed&quot; desc=&quot;HttpServlet methods. Click on the + sign on the left to edit the code.&quot;&gt;

    /**
     * Handles the HTTP &lt;code&gt;GET&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return &quot;Short description&quot;;
    }
    // &lt;/editor-fold&gt;

}</pre>
</div>
<div>&nbsp;如果使得你的Servlet被访问，你还需要在WEB-INF/web.xml 添加如下的xml语句：[在&lt;web-app&gt;中]</div>
<div>
<pre name="code" class="xml">&lt;!-- For file uploaded --&gt;
   &lt;servlet&gt;
        &lt;servlet-name&gt;FileUploaded&lt;/servlet-name&gt;
        &lt;servlet-class&gt;upload.FileUploaded&lt;/servlet-class&gt;
    &lt;/servlet&gt;

    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;FileUploaded&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/FileUploaded&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;</pre>
</div>
<div>&nbsp;效果图：</div>
<div><img src="http://www.cnblogs.com/images/cnblogs_com/dannyr/flexupload1.jpg" height="250" alt="" width="333" />
</div>
<div><img src="http://www.cnblogs.com/images/cnblogs_com/dannyr/flexupload2.jpg" height="128" alt="" width="259" />
</div>
<div>
<p>参考：</p>
<p><a href="http://blog.csdn.net/meteorlWJ/archive/2008/06/01/2450234.aspx">http://blog.csdn.net/meteorlWJ/archive/2008/06/01/2450234.aspx</a>
</p>
<p><a href="http://swingchen.bokee.com/5943371.html">http://swingchen.bokee.com/5943371.html</a>
</p>
<p><a href="http://www.cnblogs.com/dannyr/archive/2006/11/13/559006.html">http://www.cnblogs.com/dannyr/archive/2006/11/13/559006.html</a>
</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/207219#comments" style="color:red;">已有 <strong>6</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 23 Jun 2008 21:05:52 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/207219</link>
        <guid>http://yexin218.javaeye.com/blog/207219</guid>
      </item>
          <item>
        <title>Flex和Jsp创建用户登入系统</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/206854" style="color:red;">http://yexin218.javaeye.com/blog/206854</a>&nbsp;
          发表时间: 2008年06月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在开始之前我们先来看下效果：【userName==password都是test】
<object height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="400">
<param name="src" value="http://www.vipercreations.com/media/tutorials/login_system_with_flex_and_php/main.swf" />
<embed src="http://www.vipercreations.com/media/tutorials/login_system_with_flex_and_php/main.swf" type="application/x-shockwave-flash" height="400" width="400"></embed>
</object>
</p>
<p align="justify">这个例子中出了使用Flex与JSP验证用户登入之外呢，另外一个看点就是登入之后配合了states使用的resize效果来展示用户正确登入后的界面。</p>
<p align="justify">本文是根据Viper Creaitons中的<a href="http://www.vipercreations.com/tutorials.php?t=28&amp;page=5&amp;c=Adobe%20Flex" target="_blank">Create a Login System with Flex and 
PHP</a>
例子上把后台的php更改成JSP来实现的。【理由很简单，我不会PHP<img src="http://www.cublog.cn/images/face/011.gif" alt="" />
】,后台数据的验证的方法是采用HttpService的，至于前台的参数传递使用的是&lt;mx:Request&gt;方式。网上找了下，还有一种方法是使用URLVariables对象。具体参考：<a href="http://blog.csdn.net/cjd007/archive/2007/05/25/1625823.aspx">http://blog.csdn.net/cjd007/archive/2007/05/25/1625823.aspx</a>
。</p>
<p align="justify">先来看前台UserLogin.mxml</p>
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
    &lt;mx:states&gt;
        &lt;mx:State name=&quot;Logged In&quot;&gt;
            &lt;mx:SetProperty target=&quot;{panel1}&quot; name=&quot;width&quot; value=&quot;95%&quot;/&gt;
            &lt;mx:SetProperty target=&quot;{panel1}&quot; name=&quot;height&quot; value=&quot;95%&quot;/&gt;
            &lt;mx:RemoveChild target=&quot;{password}&quot;/&gt;
            &lt;mx:RemoveChild target=&quot;{username}&quot;/&gt;
            &lt;mx:RemoveChild target=&quot;{label1}&quot;/&gt;
            &lt;mx:RemoveChild target=&quot;{Submit}&quot;/&gt;
            &lt;mx:RemoveChild target=&quot;{label2}&quot;/&gt;
            &lt;mx:SetProperty target=&quot;{panel1}&quot; name=&quot;title&quot; value=&quot;Today is Present&quot;/&gt;
            &lt;mx:AddChild relativeTo=&quot;{panel1}&quot; position=&quot;lastChild&quot;&gt;
                &lt;mx:Label x=&quot;10&quot; y=&quot;10&quot; text=&quot;Today is a gift&quot;/&gt;
            &lt;/mx:AddChild&gt;
            &lt;mx:AddChild relativeTo=&quot;{panel1}&quot; position=&quot;lastChild&quot;&gt;
                &lt;mx:Label x=&quot;10&quot; y=&quot;36&quot; text=&quot;That's way we call it the present!&quot;/&gt;
            &lt;/mx:AddChild&gt;
            &lt;mx:AddChild relativeTo=&quot;{panel1}&quot; position=&quot;lastChild&quot;&gt;
                &lt;mx:Label x=&quot;10&quot; y=&quot;62&quot; text=&quot;Liceven&quot;/&gt;
            &lt;/mx:AddChild&gt;
        &lt;/mx:State&gt;
    &lt;/mx:states&gt;
    &lt;mx:Script&gt;
        &lt;![CDATA[
            import mx.rpc.events.ResultEvent;
            
        ]]&gt;
    &lt;/mx:Script&gt;
    &lt;mx:Script&gt;
    

&lt;![CDATA[

private function checkLogin(evt:ResultEvent):void
{

    if(evt.result.loginResult == &quot;yes&quot;)

    {

    currentState = &quot;Logged In&quot;;

    }

    if(evt.result.loginResult == &quot;no&quot;)

    {
        
        mx.controls.Alert.show('Invalid username/password');

    }        
}

]]&gt;

&lt;/mx:Script&gt;
    &lt;mx:HTTPService id=&quot;login_user&quot; result=&quot;checkLogin(event)&quot; showBusyCursor=&quot;true&quot; method=&quot;POST&quot; url=&quot;http://localhost:8080/UserLogin/loginCheck.jsp&quot; useProxy=&quot;false&quot;&gt;
        &lt;mx:request xmlns=&quot;&quot;&gt;
            &lt;username&gt;
                {username.text}
            &lt;/username&gt;
            &lt;password&gt;
                {password.text}
            &lt;/password&gt;
        &lt;/mx:request&gt;
    &lt;/mx:HTTPService&gt;
    
    &lt;mx:Panel resizeEffect=&quot;Resize&quot; width=&quot;250&quot; height=&quot;200&quot; layout=&quot;absolute&quot; title=&quot;Login System&quot; horizontalCenter=&quot;0&quot; verticalCenter=&quot;-2&quot; id=&quot;panel1&quot;&gt;
        &lt;mx:Label x=&quot;10&quot; y=&quot;10&quot; text=&quot;Username:&quot; id=&quot;label1&quot;/&gt;
        &lt;mx:TextInput x=&quot;10&quot; y=&quot;36&quot; id=&quot;username&quot;/&gt;
        &lt;mx:Label x=&quot;10&quot; y=&quot;66&quot; text=&quot;Password:&quot; id=&quot;label2&quot;/&gt;
        &lt;mx:TextInput x=&quot;10&quot; y=&quot;92&quot; id=&quot;password&quot; displayAsPassword=&quot;true&quot;/&gt;
        &lt;mx:Button x=&quot;10&quot; y=&quot;122&quot; label=&quot;Submit&quot; id=&quot;Submit&quot; click=&quot;login_user.send();&quot;/&gt;
    &lt;/mx:Panel&gt;
    
&lt;/mx:Application&gt;

</pre>
<p>&nbsp;下面是后台loginCheck.jsp</p>
<pre name="code" class="html">&lt;%
    response.setContentType(&quot;text/xml&quot;);
    out.println(&quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;&quot;);
    String userName = request.getParameter(&quot;username&quot;);
    String password = request.getParameter(&quot;password&quot;);

    //Here we do a simple checking to make sure userName equals to password

    //and then outprints yes or not

    String loginResult = &quot;&lt;loginResult&gt;&quot;;
    if (userName.equals(password)) {
        loginResult += &quot;yes&quot;;
    } else {
        loginResult += &quot;no&quot;;
    }
    loginResult += &quot;&lt;/loginResult&gt;&quot;;

    out.println(loginResult);
%&gt;
</pre>
<p>&nbsp;我的实现很简单，只要判断用户名和密码是否一样就可以了。其实这里可以自己实现数据库的连接，然后来判断用户资料的正确与否比较使用。有时间在完善吧。先这样。 </p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/206854#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 22 Jun 2008 16:16:30 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/206854</link>
        <guid>http://yexin218.javaeye.com/blog/206854</guid>
      </item>
          <item>
        <title>Flex中嵌入Google地图</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/205556" style="color:red;">http://yexin218.javaeye.com/blog/205556</a>&nbsp;
          发表时间: 2008年06月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>在我们开始之前，先来看一个例子：<a href="http://scriptplayground.com/article_files/Installing-and-Using-Google-Maps-in-Flex/main.html">http://scriptplayground.com/article_files/Installing-and-Using-Google-Maps-in-Flex/main.html</a>
</div>
<div>本文将介绍如何使用Flex Builder建立一个Flex内嵌Google Map的例子。首先呢,先下载 <a href="http://maps.googleapis.com/maps/flash/release/sdk.zip" target="_blank"><span style="color: #0000ff;">Google Maps SDK</span>
</a>
【解压到某个文件夹内，找到lib内的<span style="font-family: NSimsun;">map_flex_1_1.swc，到时候需要导入Project中</span>
】,以及去申请一个<a href="http://code.google.com/apis/maps/signup.html" target="_blank"><span style="color: #0000ff;">developers API key</span>
</a>
.【申请的时候需要填写网页地址：如果你使用本地的连接测试：比如<a href="http://localhost:8080/GoogleMap">http://localhost:8080/GoogleMap</a>
，这样填写就好了，GoogleMap是我们将要建立的一个Flex Project 名字】。打开Flex Builder,新建Flex Project【File &gt; New Flex Project】:<span style="color: #ff0000;">GoogleMap</span>
。我使用的BlazeDS建立我的Web形式的Application【使用的服务器是J2EE】。这样最后建立好之后，需要导入<span style="font-family: 新宋体;">map_flex_1_1.swc【右键点击GoogleMap-properties--Flex build path--library path--add swc..】</span>
</div>
<p><span style="font-family: 新宋体;"><img src="http://scriptplayground.com/article_files/Installing-and-Using-Google-Maps-in-Flex/gmap_choose_properties_2.png" alt="" />
</span>
</p>
<p><span style="font-family: 新宋体;">之后就可以开始我们的Google Map之旅了。</span>
</p>
<pre name="code" class="java">?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;
  width=&quot;100%&quot; height=&quot;100%&quot; initialize=&quot;init()&quot;&gt;
        
    &lt;mx:Script&gt;
        &lt;![CDATA[
                
        ]]&gt;
    &lt;/mx:Script&gt;
        
    &lt;mx:UIComponent id=&quot;mapContainer&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
    
&lt;/mx:Application&gt;</pre>
<p>&nbsp;代码中添加了一个标记&lt;mx:UTComponent&gt;制定了宽度和高度，其实这里的id=&quot;mapContainer&quot;就是装入GoogleMap的一个容器。你必须指定一个唯一的id,否则Flex无法识别加载。接着下载需要的packet.</p>
<pre name="code" class="java">import com.google.maps.Map;
import com.google.maps.MapEvent;
import com.google.maps.MapType;
import com.google.maps.LatLn</pre>
<p>&nbsp;紧接着定义一个变量指向google map 的一个实例。</p>
<pre name="code" class="java">private var gMap:Map;</pre>
<p>&nbsp;接下来就开始定义一个init()的函数，该函数在Flex程序被加载的时候被调用，用来完成程序的实例创建以及属性的配置。当这些都被设置好了之后，你要在地图被完全加载的时候创建一个event handler来把地图潜入mapContainer指定的位置。</p>
<pre name="code" class="java">private function init():void
{
    gMap = new Map();
    gMap.key = &quot;{YOUR_API_KEY_HERE}&quot;;
    gMap.width = 600;
    gMap.height = 400;
    gMap.addEventListener(MapEvent.MAP_READY, mapReadyHandler);
    
    mapContainer.addChild(gMap);
}</pre>
<p>&nbsp;最后就是在map完全加载的时候定义的event handler，指定了显示地图的坐标以及设置应用程序的大小。完整的代码：</p>
<pre name="code" class="java">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; width=&quot;100%&quot; height=&quot;100%&quot; initialize=&quot;init()&quot; viewSourceURL=&quot;srcview/index.html&quot;&gt;
    
    &lt;mx:Script&gt;
        &lt;![CDATA[
            
            import com.google.maps.Map;
            import com.google.maps.MapEvent;
            import com.google.maps.MapType;
            import com.google.maps.LatLng;
            
            private var gMap:Map;
            
            private function init():void
            {
                gMap = new Map();
                gMap.key = &quot;你申请的key&quot;;
                gMap.width = 600;
                gMap.height = 400;
                gMap.addEventListener(MapEvent.MAP_READY, mapReadyHandler);
                
                mapContainer.addChild(gMap);
            }
            
            private function mapReadyHandler(e:MapEvent):void
            {
                gMap.setCenter(new LatLng(42.334184,-71.018372), 13, MapType.HYBRID_MAP_TYPE);
                gMap.setSize(new Point(mapContainer.width, mapContainer.height));
            }
            
        ]]&gt;
    &lt;/mx:Script&gt;
    
    &lt;mx:UIComponent id=&quot;mapContainer&quot; width=&quot;100%&quot; height=&quot;100%&quot;/&gt;
    
&lt;/mx:Application&gt;</pre>
&nbsp;
<p>编译执行【<a href="http://localhost:8080/GoogleMap/GoogleMap.html">http://localhost:8080/GoogleMap/GoogleMap.html</a>
】你就会看到demo中的效果了。但是如果你使用的不是http这种浏览方式，比如是<a href="file:///">file:///</a>
等看到的图片可能会有debug的符号：</p>
<p><img src="http://scriptplayground.com/article_files/Installing-and-Using-Google-Maps-in-Flex/gmap_debug.png" alt="" />
</p>
<p>但是都不影响它的其他功能。</p>
<div>原创作者：<span class="commentauthor"><a href="http://scriptplayground.com/tutorials/as/Installing-and-Using-Google-Maps-in-Flex/" rel="external nofollow"><span style="color: #0000ff;">mkeefe</span>
</a>
。翻译整理：<a href="http://yexin218.cublog.cn/" target="_blank">一路风尘</a>
</span>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/205556#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Jun 2008 22:29:52 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/205556</link>
        <guid>http://yexin218.javaeye.com/blog/205556</guid>
      </item>
          <item>
        <title>Flex程序发布 </title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/204942" style="color:red;">http://yexin218.javaeye.com/blog/204942</a>&nbsp;
          发表时间: 2008年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div id="art" style="margin: 15px;">
<div>当你写好了一个Flex程序，想要按照某种方式发布。比如我们在网上见到很多发布后的例子中，在点击右键的时候出现一个菜单，菜单中有一个view 
source选项。选择这一项就可以预览程序的源码甚至是整个程序的架构。接下来简单介绍下程序的发布来实现这一功能：</div>
<div>1.选择你要发布的程序的Project名字：比如FlexMail.然后右键选择Export...</div>
<div>2.选择Flex下的release Build然后见到如下图显示的：</div>
<div><img src="http://photo1.bababian.com/upload11/20080617/F58E8D75F6DB58525D380C8B13DEFA0C_500.jpg" alt="" />
</div>
<div>3.可以再view source中选择你要发布的程序代码项，比如：</div>
<div><img src="http://photo1.bababian.com/upload11/20080617/44A0DF88BECBAEDEC2AFA532780E31D4_500.jpg" alt="" />
</div>
<div>4.指定导出的地址，保持默认就可以了。最后Finish.</div>
<div>5.运行程序，你就可以在程序中实现右键看代码的功能了：</div>
<div><img src="http://photo1.bababian.com/upload11/20080617/EA9DE8073E99FCA486ABC78964C0D1A9_500.jpg" alt="" />
</div>
<div>6.最后的结果如下图：</div>
<div>&nbsp;</div>
<div><img src="http://photo1.bababian.com/upload11/20080617/D0EC91F30CB63C680A612268E230B79E_500.jpg" alt="" />
</div>
<div>7.<span style="color: #ff0000;">Note</span>
：其实在这个发布过程中，在你的发布的主程序中添加了一些代码：</div>
<div>&nbsp;</div>
<table cellspacing="0" bordercolor="#999999" border="1" bgcolor="#f1f1f1" width="95%" cellpadding="0" style="border-collapse: collapse;">
<tbody>
<tr>
<td>
<p style="margin: 5px; line-height: 150%;"><code><span style="color: #000000;"><span style="color: #0000cc;">&lt;</span>
mx:Application 
xmlns:mx<span style="color: #0000cc;">=</span>
&ldquo;http:<span style="color: #0000cc;">/</span>
<span style="color: #0000cc;">/</span>
www<span style="color: #0000cc;">.</span>
adobe<span style="color: #0000cc;">.</span>
com<span style="color: #0000cc;">/</span>
2006<span style="color: #0000cc;">/</span>
mxml&rdquo;<br />
viewSourceURL<span style="color: #0000cc;">=</span>
&ldquo;srcview<span style="color: #0000cc;">/</span>
index<span style="color: #0000cc;">.</span>
html&rdquo;<span style="color: #0000cc;">&gt;</span>
</span>
</code>
</p>
</td>
</tr>
</tbody>
</table>
8.不过都没有什么影响。发布到此结束。 
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/204942#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Jun 2008 23:32:09 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/204942</link>
        <guid>http://yexin218.javaeye.com/blog/204942</guid>
      </item>
          <item>
        <title>Flex自定义Alert窗口显示位置</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/204277" style="color:red;">http://yexin218.javaeye.com/blog/204277</a>&nbsp;
          发表时间: 2008年06月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div>好像Flex3也没有找到可以直接使用的(x,y)的方法来指定Alert窗口的显示位置。但是还是有办法解决这个问题的：</div>
<div>代码1:
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot;&gt;
&lt;mx:Script&gt;&lt;![CDATA[
  import mx.controls.Alert;
  import mx.managers.PopUpManager;
  private function showAlert():void{
      var alert:Alert = Alert.show(&quot;Can you see me on random positions?&quot;);
            PopUpManager.centerPopUp (alert);
           var newX:Number = 200;
           var newY:Number = 200;
           callLater (alert.move, [newX, newY]);

  }
]]&gt;&lt;/mx:Script&gt;
  &lt;mx:Button label=&quot;Show Alert&quot; click=&quot;showAlert()&quot;/&gt;
&lt;/mx:Application&gt;</pre>
&nbsp;代码2：只更改showAlert()方法
<pre name="code" class="xml">private function showAlert():void{
      var alert:Alert = Alert.show(&quot;Can you see me on random positions?&quot;);
            PopUpManager.centerPopUp (alert);
           var newX:Number = 200;
           var newY:Number = 200;
           //alert.validateNow();

           alert.move(newX,newY);
           //callLater (alert.move, [newX, newY]);


  }</pre>
&nbsp;代码3：添加即时验证：
<pre name="code" class="xml">private function showAlert():void{
      var alert:Alert = Alert.show(&quot;Can you see me on random positions?&quot;);
            PopUpManager.centerPopUp (alert);
           var newX:Number = 200;
           var newY:Number = 200;
           alert.validateNow();
           alert.move(newX,newY);
           //callLater (alert.move, [newX, newY]);


  }</pre>
&nbsp;原创作者：<span class="commentauthor"><a href="http://www.abdulqabiz.com/blog/archives/flash_and_actionscript/setting_position_of.php" rel="external nofollow"><span style="color: #0000ff;"> Abdul Qabiz </span>
</a>
。翻译整理：<a href="http://yexin218.cublog.cn/" target="_blank">一路风尘</a>
</span>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/204277#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 16 Jun 2008 18:25:44 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/204277</link>
        <guid>http://yexin218.javaeye.com/blog/204277</guid>
      </item>
          <item>
        <title>Flex支持滑轮滚动</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/204275" style="color:red;">http://yexin218.javaeye.com/blog/204275</a>&nbsp;
          发表时间: 2008年06月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>有些时候需要在Flex界面中支持鼠标的滑轮滚动功能，比如通过滑轮滚的滚动来实现对某个Field的数值增加或者递减的功能。
</p>
<div>&nbsp;实现的方法主要是利用MouseEvent.MOUSE_WHEEL事件。在Application中的creationComplete方法中增加以下语句：
<pre name="code" class="java">systemManager.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel)</pre>
&nbsp;onMouseWheel事件处理器得到这个事件后，我们还需要监听是那个field支持而且触发了滚动事件。需要注意的是MouseEvent的currentTarget并不支持指出当前那个组件是被focus的。但是FocusManager可以帮忙：源代码如下：
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;vertical&quot;
    creationComplete=&quot;systemManager.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel)&quot;
    &gt;
    &lt;mx:TextInput id=&quot;t1&quot;/&gt;
    &lt;mx:TextInput id=&quot;t2&quot;/&gt;  
    &lt;mx:TextArea  id=&quot;t3&quot;/&gt;  
    
    &lt;mx:Script&gt;
        &lt;![CDATA[
        import mx.managers.IFocusManagerComponent;
        import mx.managers.SystemManager;
        
        public function onMouseWheel (evt:MouseEvent): void {
            
            var compAtFocus: IFocusManagerComponent = focusManager.getFocus();
            
            // no wheel support unless it's a TextInput field
            if (compAtFocus is TextInput){
                var theValue:Number=Number(compAtFocus[&quot;text&quot;]);
                theValue += evt.delta;
                compAtFocus[&quot;text&quot;]=&quot;&quot;+theValue;
            }  
       }         
        ]]&gt;
    &lt;/mx:Script&gt;
    
&lt;/mx:Application&gt;</pre>
</div>
<div>&nbsp;Demo演示：【或者点击链接测试：<a href="http://www.myflex.org/codesamples/mousewheel/MouseWheel.html">http://www.myflex.org/codesamples/mousewheel/MouseWheel.html</a>
】</div>
<div>
<object height="592" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="592">
<param name="src" value="http://www.myflex.org/codesamples/mousewheel/MouseWheel.swf" />
<embed src="http://www.myflex.org/codesamples/mousewheel/MouseWheel.swf" type="application/x-shockwave-flash" height="592" width="592"></embed>
</object>
</div>
<div>
<p>例子中我们是检查了被focus的组件是否是TextInput,如果是执行递增或者递减的功能。如果不是比如TextArea类型的，就不具有这
个效果了。需要注意的，如果你的系统不支持滑轮滚动可能跟驱动有关，不是Flex的问题。如果你不喜欢例子中的增长或者递减数值，你可以替换掉delta
这个属性。</p>
<div>原创作者：<span class="commentauthor"><a href="http://flexblog.faratasystems.com/?p=278%20rel="><span style="color: #0000ff;">Yakov Fain</span>
</a>
。翻译整理：<a href="http://yexin218.cublog.cn/" target="_blank">一路风尘</a>
</span>
</div>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/204275#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 16 Jun 2008 18:23:33 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/204275</link>
        <guid>http://yexin218.javaeye.com/blog/204275</guid>
      </item>
          <item>
        <title>记父亲节</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/203442" style="color:red;">http://yexin218.javaeye.com/blog/203442</a>&nbsp;
          发表时间: 2008年06月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-family: 楷体_GB2312; font-size: medium;">&nbsp; 事故前最后一次见到父亲是在那年的秋末了，天气开始转冷了。</span>
<span style="font-size: medium;"><br />
</span>
<span style="font-family: 楷体_GB2312; font-size: medium;">&nbsp;&nbsp;那天我下课回到宿舍时，就在宿舍门口见到他了，他穿着一身工作服，好像不是专门来看我的。他把从家里带来的衣服递给我之后，说还要出远门做活。我当时也不知道说什么才好，已经中午了，我想跟父亲一起吃个饭，可是他说急着赶车，这样我就送他到校门口。在嘱咐我要照顾好自己，专心学业之后，他又从口袋掏出200块钱，叫我省点花，我点点头。然后他就离开了，挥挥手，就那么的简单，望着他渐行渐远的背影，当时就在想什么时候才能再见到你，希望再见到你的时候，不需这么劳累，不需这么奔波。</span>
<span style="font-size: medium;"><br />
</span>
<span style="font-family: 楷体_GB2312; font-size: medium;">&nbsp;&nbsp;很多事情有时候发现还真的不要去想象，因为父亲他发生了意外事故，让这次别离成了永远。很多次我都很后悔当时没有拉着父亲一起吃那顿午饭，没有送他多一段路程。现在留下的最深刻就是别离是挥手刹那父亲望着我的脸庞，有些憔悴，有些期待。每当想起时，我就觉得人生苦难无常，是否是要在自己健康活着的时候做些父亲期待的事情呢？于是发奋努力，高中毕业考取了不错的学校，虽然现在大学毕业的学校不是当初报考的，但是都过得不错，虽然中途有些迷茫，有些失落，无论怎么样，现在大学毕业了，我想父亲会感到一丝欣慰的。但是有一件事我一直很羞愧，那是我竟然不知道自己父亲最喜欢的食物。</span>
<span style="font-size: medium;"><br />
</span>
<span style="font-family: 楷体_GB2312; font-size: medium;">&nbsp;&nbsp;小些时候，家里比较拮据，餐餐有饭有菜，我们这些孩子就已经吃的很香了，如果逢月尾，也许还有猪肉，真的念小学的时候，对我们家来说真的是相当丰盛了。也许日子过得太平淡了，好像大家都没有表现出自己喜欢的食物，连我自己发现自己最喜欢的食物的时候都是在大学。所以我对母亲，父亲，弟弟妹妹的食物喜好，一概不知。自己也不曾问过。其实倒是跟父亲一起到外面吃过饭的，但都是那些快餐店中的快餐或者面食，我想父亲应该有他自己最喜欢的食物，也许他没有吃过，但肯定见过或者听过。只是家里沉重负担让他根本不能去在意他个人的喜好罢了。这一点，我体会的很深刻。每当农忙季节，父亲总是在很早就到田里干活去了，早饭都是母亲去帮忙的时候带过去的，当然还有午饭。所以父亲对自己的食物没有选择，况且也没有时间去畅想。生活依旧那样的平淡，几乎没有波澜。</span>
<span style="font-size: medium;"><br />
</span>
<span style="font-family: 楷体_GB2312; font-size: medium;">&nbsp;&nbsp;树欲静而风不止，子欲养而亲不待。这成了的人生的一个遗憾，而一直让我耿耿于怀的是，自己不知道父亲的食物喜好。祭拜的时候，我又该带些什么呢？我只想尽自己一份心意罢了！一切都不得知，只因为它已逝去...</span>
</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/203442#comments" style="color:red;">已有 <strong>35</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 15 Jun 2008 11:18:39 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/203442</link>
        <guid>http://yexin218.javaeye.com/blog/203442</guid>
      </item>
          <item>
        <title>Flex实现简单的Email发送</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/203258" style="color:red;">http://yexin218.javaeye.com/blog/203258</a>&nbsp;
          发表时间: 2008年06月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<div>&nbsp; 本文主要介绍和实现怎么使用Flex-java来实现Email的发送。这尤其是在做用户回馈的时候需要用到。当然这实现的只要是一个简单的例子。正在执行发送Email功能还是使用java来实现的，Flex只不过提供了数据的输入和封装。使用的原理很简单：</div>
<div>Flex-Form &lt;--接受用户输入</div>
<div>&nbsp;&nbsp; ||</div>
<div>&nbsp;&nbsp; ||使用RemoteObject方式就用户输入的数据封装成json格式传递到后台java bean</div>
<div>&nbsp;&nbsp; ||</div>
<div>Java Bean()---&gt;执行真正的Email发送-----&gt;回馈消息----&gt;Flex-Form</div>
<div>使用的界面如下图：</div>
<div><img src="http://photo1.bababian.com/upload11/20080614/94396C1792707F970B7AD855F55EC89D_500.jpg" alt="" />
</div>
<div>简单实现了用户输入的验证以及Email验证(更详细的可以参考<a href="http://www.adobe.com/devnet/flex/quickstart/validating_data/" target="_blank">Adobe数据验证</a>
)</div>
<div>以下是实现的代码：</div>
<div>1.后台java处理：【你需要两个jar: <a href="http://www.rgagnon.com/examples/mail.jar"><span style="color: #0000ff;">mail.jar</span>
</a>
 and <a href="http://www.rgagnon.com/examples/activation.jar"><span style="color: #0000ff;">activation.jar</span>
</a>
】</div>
<div>
<pre name="code" class="java">package mail;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class SendFlexMail {
     private static final String SMTP_HOST_NAME = &quot;smtp.163.com&quot;;
     private static final String SMTP_AUTH_USER = &quot;feixianryexin&quot;;
     private static final String SMTP_AUTH_PWD = &quot;yourpassword&quot;;

     // Add List of Email address to who email needs to be sent to

     private String[] emailList;
      public String sendFlexMail(String flexMail){
         String result=&quot;&quot;;
         JSONArray flexJavaMail = JSONArray.fromObject(flexMail);
         emailList = new String[2];
         JSONObject mailJsonObj = JSONObject.fromObject(flexJavaMail.getString(0));
         emailList[0] = mailJsonObj.getString(&quot;senderEmail&quot;);//send mail to yourself

         emailList[1] = mailJsonObj.getString(&quot;sendToEmail&quot;);
         String senderName = mailJsonObj.getString(&quot;senderName&quot;);
         String sendToName = mailJsonObj.getString(&quot;sendToName&quot;);
         String senderMail = mailJsonObj.getString(&quot;senderEmail&quot;);
         String emailMessage = mailJsonObj.getString(&quot;emailMessage&quot;);
         String emailTopic = sendToName+&quot;:A Letter From Your Friend &quot;+senderName;
         try{
         postMail(emailList,emailTopic, emailMessage,senderMail);
         result=&quot;Congratulations!&quot;;
         }catch (MessagingException e){
             e.printStackTrace();
         }
         return result;
      }
     public void postMail( String recipients[ ], String subject,
     String message , String from) throws MessagingException
     {
     boolean debug = false;

     //Set the host smtp address

     Properties props = new Properties();
     props.put(&quot;mail.smtp.host&quot;, SMTP_HOST_NAME);
     props.put(&quot;mail.smtp.auth&quot;, &quot;true&quot;);

     Authenticator auth = new SMTPAuthenticator();
     Session session = Session.getDefaultInstance(props, auth);

     session.setDebug(debug);

     // create a message

     Message msg = new MimeMessage(session);

     // set the from and to address

     InternetAddress addressFrom = new InternetAddress(from);
     msg.setFrom(addressFrom);

     InternetAddress[] addressTo = new InternetAddress[recipients.length];
     for (int i = 0; i &lt; recipients.length; i++)
     {
     addressTo[i] = new InternetAddress(recipients[i]);
     }
     msg.setRecipients(Message.RecipientType.TO, addressTo);


     // Setting the Subject and Content Type

     msg.setSubject(subject);
     msg.setContent(message, &quot;text/plain&quot;);
     Transport.send(msg);
     }


    /**
    * SimpleAuthenticator is used to do simple authentication
    * when the SMTP server requires it.
    */
    private class SMTPAuthenticator extends javax.mail.Authenticator
    {

     public PasswordAuthentication getPasswordAuthentication()
     {
     String username = SMTP_AUTH_USER;
     String password = SMTP_AUTH_PWD;
     return new PasswordAuthentication(username, password);
     }
    }

}

</pre>
</div>
<div>&nbsp;2.前台的Flex-Form：</div>
<div>&nbsp;&nbsp; <br />
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; viewSourceURL=&quot;srcview/index.html&quot;&gt;

&lt;mx:Script&gt;
    &lt;![CDATA[
        import mx.controls.Alert;
        import mx.controls.TextInput;
        import mx.rpc.events.ResultEvent 
        import mx.collections.ArrayCollection;
        import com.adobe.serialization.json.JSON;
        
        private var flexMail:ArrayCollection;
        public function sendMailAction( ):void
        {
         
            
           flexMail = new ArrayCollection();
           var mailObj:Object = new Object();
           mailObj.senderName = senderName.text;
           mailObj.senderEmail =senderEmail.text;
           mailObj.sendToName = sendToName.text;
           mailObj.sendToEmail = sendToEmail.text;
           mailObj.emailMessage =emailMessage.text;
           
           //check email valid

           if(senderName.text !=&quot;&quot; &amp;&amp; senderEmail.text!=&quot;&quot;&amp;&amp;sendToName.text!=&quot;&quot;&amp;&amp; sendToEmail.text!=&quot;&quot;&amp;&amp; emailMessage.text!=&quot;&quot;){
                 if(senderEmail.text.indexOf(&quot;@&quot;)==-1 || sendToEmail.text.indexOf(&quot;@&quot;)==-1){
                   labState.text=&quot;Email格式不正确哦！&quot;;
                 }else{
                     flexMail.addItem(mailObj); 
                     var emailString:String = JSON.encode(flexMail.toArray());
                     sendMail.sendFlexMail(emailString)
                     labState.text=&quot;正在发送请稍候...&quot;;
           }
           }else{
                labState.text=&quot;请输入所有的选项!&quot;;
           }

        } 
        
        public function sendFlexMailResult(event:ResultEvent):void
        {
            Alert.show(event.result as String);
            senderName.text=&quot;&quot;;
            senderEmail.text=&quot;&quot;;
            sendToName.text=&quot;&quot;;
            sendToEmail.text=&quot;&quot;;
            emailMessage.text=&quot;&quot;;
            labState.text=&quot;恭喜，成功发送邮件！&quot;;
        }
        
    ]]&gt;
&lt;/mx:Script&gt;

&lt;mx:Style source=&quot;mailFormCSS.css&quot; /&gt;

&lt;mx:RemoteObject id=&quot;sendMail&quot; destination=&quot;sendFlexMail&quot; showBusyCursor=&quot;true&quot; result=&quot;sendFlexMailResult(event)&quot; /&gt;
    &lt;mx:Panel width=&quot;448&quot; height=&quot;474&quot; &gt;
        &lt;mx:Text width=&quot;100%&quot; height=&quot;29&quot; text=&quot;Email Form&quot; styleName=&quot;header&quot;/&gt;
        &lt;mx:Text text=&quot;Flex3 / BlazeDS / Java&quot; styleName=&quot;subHeader&quot; /&gt;
        &lt;mx:HRule width=&quot;100%&quot;/&gt;
        
         &lt;mx:Form id=&quot;emailForm&quot; width=&quot;100%&quot; &gt;
         
             &lt;mx:FormItem label=&quot;Your Name:&quot; horizontalAlign=&quot;left&quot; width=&quot;100%&quot;&gt;
                &lt;mx:TextInput id=&quot;senderName&quot; width=&quot;100%&quot;/&gt;
            &lt;/mx:FormItem&gt;
            
            &lt;mx:FormItem label=&quot;Your E-mail:&quot; width=&quot;100%&quot;&gt;
                &lt;mx:TextInput id=&quot;senderEmail&quot; width=&quot;100%&quot;/&gt;
            &lt;/mx:FormItem&gt;
         
            &lt;mx:FormItem label=&quot;Friends Name:&quot; horizontalAlign=&quot;left&quot; width=&quot;100%&quot;&gt;
                &lt;mx:TextInput id=&quot;sendToName&quot; width=&quot;100%&quot;/&gt;
            &lt;/mx:FormItem&gt;
    
            &lt;mx:FormItem label=&quot;Friends E-mail:&quot; width=&quot;100%&quot;&gt;
                &lt;mx:TextInput id=&quot;sendToEmail&quot; width=&quot;100%&quot;/&gt;
            &lt;/mx:FormItem&gt;
            
            &lt;mx:FormItem label=&quot;Message&quot; horizontalAlign=&quot;left&quot; width=&quot;100%&quot;&gt;
                &lt;mx:TextArea id=&quot;emailMessage&quot; width=&quot;100%&quot; height=&quot;100&quot;/&gt;
            &lt;/mx:FormItem&gt;
            
             &lt;mx:FormItem width=&quot;100%&quot; height=&quot;33&quot;&gt;
                &lt;mx:Spacer width=&quot;200&quot; /&gt;
                &lt;mx:Button id=&quot;submitBtn&quot; label=&quot;Submit&quot; click=&quot;sendMailAction()&quot;/&gt;
             &lt;/mx:FormItem&gt;
        &lt;/mx:Form&gt;
        
     &lt;mx:HBox styleName=&quot;cbStyle&quot; width=&quot;414&quot;&gt;
      &lt;mx:Label id=&quot;labState&quot; width=&quot;393&quot; fontSize=&quot;14&quot; color=&quot;#FE0113&quot;/&gt;
           &lt;!-- &lt;mx:CheckBox label=&quot;Check to send a copy to yourself&quot; id=&quot;cb&quot;/&gt;--&gt;
        &lt;/mx:HBox&gt;
        
        &lt;mx:HRule width=&quot;100%&quot; height=&quot;0&quot;/&gt;
        
        &lt;mx:Label styleName=&quot;footer&quot;&gt;
               &lt;mx:htmlText&gt;&lt;![CDATA[&lt;a href=&quot;http://yexin218.cublog.cn&quot; target=&quot;_blank&quot; &gt;&lt;b&gt;一路风尘制作&lt;/b&gt;&lt;/a&gt;]]&gt;&lt;/mx:htmlText&gt;
           &lt;/mx:Label&gt;
    
    &lt;/mx:Panel&gt;
    
&lt;/mx:Application&gt;
</pre>
&nbsp;
<p>数据传递使用的是BlazeDS.关于BlazeDS参考：<a href="http://blog.chinaunix.net/u/21684/showart_725388.html" target="_blank">使用BlazeDS实现Java和Flex通信</a>
</p>
<p>附件下载【包含Flex-plugin的eclipse工程文件以及源码】：<a href="http://download.csdn.net/source/496805" target="_blank">DownLoad</a>
</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://yexin218.javaeye.com/blog/203258#comments" style="color:red;">已有 <strong>2</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 14 Jun 2008 16:35:06 +0800</pubDate>
        <link>http://yexin218.javaeye.com/blog/203258</link>
        <guid>http://yexin218.javaeye.com/blog/203258</guid>
      </item>
          <item>
        <title>Flex创建可编辑以及分页的DataGrid</title>
        <author>yexin218</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yexin218.javaeye.com">yexin218</a>&nbsp;
                    链接：<a href="http://yexin218.javaeye.com/blog/203032" style="color:red;">http://yexin218.javaeye.com/blog/203032</a>&nbsp;
          发表时间: 2008年06月13日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;&nbsp; 之前那篇文章：<a href="http://blog.chinaunix.net/u/21684/showart_732957.html" target="_blank">使用Flex,Java,Json更新Mysql数据库</a>
已经介绍了如何使用Json格式的数据从后台用remoteObject的方法读取后现在Flex的DataGrid中。但是如果数据的量很大，就要使用scroll的方式来浏览了，这样造就了很多不变。参考了<a href="http://flex2.group.javaeye.com/group/blog/202883" target="_blank">javally的应用分页列表组件</a>
 后结合两个程序就可以比较完美的实现一个可以编辑的以及分页的dataGrid了。使得用户可以读取数据库数据，然后在编辑后，保存数据。有兴趣的话最后先阅读这两篇文章，这样之后就很容易理解了。关于使用Blazeds的配置我就省略了，请自行参考。</p>
<p>&nbsp; java后台的处理同<a href="http://blog.chinaunix.net/u/21684/showart_732957.html" target="_blank">使用Flex,Java,Json更新Mysql数据库</a>
 大致上一样，只是更改了一些方法的名字。现在主要贴出前台Flex主程序的代码：</p>
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!-- DataGrid control example. --&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
	 creationComplete=&quot;creationComplete()&quot; 
	xmlns:user=&quot;comp.*&quot;&gt;
	&lt;mx:Script&gt;
		&lt;![CDATA[
		import mx.controls.Alert;
		import mx.collections.ArrayCollection;
		import mx.rpc.events.ResultEvent;
		import com.adobe.serialization.json.JSON;
		import mx.rpc.events.ResultEvent;
        import mx.collections.ArrayCollection;	
		
           [Bindable]   
           private var ac:ArrayCollection;   
           //如果查询出来的数据为xml格式，调用这个方法   
           private function loadXmlData(xml:XML):void  
           {   
              ac=new ArrayCollection();   
              for each(var item:Object in xml.employee)//将Table换成XML中的根元素名称   
              {   
                  ac.addItem(item);   
              }    
              myDG.init(ac);   
           } 
           private function getGridDataAction():void{
            getDataObj.getGridData();
            labNote.text=&quot;正在读取...请稍候&quot;;
        }
           //查询出来的结果为数组，直接传递给init即可
			private function loadAcData(event:ResultEvent):void
			{  
				var rawArray:Array;
				var rawData:String = event.result as String;
			    rawArray = JSON.decode(rawData) as Array;
				ac=new ArrayCollection();	
				ac = new ArrayCollection(rawArray);			               
			    myDG.init(ac); 
			     labNote.text=&quot;读取成功,总共&quot;+ac.length+&quot;条员工信息!&quot;;
			}   
			           
           private function creationComplete():void
           {
           	//loadXmlData(employees);
           	getDataObj.getOperation('getGridData').send(); 
           }
           
           private function updateGridDataAction():void{
            //var objSend:Object = new Object();
            var dataString:String = JSON.encode(ac.toArray());
            //dataString = escape(dataString);
            updateDataObj.updateGridDataToDB(dataString);
            labNote.text = &quot;请稍后...正在处理&quot;;
        }
        private function updateGridDataResult(event:ResultE