﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-j2ee绿洲-文章分类-Rome</title><link>http://www.blogjava.net/livery/category/23640.html</link><description>找到属于自己的一片天空</description><language>zh-cn</language><lastBuildDate>Fri, 29 Jun 2007 22:40:57 GMT</lastBuildDate><pubDate>Fri, 29 Jun 2007 22:40:57 GMT</pubDate><ttl>60</ttl><item><title>Rome初体验</title><link>http://www.blogjava.net/livery/articles/126756.html</link><dc:creator>心情经纬</dc:creator><author>心情经纬</author><pubDate>Thu, 28 Jun 2007 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/livery/articles/126756.html</guid><wfw:comment>http://www.blogjava.net/livery/comments/126756.html</wfw:comment><comments>http://www.blogjava.net/livery/articles/126756.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/livery/comments/commentRss/126756.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/livery/services/trackbacks/126756.html</trackback:ping><description><![CDATA[<p style="MARGIN-BOTTOM: 0cm" align=left><strong>一： <span lang=en-US><span lang=zh-CN>RSS</span></span>介绍</strong></p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; 根据维基百科<span lang=en-US>(<a href="http://zh.wikipedia.org/wiki/RSS"><font face=宋体 color=#000000>http://zh.wikipedia.org/wiki/RSS</font></a>)</span>的定义，&#8220;<span lang=en-US>RSS</span>是一种用于共享新闻和其他<span lang=en-US>Web</span>内容的数据交换规范 &#8221;，它是一系列的规范的组合，采用<span lang=en-US>XML</span>格式。目前国内<span lang=en-US>RSS</span>应用最多的是在新闻网站和博客网站上。</p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; 许多网站可以用<span lang=en-US><span lang=zh-CN>RSS</span></span>阅读器来个性化自己的网页，比如显示最新的新浪新闻，显示自己好朋友最新的博客文章，显示最新的<span lang=en-US><span lang=zh-CN>Google</span></span>论坛内容。除此之外，利用<span lang=en-US><span lang=zh-CN>RSS</span></span>阅读器还可以实现其它用途，比如：</p>
<ul>
    <li>
    <p style="MARGIN-BOTTOM: 0cm">获得天气预报</p>
    <li>
    <p style="MARGIN-BOTTOM: 0cm">接收邮件，比如<span lang=en-US><span lang=zh-CN>Gmail</span></span>就提供<span lang=en-US><span lang=zh-CN>RSS feed</span></span></p>
    <li>
    <p style="MARGIN-BOTTOM: 0cm">获取最新股票行情</p>
    <li>
    <p style="MARGIN-BOTTOM: 0cm" align=justify>获取音乐，电台节目和视频剪辑等等</p>
    <p style="MARGIN-BOTTOM: 0cm" align=justify>&nbsp;</p>
    </li>
</ul>
<p style="MARGIN-BOTTOM: 0cm"><strong>二：<span lang=en-US><span lang=zh-CN>Rome</span></span>介绍</strong></p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; 这篇文章采用<span lang=en-US>Rome</span>这个开源工具来实现<span lang=en-US>RSS</span>阅读器。<span lang=en-US>Rome</span>支持的格式很多，有<span lang=en-US>RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0 </span>等等，几乎囊括了目前所有的<span lang=en-US>RSS </span>和<span lang=en-US>atom</span>版本。最新的<span lang=en-US>Rome</span>版本可以从<span lang=en-US>http://wiki.java.net/bin/view/Javawsxml/Rome</span>上得到。</p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; 实现<span lang=en-US>RSS</span>阅读器，主要采用<span lang=en-US>Rome</span>的解析功能，就是从<span lang=en-US>XML</span>文件中读出相应的内容。我用一些简单代码来说明如何使用<span lang=en-US>Rome</span>中的类和方法。</p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
    <colgroup>
    <col width=256></col></colgroup>
    <tbody>
        <tr>
            <td vAlign=top width="100%">
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>URL feedUrl = new URL("http://rss.sina.com.cn/news/marquee/ddt.xml");</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedInput input = new SyndFeedInput();</span></p>
            <p><span lang=en-US>SyndFeed feed = input.build(new XmlReader(feedUrl));</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="MARGIN-BOTTOM: 0cm" align=center>表一<span lang=en-US><span lang=zh-CN>: </span></span>得到<span lang=en-US><span lang=zh-CN>RSS Feed</span></span></p>
