RSS是一个标准的XML文件,Rss阅读器可以读取这个XML文件获得文章的信息,使用户可以通过Rss阅读器而非浏览器阅读Blog,我们只要动态生成这个XML文件便可以了。RSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k,可以下载rsslibj-1_0RC2.jar和它需要的EXMLjar两个文件,然后复制到/WEB-INF/lib/下。
rsslibj-1_0RC2.jar下载地址:http://sourceforge.net/project/downloading.php?group_id=71153&use_mirror=nchc&filename=rsslibj-1_0RC2.jar&27763931
读取新浪RSS的一个例子,结合Jsf。
页面:
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@page contentType="text/html;charset=gb18030"%> <f:view> <html> <body> <h:form> <h3>RSS Reader</h3> 请输入RSS地址: <h:inputText value="#{rssReader.rssAddress }" id="rssAddress" converterMessage="请输入一个正确的Rss地址!" style="width:280px;"> </h:inputText> <h:commandButton value="提交" action="#{rssReader.readRss }"></h:commandButton> <br> <br> <h:message for="rssAddress" style="color:red;"></h:message> </h:form> <br> <br> 从 <h:outputText value="#{rssReader.rssAddress }"></h:outputText> 获取的内容: <br> <h:form> <h:dataTable value="#{rssReader.items }" var="item" style="font-size:13px;" border="1"> <h:column> <h:outputText value="#{item.title }"></h:outputText> </h:column> <h:column> <h:outputLink value="#{item.link }"> <h:outputText value="#{item.link }"></h:outputText> </h:outputLink> </h:column> </h:dataTable> </h:form> </body> </html> </f:view>
RSSReader.java:
package com.rss; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Properties; import com.rsslibj.elements.Channel; import com.rsslibj.elements.Item; import com.rsslibj.elements.RSSReader; import electric.xml.ParseException; public class RssReader { private static final String urlString = "http://rss.sina.com.cn/news/marquee/ddt.xml"; private List<Item> items; private String rssAddress; private String proxyHost = "paicproxy2"; private String proxyPort = "8080"; public String getRssAddress() { return this.rssAddress; } public void setRssAddress(String rssAddress) { this.rssAddress = rssAddress; } public List<Item> getItems() { return this.items; } /** * 设置代理 */ public void setProxy(String proxyHost,String proxyPort) { // 设置代理 Properties systemSettings = System.getProperties(); systemSettings.put("http.proxyHost", proxyHost); systemSettings.put("http.proxyPort", proxyPort); System.setProperties(systemSettings); } /** * 读取RSS。 * @param url * @throws IOException * @throws ParseException */ public void readRss() throws IOException, ParseException { setProxy(proxyHost, proxyPort); URL __url = new URL(this.rssAddress); HttpURLConnection conn = (HttpURLConnection) __url.openConnection(); InputStream in = conn.getInputStream(); BufferedReader bufReader = new BufferedReader(new InputStreamReader(in,"utf-8")); RSSReader rssReader = new RSSReader(bufReader); Channel channel = rssReader.getChannel(); this.items = channel.getItems(); } /** * 打印获取的RSS内容。 * @param urlString */ public void test(String urlString) { setProxy(urlString, urlString); try { URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); StringBuilder sBuilder = new StringBuilder(); String line = null; BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); while ((line = reader.readLine()) != null) { sBuilder.append(line).append("\n"); } System.out.println(sBuilder.toString()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
faces-config.xml:
<?xml version="1.0"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <faces-config> <managed-bean> <managed-bean-name>rssReader</managed-bean-name> <managed-bean-class> com.rss.RssReader </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>
效果:

相关推荐
例如,可以使用`RSSReader`类从URL读取RSS源,然后遍历`RSSChannel`的`items`列表,获取每个条目的详细信息。此外,`RSSWriter`类可以帮助将RSS结构写入XML文件或流。 在实际应用中,RSSLIBJ可以用于开发新闻聚合...
它提供了一系列接口和类,用于读取、写入、创建和更新RSS feeds。开发者可以使用RSSLibJ来订阅RSS源,获取新的feed项,甚至可以创建自己的RSS feed。这个库简化了RSS相关的编程工作,让开发者无需深入了解RSS规范的...
这两个库的结合使用,意味着开发者可以构建一个完整的RSS阅读器应用,从网络上抓取RSS feeds,利用EXML进行XML数据的解析,然后通过RSSLibJ处理成易于操作的对象模型,展示给用户。这种应用程序常见于新闻聚合器、...
- 读取RSS feed:解析XML文档,提取频道信息和条目详情。 - 创建RSS feed:构造RSS结构,添加频道和条目信息,生成XML输出。 - 更新RSS feed:修改现有RSS feed的内容,如添加、删除或更新条目。 - 集成RSS功能:将...
3. `rsslibj-1_0RC2.jar`: 这可能是RSS库的另一个版本,可能是`rsslib.jar`的早期版本或者一个不同分支。"RC2"代表“Release Candidate 2”,意味着它是正式发布前的第二个候选版本,可能包含了一些修复和改进。 4....
RSSLibJ是一个轻量级的Java库,专门用于处理RSS的读取和生成,适用于在Java应用中创建RSS feed。 首先,我们需要了解RSS的基本结构。RSS通常包含以下几个主要元素: 1. **Channel**:频道,代表一个信息源,如一个...
- **RSS 工具**:RSSLibJ 和 RSSLib4J 分别支持读取和生成 RSS 文件,方便实现信息聚合。 2. **模型层框架** - **持久层框架**:Hibernate 是一款流行的 ORM(对象关系映射)框架,它能够将 Java 对象映射到...