JSP技術實現(xiàn)RSS訂閱功能的示例
RSS也叫聚合RSS是在線共享內(nèi)容的一種簡易方式(也叫聚合內(nèi)容,Really Simple Syndication)。通常在時效性比較強的內(nèi)容上使用RSS訂閱能更快速獲取信息,網(wǎng)站提供RSS輸出,有利于讓用戶獲取網(wǎng)站內(nèi)容的最新更新。同時也是醫(yī)學、物理學、數(shù)學等學科專有名詞的英文縮寫簡稱。
最初的RSS要追溯到1995年,當Ramanathan V. Guha和其他在蘋果電腦公司的高級技術組開發(fā)了一個測試的內(nèi)容框架。更多有關RSS的資料可查看這里,下面我們來為我們的JSP網(wǎng)站生成RSS。
RSS用途:
1、訂閱BLOG
(你可以訂閱你工作中所需的技術文章;也可以訂閱與你有共同愛好的作者的Blog,總之,你對什么感興趣你就可以訂什么)
2、訂閱新聞
(無論是奇聞怪事、明星消息、體壇風云,只要你想知道的,都可以訂閱) 你再也不用一個網(wǎng)站一個網(wǎng)站,一個網(wǎng)頁一個網(wǎng)頁去逛了。只要這將你需要的內(nèi)容訂閱在一個RSS閱讀器中,這些內(nèi)容就會自動出現(xiàn)你的閱讀器里,你也不必為了一個急切想知道的消息而不斷的刷新網(wǎng)頁,因為一旦有了更新,RSS閱讀器就會自己通知你.
用JSP技術實現(xiàn)RSS功能之最基本的RSS結構:
<?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/"> </rss> <?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/"> </rss>
用JSP技術實現(xiàn)RSS功能其實就是一個XML文件!
在<rss></rss>之間我們可以自由配置自己要發(fā)布的RSS的格式。例如此次我們要發(fā)布的RSS是這樣的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" x mlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" x mlns:slash="http://purl.org/rss/1.0/modules/slash/"> <channel> <item> <title>JSP網(wǎng)站RSS的實現(xiàn)</title> <author>neeke</author> <pubDate>2008-10-04</pubDate> <description>這是來自尼克技術博客博客的RSS</description> <category>J2EE技術</category> </item> </channel> </rss>
了解了它的結構實現(xiàn)起來就容易了。我們創(chuàng)建IO流,并從數(shù)據(jù)庫中獲取到我們要發(fā)布的RSS資源的集合,然后按照它的格式與結構一行一行的寫入到一個RSS.XML文件中即可。
public static void publishRss(String rssPath) { //獲得要發(fā)布的RSS數(shù)據(jù)集合 ArrayList rssArticle = ArticleManager.getArticlesAll(); try { //創(chuàng)建輸入輸出流 FileWriter fw = new FileWriter(rssPath); BufferedWriter bw = new BufferedWriter(fw); //開始按照格式寫入數(shù)據(jù) bw.write( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n"); bw.write("<?xml-stylesheet type=\"text/xsl\" href=\"CSS/rss.xslt\"?>"); bw.write("<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/\">\r\n"); bw.write("<channel>\r\n"); for (int i = 0; i < rssArticle.size(); i++) { ArticleBean article = (ArticleBean) rssArticle.get(i); bw.write("<item>\r\n"); bw.write("<title>" + article.getTitle() + "</title>\r\n"); bw.write("<author>" + article.getAuthorId() + "</author>\r\n"); bw.write("<pubDate>" + article.getPostTime() + "</pubDate>\r\n"); bw.write("<description>" + article.getIntro() + "</description>\r\n"); bw.write("<category>" + article.getCateId() + "</category>\r\n"); bw.write("</item>\r\n"); } bw.write("</channel>\r\n"); bw.write("</rss>"); //關閉流,RSS發(fā)布完畢。 bw.close(); fw.close(); } catch (IOException ex) { ex.printStackTrace(); } }
這樣用JSP實現(xiàn)RSS就發(fā)布完畢了,經(jīng)過我的測試打開后會提示出錯,用記事本打開生成的源文件,然而我們的RSS文件是一點問題都沒有的哇,怎么可能呢?接著又用JBuilder打開這個XML文件,暈倒~漢字全是亂碼,立刻意識到問題出在了哪里了。在哪呢?其實就是文件的編碼問題!將原先bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n");該行代碼中的UTF-8改為GBK,重新跑一次程序,一切OK!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
深入淺析Jsp中 out.print 和 out.write 的區(qū)別
本文簡明扼要的給大家介紹了jsp中 out.print 和 out.write 的區(qū)別,雖然本文簡短但是主要內(nèi)容給大家介紹清楚了,需要的朋友參考下吧2017-02-02jsp跳轉getRequestDispatcher()和sendRedirect()的區(qū)別
這篇文章主要介紹了jsp跳轉getRequestDispatcher()和sendRedirect()的區(qū)別,需要的朋友可以參考下2014-04-04