<p style="MARGIN-BOTTOM: 0cm" align=center><br></p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; &#8220;<span lang=en-US><span lang=zh-CN>http://rss.sina.com.cn/news/marquee/ddt.xml&#8220;</span></span>是新浪新闻的一个<span lang=en-US><span lang=zh-CN>RSS </span></span>地址。通过三行代码，就可以得到一个对应这个地址的<span lang=en-US><span lang=zh-CN>RSS Feed</span></span>对象。这个对象包含我们所需要的所有<span lang=en-US><span lang=zh-CN>RSS</span></span>内容。如果用<span lang=en-US><span lang=zh-CN>System.out.println(feed)</span></span>，会得到表二中的结果。从中可以清楚地看到 <span lang=en-US><span lang=zh-CN>SyndFeed</span></span>类的结构。</p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
    <colgroup>
    <col width=256></col></colgroup>
    <tbody>
        <tr>
            <td vAlign=top width="100%">
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.contributors=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US><span lang=zh-CN>SyndFeedImpl.title=</span></span>新闻中心<span lang=en-US><span lang=zh-CN>-</span></span>新闻要闻</p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.categories[0].name=</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.categories[0].taxonomyUri=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.link=http://news.sina.com.cn/iframe/o/allnews/input/index.htm</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.publishedDate=Thu Jun 22 13:20:01 CST 2006</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].updatedDate=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].contributors=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US><span lang=zh-CN>SyndFeedImpl.entries[0].title=</span></span>扎瓦赫里在录像带中呼吁阿富汗人抵抗外国侵略</p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].categories[0].name=</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].categories[0].taxonomyUri=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].link=http://news.sina.com.cn/w/2006-06-22/11569270955s.shtml</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].publishedDate=Thu Jun 22 11:56:00 CST 2006</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].authors=null</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].modules[0].descriptions=[]</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].modules[0].creators[0]=WWW.SINA.COM.CN</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.entries[0].modules[0].contributors=[]</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>......</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedImpl.author=null</span></p>
            <p><span lang=en-US>SyndFeedImpl.copyright=Copyright 1996 - 2005 SINA Inc. All Rights Reserved</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="MARGIN-BOTTOM: 0cm" align=center>表二<span lang=en-US><span lang=zh-CN>: SyndFeed</span></span>数据结构</p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<p style="MARGIN-BOTTOM: 0cm">从上述输出结果可以看出，每个新闻条目是由<span lang=en-US><span lang=zh-CN>entry</span></span>代表的。下列代码从<span lang=en-US><span lang=zh-CN>feed</span></span>中得到<span lang=en-US><span lang=zh-CN>entry</span></span></p>
<table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
    <colgroup>
    <col width=256></col></colgroup>
    <tbody>
        <tr>
            <td vAlign=top width="100%">
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>List list = feed.getEntries();</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>for (int i=0; i&lt; list.size(); i++) {</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndEntry entry = (SyndEntry)list.get(i);</span></p>
            <p><span lang=en-US>} </span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="MARGIN-BOTTOM: 0cm" align=center>表三：从<span lang=en-US><span lang=zh-CN>SyndFeed</span></span>中得到<span lang=en-US><span lang=zh-CN>SyndEntry</span></span></p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<p style="MARGIN-BOTTOM: 0cm">如果程序位于防火墙后面，就需要在程序中加上一些<span lang=en-US><span lang=zh-CN>Proxy</span></span>设置。例如采用下面的<span lang=en-US><span lang=zh-CN>http proxy</span></span>：</p>
