亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

用JSP實現基于Web的RSS閱讀器

2024-09-05 00:19:22
字體:
來源:轉載
供稿:網友

一: rss介紹

根據維基百科(http://zh.wikipedia.org/wiki/rss)的定義,“rss是一種用于共享新聞和其他web內容的數據交換規范 ”,它是一系列的規范的組合,采用xml格式。目前國內rss應用最多的是在新聞網站和博客網站上。

許多網站可以用rss閱讀器來個性化自己的網頁,比如顯示最新的新浪新聞,顯示自己好朋友最新的博客文章,顯示最新的google論壇內容。除此之外,利用rss閱讀器還可以實現其它用途,比如:

獲得天氣預報

接收郵件,比如gmail就提供rss feed

獲取最新股票行情

獲取音樂,電臺節目和視頻剪輯等等

 

二:rome介紹

這篇文章采用rome這個開源工具來實現rss閱讀器。rome支持的格式很多,有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 等等,幾乎囊括了目前所有的rss 和atom版本。最新的rome版本可以從http://wiki.java.net/bin/view/javawsxml/rome上得到。

 


實現rss閱讀器,主要采用rome的解析功能,就是從xml文件中讀出相應的內容。我用一些簡單代碼來說明如何使用rome中的類和方法。

 


url feedurl = new url("http://rss.sina.com.cn/news/marquee/ddt.xml");

syndfeedinput input = new syndfeedinput();

syndfeed feed = input.build(new xmlreader(feedurl));
 

表一: 得到rss feed

 


“http://rss.sina.com.cn/news/marquee/ddt.xml“是新浪新聞的一個rss 地址。通過三行代碼,就可以得到一個對應這個地址的rss feed對象。這個對象包含我們所需要的所有rss內容。如果用system.out.println(feed),會得到表二中的結果。從中可以清楚地看到 syndfeed類的結構。

 


syndfeedimpl.contributors=null

syndfeedimpl.title=新聞中心-新聞要聞

syndfeedimpl.categories[0].name=

syndfeedimpl.categories[0].taxonomyuri=null

syndfeedimpl.link=http://news.sina.com.cn/iframe/o/allnews/input/index.htm

syndfeedimpl.publisheddate=thu jun 22 13:20:01 cst 2006

syndfeedimpl.entries[0].updateddate=null

syndfeedimpl.entries[0].contributors=null

syndfeedimpl.entries[0].title=扎瓦赫里在錄像帶中呼吁阿富汗人抵抗外國侵略

syndfeedimpl.entries[0].categories[0].name=

syndfeedimpl.entries[0].categories[0].taxonomyuri=null

syndfeedimpl.entries[0].link=http://news.sina.com.cn/w/2006-06-22/11569270955s.shtml

syndfeedimpl.entries[0].publisheddate=thu jun 22 11:56:00 cst 2006

syndfeedimpl.entries[0].authors=null

syndfeedimpl.entries[0].modules[0].descriptions=[]

syndfeedimpl.entries[0].modules[0].creators[0]=www.sina.com.cn

syndfeedimpl.entries[0].modules[0].contributors=[]

......

syndfeedimpl.author=null

syndfeedimpl.copyright=copyright 1996 - 2005 sina inc. all rights reserved
 

表二: syndfeed數據結構

 


從上述輸出結果可以看出,每個新聞條目是由entry代表的。下列代碼從feed中得到entry

list list = feed.getentries();

for (int i=0; i< list.size(); i++) {

syndentry entry = (syndentry)list.get(i);

}
 

表三:從syndfeed中得到syndentry

 


如果程序位于防火墻后面,就需要在程序中加上一些proxy設置。例如采用下面的http proxy:

properties systemsettings = system.getproperties();

systemsettings.put("http.proxyhost", "myproxyserver.com");

systemsettings.put("http.proxyport", "80");

system.setproperties(systemsettings);
 

表四:proxy設置

有時候,可能會遇到“java.io.ioexception: server returned http response code: 403 for url”的錯誤信息。通常是因為服務器的安全設置不接受java程序作為客戶端訪問,解決方案是設置客戶端的user agent, 示例代碼如下:

urlconnection feedurl = new jurl(urlstr).openconnection();

feedurl.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 5.0; windows nt; digext)");

syndfeedinput input = new syndfeedinput();

syndfeed feed = input.build(new xmlreader(feedurl));
 

表五:設置user-agent

 


rome 提供的功能很多,除了可以解析feed 外,還可以生成feed。用rome來為自己的網站內容創建rss feed,這樣別人就可以通過rss 閱讀器來隨時了解你網站內容的更新了。

 


使用rome需要兩個條件:

java se 1.4以上的版本,下載地址: http://java.sun.com/

