使用 JSP 和 JavaScript 将 RSS 内容交付给串联站点

ZDNet软件频道 时间:2004-05-24 作者:Builder.com |  我要评论()
本文关键词:phptips
很多 Web 站点为串联组织或其它站点的发布提供有用的内容,这其中包括 Builder.com 和 TechRepublic.com。这两个站点最近也都启动了它们自己的RSS种子,这样就允许 Web 开发人员将这两个站点的内容加入到他们自己的站点中。
本文译自Builder.com,未经许可请勿转载

很多 Web 站点为串联组织或其它站点的发布提供有用的内容,这其中包括 Builder.com 和 TechRepublic.com。这两个站点最近也都启动了它们自己的RSS(Really Simple Syndication)种子,这样就允许 Web 开发人员将这两个站点的内容加入到他们自己的站点中。

创建 RSS 是一件事;将它交付给每个人使用则是另外一件事。在本文中,我们将分析一个解决方案,这个解决方案能够帮助你将 RSS 种子快速、简单地交付给其它 Web 站点。

RSS 新手课程

如果你已经熟悉了RSS,那么你可以需要跳过这一节。如果还不熟悉 RSS,那么不妨继续读下去,以了解 RSS 到底是什么东西。

简单地说,RSS 是一种用于描述串联内容的 XML 语法。当然,内容是一个很泛且不明确的术语。在这里,我们将内容定义为在一个新闻 Web 站点发表的文章。例如,Builder.com 和 TechRepublic 都是技术内容资源。这两个站点以文章的形式提供内容,而它们提供的文章可以串联或者分布到其它站点上。RSS XML 语法描述文章标题以及说明,并提供如何链接到完整内容的信息。

RSS XML 文档由定义组成。在最顶级是频道(channel)。RSS 种子中的每个内容项或文章属于一个频道。通常,一个 RSS 种子由一个单一的包含所有文章的频道组成。频道包含有以下信息,标题和说明、内容来源的图片,以及一个指向文章来源的链接。列表 A 给出了一个 Builder.com RSS 种子的例子。

Java-Java 两步

有两个组件负责提供 RSS 种子给其它 Web 站点。直接组件负责如何交付内容给最终用户。附加组件负责创建要交付给最终用户的内容。

目标是使用一段简单的 JavaScript 代码直接表现一个有格式的种子给最终用户。例如,在 HTML 页面中,你应该能够以如下方式添加一行代码:
<script src="http://www.example.com/serveFeed.jsp?hed=2&feed=1"></script>

在这种情况下,脚本指向一个表示 RSS 大标题的 JSP 页面。所以,第一个 Java 组件是实际在用户的页面表现种子的 JavaScript;第二个组件是根据一个 RSS 文档创建 JavaScript 的 JSP 页面。

回过头来分析

我们首先分析 JavaScript 的输出。基本上,我们的 JSP 将创建一个与列表 B 非常类似的输出。这段脚本使用 document 对象将 HTML 写到浏览器上。换言之,前面的脚本本质上像一个运行在用户的浏览器上的HTML 客户端包含。当浏览器看到 scriptlet 标记时,它调用 scr 中的URL 然后像 JavaScript  一样运行输出。在这里,JavaScript 是表现为 HTML 的 RSS 大标题。

细细道来

我们的种子的另一个需求是它是参数驱动的。该页面可以指定三个参数:

A:种子参数

参数

描述

有效值

默认值

Hed

表示要显示的大标题的个数

1 到 10

10

feed

表示要显示的种子

1 或 2

1

desc

表示是否显示大标题说明

yes, no

no

实际可以对种子应用的参数以及可接受的值

feed 指示器用于指示页面是使用 Builder.com 种子还是使用 TechRepublic.com 种子。

现在我们已经知道我们的 JSP 的输入的样子(一个 RSS 种子),而且还知道了输出的样子(由 JavaScript表现为 HTML 的大标题),所以我们能够创建生长种子的代码了。RSS 解析器组成了页面的核心,你可以从Builder Downloads 提供的 serveFeed.jsp 看到这一点。

如果你浏览代码,你会发现几样东西。首先,我已经在 JSP 页面内定义了一个局部类。这样做的原因有两个。一是我想使用我的程序中的一些结构和模块,可以通过 JSP 页面之外的类实现。所以第二个原因是整个工具应该完完全全地包包装在单个 JSP 页面中。

接下来要注意的就是实际的 JSP 页面代码其实只有几行。基本上,我们实例化了 FeedServer 类,根据输入参数生成了种子,最后输出了结果。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134