<table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
    <colgroup>
    <col width=256></col></colgroup>
    <tbody>
        <tr>
            <td vAlign=top width="100%">
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>Properties systemSettings = System.getProperties();</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>systemSettings.put("http.proxyHost", "myproxyserver.com");</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>systemSettings.put("http.proxyPort", "80");</span></p>
            <p><span lang=en-US>System.setProperties(systemSettings);</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="MARGIN-BOTTOM: 0cm" align=center>表四：<span lang=en-US><span lang=zh-CN>Proxy</span></span>设置</p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&nbsp; 有时候，可能会遇到&#8220;<span lang=en-US><span lang=zh-CN>java.io.IOException: Server returned HTTP response code: 403 for URL&#8221;</span></span>的错误信息。通常是因为服务器的安全设置不接受<span lang=en-US><span lang=zh-CN>Java</span></span>程序作为客户端访问，解决方案是设置客户端的<span lang=en-US><span lang=zh-CN>User Agent</span></span>， 示例代码如下：</p>
<table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
    <colgroup>
    <col width=256></col></colgroup>
    <tbody>
        <tr>
            <td vAlign=top width="100%">
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>URLConnection feedUrl = new jURL(urlStr).openConnection();</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");</span></p>
            <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>SyndFeedInput input = new SyndFeedInput();</span></p>
            <p><span lang=en-US>SyndFeed feed = input.build(new XmlReader(feedUrl));</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="MARGIN-BOTTOM: 0cm" align=center>表五：设置<span lang=en-US><span lang=zh-CN>User-Agent</span></span></p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<p style="MARGIN-BOTTOM: 0cm"><span lang=en-US>&nbsp;&nbsp; ROME </span>提供的功能很多，除了可以解析<span lang=en-US>Feed </span>外，还可以生成<span lang=en-US>Feed</span>。用<span lang=en-US>Rome</span>来为自己的网站内容创建<span lang=en-US>RSS Feed</span>，这样别人就可以通过<span lang=en-US>RSS </span>阅读器来随时了解你网站内容的更新了。</p>
