要说rss,N年前就知道这个东西了,曾经也用foxmal订阅过新闻,到底rss是怎么回事,一直没好好研究,这回研究了一下,相当简单,但是思想非常好,应用模式非常便利。越来越多的例子证明,思想是多么重要啊。
Rss是什么就不用在这里赘述了,从开发的角度,rss就是以xml的形式表示网站的内容的链接信息,客户端工具(比如foxmail)和抓虾或google reader通过访问提供的xml,对其解析出超级链接,访问链接对应的页面,该xml数据就是rss,值得一提的是客户端工具对rss的解析是增量式的。
下面是一个典型的rss文件
<rss version="2.0">
<channel>
<title><![CDATA[JavaEI热点精华索引--数据库开发精华]]></title>
<link>http://www.javaei.com</link>
<description><![CDATA[JavaEI热点精华索引--数据库开发精华]]></description>
<item>
<title><![CDATA[javaei 2009/5/3-2009/5/9 第19周 数据库开发精华]]></title>
<link>http://www.javaei.com/content/more/2009/5/19/peCDapG534WRRw8e0875.html</link>
<author>javaei</author>
<pubDate>2009-5-9</pubDate>
<description><![CDATA[javaei 2009/5/3-2009/5/9 第19周 数据库开发精华]]></description>
<comments>http://www.javaei.com/content/split/2009/5/index2009519.html</comments>
</item>
</channel>
</rss>
各标签的意义在网上搜一下就明白了,如果不想整明白,直接把163或sohu的rss复制下来改造一下就可以了。
Rss其实就是xml,那么rss的生成可以采用一切用之于xml的技术,我一般输出xml的方式无非是dom输出和直接用输出流输出文本,这次我采用的是jsp,用jsp做模板输出可以充分利用jsp标签,把响应内容保存为xml即可。
<?xml version="1.0" encoding="UTF-8"?>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/mytag" prefix="yjf" %>
<rss version="2.0">
<channel>
<title><![CDATA[JavaEI热点精华索引]]></title>
<link>http://www.javaei.com</link>
<description><![CDATA[JavaEI热点精华索引]]></description>
<jsp:include flush="true" page="/rss.do?method=main"></jsp:include>
<c:forEach items="${allitem}" var="item">
<item>
<title>${item.title}</title>
<link>${item.link}</link>
<author>${item.author}</author>
<pubDate>${item.pubDate}</pubDate>
<description>${item.description}</description>
<comments>${item.comments}</comments>
</item>
</c:forEach>
</channel>
</rss>
感觉这种方式有时候是最简单的。
在这里可以把三种生成xml的方式做一对比:
Dom方式:需要构造完整的文档结构树,如果节点的嵌套层次不确定,最适合采取这种方式。
输出流直接输出文本:这种方式最原始,需要在java中拼接节点字符串,如果节点嵌套层次不确定,需要递归或借助栈来实现,这时候就相对麻烦些。
Jsp输出:这种方式在web开发实现最简单,可以充分利用jsp标签,适用于嵌套层次确定的xml结构。
Rss虽然技术原理很简单,但是应用模式确实非常优秀的,对客户来说,体现在“订阅”上,对提供商来说,就涉及到信息的整合了。
Javaei实现的效果在文章《www.javaei.com网站建设手记——(11)增加rss订阅》中有简要描述。
分享到:
相关推荐
Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例
Android源码——Rss订阅源码Demo.zip
Android源码——Rss订阅源码Demo.7z
安卓Android源码——Rss订阅源码Demo.zip
Windows Mobile 实战——RSS阅读器,这是微软专家提供的代码,有兴趣于嵌入移动开发的可以试验一下。学习一下模拟器也是好的。
Android综合案例——RSS阅读器实源代码+讲解
安卓Android源码——RssReader.zip
JSP实例开发源码——网站RSS订阅功能插件RSSMaker JSP版.zip
ASP.NET源码——网站RSS订阅功能插件RSSMaker ASP.net版.zip
Android源码——RSS阅读器的源码.zip
安卓Android源码——RSS阅读器的源码.zip
Android源码——RSS阅读器的源码.7z
JSP源码——网站RSS订阅功能插件RSSMaker JSP版 v1.0_rssmaker_jsp.zip
ASP.NET源码——RSS模块实现源码和工具包下载.zip
使用RSS订阅喜欢的 bilibili up主和番剧
CONFLUENCE 订阅网络 RSS 源 - CWIKIOSSEZ