開源軟件jdom,下載地址:http://www.jdom.org/

 


三:用netbeans快速開發一個簡單實例

下面用一個簡單的實例原型開發步驟來顯示如何快速地利用rome和netbeans來構建一個基于web的rss閱讀器。

 


netbeans是一個開源的java ide軟件,下載地址:http://www.netbeans.org。選用netbeans是因為它內置tomcat,可以節省很多配置和運行的時間。而且功能強大,可以高效完成java se, java ee 以及java me等各種應用程序的開發。

 


用netbeans 5.0 創建 web project。

打開netbeans, 選擇菜單"文件->新建項目",在新建項目窗口中,"類別"選擇"web",項目選擇"web應用程序",點擊”下一步”。在”新建web應用程序”窗口中,輸入項目名稱,比如”webrssreader”和項目位置,其余采用缺省,點擊”完成”。


圖一: 創建netbeansweb項目

 

  • 在新建立的”webrssreader”項目中,加入兩個jar文件:

    jdom.jarjdom開源項目中(http://www.jdom.org/

    rome.jar : rome開源項目中(http://wiki.java.net/bin/view/javawsxml/rome


    圖二:添加庫文件

     

  • index.jsp中加入代碼

    <%@page contenttype="text/html"%>

    <%@page pageencoding="utf-8"%>



    <html>

    <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">

    <title>sina news</title>

    </head>

    <body>

    <%

    java.util.properties systemsettings = system.getproperties();

    systemsettings.put("http.proxyhost", "mywebcache.com");

    systemsettings.put("http.proxyport", "8080");

    system.setproperties(systemsettings);



    string urlstr = "http://rss.sina.com.cn/news/marquee/ddt.xml";

    java.net.urlconnection feedurl = new java.net.url(urlstr).openconnection();

    feedurl.setrequestproperty("user-agent", "mozilla/4.0 (compatible; msie 5.0; windows nt; digext)");

    com.sun.syndication.io.syndfeedinput input = new com.sun.syndication.io.syndfeedinput();

    com.sun.syndication.feed.synd.syndfeed feed = input.build(new com.sun.syndication.io.xmlreader(feedurl));

    %>

    <div align="center">

    <h1><%=feed.gettitle()%></h1>

    <table border=1 cellpadding=3 width="700">

    <tr>

    <th>number</th>

    <th>title</th>

    <th>time</th>

    </tr>

    <%

    java.util.list list = feed.getentries();

    for (int i=0; i< list.size(); i++) {

    com.sun.syndication.feed.synd.syndentry entry = (com.sun.syndication.feed.synd.syndentry)list.get(i);

    %>

    <tr>

    <td><%=i+1%></td>

    <td><a href="<%=entry.getlink()%>"><%=entry.gettitle()%></a></td>

    <td><%=entry.getpublisheddate()%></td>

    </tr>

    <%}%>

    </table>

    </div>

    <br>

    </body>

    </html>

      表六: index.jsp全部源代碼

       

    1. 運行項目。鼠標右鍵點擊”webrssreader”項目,選擇”運行項目”。


      圖三: 運行程序

       

    2. 運行結果如下。


    圖四:程序運行結果

    四:總結

    rss屬于web2.0的一種應用技術。web2.0提倡個性化與參與性。而這個簡單實例的開發中,采用的都是一些開源軟件,開源軟件更是”人人為我,我為人人”精神的一種體現。很多時候,我們不需要自己從頭開發一些工具,站在前人的肩膀上,開發出一些更好的應用也許是程序員們更應該考慮的事情。


    作者介紹:

    李力目前在sun microsystems任高級軟件工程師,有近十年軟件開發經驗,曾就職于aigca等公司,任軟件工程師及系統分析員等職位,在j2ee領域有豐富的實際開發經驗。聯系方式:[email protected]。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    91精品国产乱码久久久久久蜜臀| 最新国产成人av网站网址麻豆| 亚洲欧洲偷拍精品| 欧美精品在线免费观看| 欧美日韩中文字幕日韩欧美| 欧美精品激情blacked18| 一本色道久久88综合亚洲精品ⅰ| 欧美性猛交xxxx黑人| 欧美在线激情视频| 欧美午夜宅男影院在线观看| 欧美大片在线影院| 国产精品99久久久久久久久| 精品中文字幕乱| 久久电影一区二区| 成人免费网站在线| 国产精品电影在线观看| 亚洲国内精品视频| 日韩亚洲成人av在线| 精品一区二区电影| 久久露脸国产精品| 欧美国产一区二区三区| 深夜福利亚洲导航| 国产美女扒开尿口久久久| 亚洲欧洲国产精品| 亚洲区免费影片| 欧美大片在线免费观看| 成人妇女淫片aaaa视频| 亚洲人成免费电影| 日韩美女免费线视频| 久色乳综合思思在线视频| 成人久久18免费网站图片| 国产精品视频99| 尤物yw午夜国产精品视频明星| 成人妇女免费播放久久久| 欧洲美女7788成人免费视频| 亚洲天堂免费观看| 77777少妇光屁股久久一区| 精品久久中文字幕| 亚洲欧美日韩国产精品| 不卡av电影在线观看| 国产一区二区三区在线免费观看| 91av视频在线| 久久视频在线观看免费| 国产福利精品av综合导导航| 91国产视频在线| 日韩av在线高清| 亚洲天堂第二页| 成人激情av在线| 久久99精品视频一区97| 国产精品成人一区二区| 国产精品视频久久久| 亚洲国产天堂久久国产91| 国产成人精品综合久久久| 午夜精品久久久久久久久久久久久| 欧美激情精品久久久久久久变态| 国产精品91一区| 亚洲影院色无极综合| 国产一区二中文字幕在线看| 色综合男人天堂| 91在线视频精品| 久久免费视频网站| 亚洲欧洲激情在线| 精品国产一区二区三区久久狼黑人| 日韩一区二区三区在线播放| 在线电影欧美日韩一区二区私密| 欧美另类xxx| 中文字幕日韩在线播放| 日韩麻豆第一页| 黑人巨大精品欧美一区免费视频| 亚洲精品v欧美精品v日韩精品| 精品亚洲夜色av98在线观看| 综合久久五月天| 欧美日韩精品国产| 久久精品99无色码中文字幕| 在线成人一区二区| 黑人巨大精品欧美一区二区三区| 久久精品国产成人精品| 日本欧美黄网站| 久久人人爽亚洲精品天堂| 久久99热这里只有精品国产| 亚洲精品99久久久久中文字幕| 久久香蕉国产线看观看网| 中文字幕欧美精品在线| 91人成网站www| 91久久精品久久国产性色也91| 色综合久久88| 成人字幕网zmw| 亚洲欧美一区二区三区情侣bbw| 亚洲欧美一区二区精品久久久| 欧美成在线视频| 久久亚洲成人精品| 91免费高清视频| 精品久久久一区二区| 国产a∨精品一区二区三区不卡| 在线观看精品国产视频| 国产精品久久久久久久午夜| 亚洲欧洲美洲在线综合| 免费97视频在线精品国自产拍| 久久精品99无色码中文字幕| 亚洲国产精品99| 亚洲精品电影在线| 国产精品一二区| 国产亚洲日本欧美韩国| 中文字幕亚洲综合久久筱田步美| 亚洲精品98久久久久久中文字幕| 国产精品久久久久久久久粉嫩av| 欧美日韩免费在线观看| 欧美肥臀大乳一区二区免费视频| 精品国产乱码久久久久久婷婷| 狠狠色噜噜狠狠狠狠97| 亚洲欧美精品一区二区| 中文字幕日韩欧美精品在线观看| 国产成人精品电影| 欧美日本啪啪无遮挡网站| 国产999精品久久久影片官网| 欧美极品少妇xxxxⅹ裸体艺术| 久久久精品999| 少妇精69xxtheporn| 国产精品a久久久久久| 一区二区三区回区在观看免费视频| 日韩大片免费观看视频播放| 欧美与黑人午夜性猛交久久久| 国产热re99久久6国产精品| 亚洲视频国产视频| 尤物yw午夜国产精品视频明星| 成人啪啪免费看| 久久欧美在线电影| 精品视频偷偷看在线观看| 亚洲欧美日韩网| 亚洲激情视频在线播放| 日韩成人激情在线| 亚洲精品aⅴ中文字幕乱码| 亚洲精品在线观看www| 69久久夜色精品国产69乱青草| 日本亚洲精品在线观看| 九九热在线精品视频| 91在线视频导航| 97在线免费视频| 亚洲午夜女主播在线直播| 2023亚洲男人天堂| 日韩av网站在线| 在线播放亚洲激情| 久久久久久久影院| 日日噜噜噜夜夜爽亚洲精品| 国产一区二区视频在线观看| 91精品国产色综合久久不卡98口| 国产精品免费一区豆花| 精品视频偷偷看在线观看| 欧美成人在线免费视频| 亚洲精选一区二区| 精品夜色国产国偷在线| 欧美亚洲第一页| 亚洲qvod图片区电影| 久久精品成人欧美大片古装| 欧美高清无遮挡| 国产日产欧美精品| 91精品国产91久久久久久最新| 91久久久久久久久| 日日骚av一区| 国产精品久久久久久久久男| 国产亚洲视频在线观看| 欧美大尺度在线观看| 97超级碰在线看视频免费在线看| 色偷偷9999www|