<p style="MARGIN-BOTTOM: 0cm"><br></p>
<p style="MARGIN-BOTTOM: 0cm"><strong>使用<span lang=en-US><span lang=zh-CN>ROME</span></span>需要两个条件：</strong></p>
<ol>
    <li>
    <p style="MARGIN-BOTTOM: 0cm"><span lang=en-US><span lang=zh-CN>Java SE 1.4</span></span>以上的版本，下载地址<span lang=en-US><span lang=zh-CN>:</span></span>　<span lang=en-US><span lang=zh-CN>http://java.sun.com/</span></span></p>
    <li>
    <p style="MARGIN-BOTTOM: 0cm">开源软件<span lang=en-US><span lang=zh-CN>JDOM</span></span>，下载地址：<span lang=en-US><span lang=zh-CN>http://www.jdom.org/</span></span></p>
    <p style="MARGIN-BOTTOM: 0cm"><strong>三：用<span lang=en-US><span lang=zh-CN>NetBeans</span></span>快速开发一个简单实例</strong></p>
    <p style="MARGIN-BOTTOM: 0cm">下面用一个简单的实例原型开发步骤来显示如何快速地利用<span lang=en-US><span lang=zh-CN>Rome</span></span>和<span lang=en-US><span lang=zh-CN>NetBeans</span></span>来构建一个基于<span lang=en-US><span lang=zh-CN>Web</span></span>的<span lang=en-US><span lang=zh-CN>RSS</span></span>阅读器。</p>
    <p style="MARGIN-BOTTOM: 0cm"><br></p>
    <p style="MARGIN-BOTTOM: 0cm"><span lang=en-US>NetBeans</span>是一个开源的<span lang=en-US>Java IDE</span>软件，下载地址<span lang=en-US>:http://www.netbeans.org</span><span style="TEXT-DECORATION: none">。</span>选用<span lang=en-US>NetBeans</span>是因为它内置<span lang=en-US>Tomcat</span>，可以节省很多配置和运行的时间。而且功能强大，可以高效完成<span lang=en-US>Java SE, Java EE </span>以及<span lang=en-US>Java ME</span>等各种应用程序的开发。</p>
    <p style="MARGIN-BOTTOM: 0cm"><br></p>
    <ol>
        <li>
        <p style="MARGIN-BOTTOM: 0cm"><strong>用<span lang=en-US><span lang=zh-CN>NetBeans 5.0 </span></span>创建 <span lang=en-US><span lang=zh-CN>Web Project</span></span>。</strong></p>
        <p style="MARGIN-BOTTOM: 0cm">打开<span lang=en-US><span lang=zh-CN>NetBeans,</span></span>　选择菜单＂文件－＞新建项目＂，在新建项目窗口中，＂类别＂选择＂<span lang=en-US><span lang=zh-CN>Web"</span></span>，项目选择＂<span lang=en-US><span lang=zh-CN>Web</span></span>应用程序＂，点击&#8221;下一步&#8221;。在&#8221;新建<span lang=en-US><span lang=zh-CN>Web</span></span>应用程序&#8221;窗口中，输入项目名称，比如&#8221;<span lang=en-US><span lang=zh-CN>webrssreader&#8221;</span></span>和项目位置，其余采用缺省<span lang=en-US><span lang=zh-CN>,</span></span>点击&#8221;完成&#8221;。</p>
        <p style="MARGIN-BOTTOM: 0cm" align=left><img height=437 alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200606/20060630142046392.jpg" width=618 align=left border=0 name=graphics1><br clear=left>图一<span lang=en-US><span lang=zh-CN>: </span></span>创建<span lang=en-US><span lang=zh-CN>NetBeans</span></span>的<span lang=en-US><span lang=zh-CN>Web</span></span>项目</p>
        <p style="MARGIN-BOTTOM: 0cm" align=left>&nbsp;</p>
        <li>
        <p style="MARGIN-BOTTOM: 0cm"><strong>在新建立的&#8221;<span lang=en-US><span lang=zh-CN>webrssreader&#8221;</span></span>项目中，加入两个<span lang=en-US><span lang=zh-CN>jar</span></span>文件：</strong></p>
        <p style="MARGIN-BOTTOM: 0cm"><span lang=en-US><span lang=zh-CN>jdom.jar</span></span>：<span lang=en-US><span lang=zh-CN>JDOM</span></span>开源项目中（<span lang=en-US><span lang=zh-CN>http://www.jdom.org/</span></span>）</p>
        <p style="MARGIN-BOTTOM: 0cm"><span lang=en-US><span lang=zh-CN>rome.jar : ROME</span></span>开源项目中（<span lang=en-US><span><span lang=zh-CN>http://wiki.java.net/bin/view/Javawsxml/Rome</span></span></span><span>）</span></p>
        <p style="MARGIN-BOTTOM: 0cm" align=left><img height=433 alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200606/20060630142048693.jpg" width=618 align=left border=0 name=graphics2><br clear=left>图二：添加库文件</p>
        <p style="MARGIN-BOTTOM: 0cm" align=left>&nbsp;</p>
        <li>
        <p style="MARGIN-BOTTOM: 0cm"><strong>在<span lang=en-US><span lang=zh-CN>index.jsp</span></span>中加入代码</strong></p>
        </li>
    </ol>
    <table borderColor=#000000 cellSpacing=0 cellPadding=4 width="100%" border=1>
        <colgroup>
        <col width=256></col></colgroup>
        <tbody>
            <tr>
                <td vAlign=top width="100%">
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;%@page contentType="text/html"%&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;%@page pageEncoding="UTF-8"%&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><br><br></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;html&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;head&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;title&gt;Sina News&lt;/title&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/head&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;body&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;%</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>java.util.Properties systemSettings = System.getProperties();</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>systemSettings.put("http.proxyHost", "mywebcache.com");</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>systemSettings.put("http.proxyPort", "8080");</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>System.setProperties(systemSettings);</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><br><br></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>String urlStr = "http://rss.sina.com.cn/news/marquee/ddt.xml";</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>com.sun.syndication.feed.synd.SyndFeed feed = input.build(new com.sun.syndication.io.XmlReader(feedUrl));</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>%&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;div align="center"&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;h1&gt;&lt;%=feed.getTitle()%&gt;&lt;/h1&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;table border=1 cellpadding=3 width="700"&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;tr&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;th&gt;Number&lt;/th&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;th&gt;Title&lt;/th&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;th&gt;Time&lt;/th&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/tr&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;% </span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>java.util.List list = feed.getEntries();</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>for (int i=0; i&lt; list.size(); i++) {</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>com.sun.syndication.feed.synd.SyndEntry entry = (com.sun.syndication.feed.synd.SyndEntry)list.get(i);</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>%&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;tr&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;td&gt;&lt;%=i+1%&gt;&lt;/td&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;td&gt;&lt;a href="&lt;%=entry.getLink()%&gt;"&gt;&lt;%=entry.getTitle()%&gt;&lt;/a&gt;&lt;/td&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;td&gt;&lt;%=entry.getPublishedDate()%&gt;&lt;/td&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/tr&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;%}%&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/table&gt;</span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/div&gt; </span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;br&gt; </span></p>
                <p style="MARGIN-BOTTOM: 0.5cm"><span lang=en-US>&lt;/body&gt;</span></p>
                <p><span lang=en-US>&lt;/html&gt;</span></p>
                </td>
            </tr>
        </tbody>
    </table>
    <ol start=3>
        <p style="MARGIN-BOTTOM: 0cm" align=center>表六<span lang=en-US><span lang=zh-CN>: index.jsp</span></span>全部源代码</p>
        <p style="MARGIN-BOTTOM: 0cm" align=left>&nbsp;</p>
        <li>
        <p style="MARGIN-BOTTOM: 0cm"><strong>运行项目。鼠标右键点击&#8221;<span lang=en-US>webrssreader&#8221;</span>项目，选择&#8221;运行项目&#8221;。</strong></p>
        <p style="MARGIN-BOTTOM: 0cm" align=left><img height=532 alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200606/20060630142049715.jpg" width=618 align=left border=0 name=graphics3><br clear=left>图三<span lang=en-US><span lang=zh-CN>: </span></span>运行程序</p>
        <p style="MARGIN-BOTTOM: 0cm" align=left>&nbsp;</p>
        <li>
        <p style="MARGIN-BOTTOM: 0cm"><strong>运行结果如下。</strong></p>
        </li>
    </ol>
    <p style="MARGIN-BOTTOM: 0cm" align=center><img height=547 alt="" src="http://java.chinaitlab.com/UploadFiles_8734/200606/20060630142049170.jpg" width=642 align=left border=0 name=graphics4><br clear=left>图四<span lang=en-US><span lang=zh-CN>:</span></span>程序运行结果</p>
    <p style="MARGIN-BOTTOM: 0cm"><strong>四：总结</strong></p>
    <p style="MARGIN-BOTTOM: 0cm"><span lang=en-US><span lang=zh-CN>RSS</span></span>属于<span lang=en-US><span lang=zh-CN>Web2.0</span></span>的一种应用技术。<span lang=en-US><span lang=zh-CN>Web2.0</span></span>提倡个性化与参与性。而这个简单实例的开发中，采用的都是一些开源软件，开源软件更是&#8221;人人为我，我为人人&#8221;精神的一种体现。很多时候，我们不需要自己从头开发一些工具，站在前人的肩膀上，开发出一些更好的应用也许是程序员们更应该考虑的事情。</p>
    </li>
</ol>
<img src ="http://www.blogjava.net/livery/aggbug/126756.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/livery/" target="_blank">心情经纬</a> 2007-06-28 11:07 <a href="http://www.blogjava.net/livery/articles/126756.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>