引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave Winer不承认其有效性。并于2002年9月独自把RSS升级到了2.0版本(Really Simple Syndication),并交由哈佛大学Technology at Harvard Law进行维护。
RSS 1.0 : 在RSS发展过程中,为使RSS成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的Resource Description Framework (RDF) 对RSS进行了重新定义,发布了RSS 1.0版,并把RSS定义为“RDF Site Summary”。现在RSS 1.0版由W3C联合小组维护。
Atom : Atom是一个项目的名字,主要是开发一个新的博客摘要格式以解决目前RSS存在的问题(混乱的版本号,不是一个真正的开放标准,表示方法的不一致,定义贫乏等等)。
2.如何实现RSS
RSS标准虽然混乱,但是其本质都是XML文档。你可以只使用notepad, 按照某个RSS标准, 手写一个xml, 并提供给客户端。
现在也有许多开源项目来提供RSS的解决方案。
Rome https://rome.dev.java.net/
RSSLibJ http://enigmastation.com/rsslibj/
RSSLib4J http://devzone.stealthp.org/cms/index.php?page=RSSLib4J
使用这些解决方案可以更方便的处理RSS.
3.用 Rome 实现 RSS 服务
目前Rome最新版本为rome-0.9. 本例是在Struts的Action中实现的RSS服务.
新建一个RssAction
java 代码
import other classes...
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedOutput;
public class RssAction extends DispatchAction {
private static final String MIME_TYPE = "application/xml; charset=UTF-8";
// Rome中RSS的可选标准
// rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0, atom_0.3
private static final String RSS_TYPE = "rss_2.0";
public ActionForward newsFeed(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
NewsFeedBA newsFeedBA = new NewsFeedBA();
newsFeedBA.doExecute();
outputRssFeed(response, newsFeedBA.getFeed());
return null;
}
public ActionForward blogFeed(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String uid = request.getParameter("userId");
BlogFeedBA blogFeedBA = new BlogFeedBA();
blogFeedBA.setUserId(uid);
blogFeedBA.doExecute();
outputRssFeed(response, blogFeedBA.getFeed());
return null;
}
//将SyndFeed写入HttpServletResponse
private boolean outputRssFeed(HttpServletResponse response, SyndFeed feed) {
boolean result = false;
feed.setFeedType(RSS_TYPE);
response.setContentType(MIME_TYPE);
SyndFeedOutput output = new SyndFeedOutput();
try {
output.output(feed, response.getWriter());
result = true;
} catch (IOException e) {
e.printStackTrace();
} catch (FeedException e) {
e.printStackTrace();
}
return result;
}
}
然后在业务逻辑中,查询数据库,用返回的数据组织相应的Feed.
java 代码
public SyndFeed createFeed(List news) {
SyndFeed feed = new SyndFeedImpl();
feed.setTitle("My RSS Service : news ");
feed.setLink("http://www.myHomePage.com");
feed.setDescription("My first RSS service .");
feed.setEntries(getEntries(news));
return feed;
}
private List getEntries(List news) {
List entries = new ArrayList();
SyndEntry entry;
SyndContent description;
for (NewsDTO dto : news) {
entry = new SyndEntryImpl();
entry.setTitle(dto.getTitle());
entry.setLink(dto.getLink());
entry.setPublishedDate(new Date());
description = new SyndContentImpl();
description.setType("text/html");
description.setValue(dto.getContent());
entry.setDescription(description);
entries.add(entry);
}
return entries;
}
在struts-config.xml中配置RssAction
xml 代码
<action path="/rss" type="com.web.action.RssAction"
parameter="method"
scope="request">
action>
启动Tomcat,并访问/rss.do?method=newsFeed 就可以得到新闻的RSS
访问/rss.do?method=blogFeed&userId=123 就可以得到123的blog的RSS了。
现在IE7和Opera都集成了RSS功能。
见:http://wangcheng.iteye.com/blog/53778
分享到:
相关推荐
java使用Rome解析Rss的实例
利用Rome解析Rss,Rome 是 java.net 上的一个开源项目Rome需要JDK1.4以上版本和JDom.jar
在做的过程中遇到中文字符出错的问题,网上也有很多人提出来,但是好能解决的不多,如果你也遇到这个问题,请详细看本文档!
rome-1.0RC2 source,jar and doc
RSS的一个工具类基于JAVA,可以解析URL生成XML也可以通过传参生成一个RSS,注释详细,用到ROME和JDOM技术,欢迎大家借鉴学习.
RSS开源框架ROME1.0下载集合 1.rome-1.0-javadoc 2.rome-1.0-sources
NULL 博文链接:https://chenhao-yssy.iteye.com/blog/1074264
Rome解析RSS必备jar
Rome是一个用于RSS和Atom提要的Java框架。框架由几个模块组成:
rome开发rss jdom rom1.0
rome包rss使用 支持各种rss版本 XXXXX XXXXX XXXXX XXXX
Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读
Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读,发布器,支持 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提要的Java框架。 该框架包含几个模块: :warning: 由于缺乏积极的维护者,该项目的维护和开发目前受到限制。 考虑成为一个积极的维护者。 项目结构 模块 描述 rome 用于生成和解析RSS和Atom...
rome-1.0.jar jdom.jar 并提供第一个RSS发布实例 (可以使用IO流写到本地xml文件;包括所需jar包,及一个成功的实例)
rss读写功能,直接用eclipse导入即可,有需要的请猛击下载
java相关RSS 部分资料已经生成代码和jar包
rome开发获取rss 配合jdom简单方便。十分的好用,欢迎下载。
java 开发rss订阅 所需的 rsslibj-1_0RC2.jar EXML.jar rome-1.0.jar包
rome-1.0.jar rome.jar 源码