高级JETSPEED教程

高级JETSPEED教程 Jetspeed 是什么 第 1 页(共5 页) Jetspeed 是 Apache 软件基金会的开放源码项目,它允许开发人员实现门户网站。Jetspeed 是用 Java 语言编写的,它为 portlet 开发提供了 Portal API,portlet 是构成门户网站构件的小型 Java 应用程序。Jetspeed 建立与外部数据和内容馈送的连接,以通过门户网站检索和显示该数据。实现门户网站的方式可以是这样的用户可以从 Web 浏览器或无线设备(如 WAP 电话或 Palm OS 设备)访问它。Jetspeed 支持用户界面定制、高速缓存、持久性和用户认证这样的内置服务,因此门户网站开发人员不必实现这些服务。

Jetspeed 体系结构模型 第 2 页(共5 页) 本图显示了 Jetspeed 体系结构的构件。本教程将 Tomcat 3.2 用于 servlet 引擎和 HTTP 服务器,并使用 Jetspeed V1.3a2。

在本教程的第 1 部分中,我们讨论了安装和配置 Jetspeed 所需的步骤。如果您还没有在系统上启动和运行 Jetspeed,可能要先查看这份材料。

Jetspeed 所支持的 JSP portlet 第 3 页(共5 页) Jetspeed 支持 JSP 作为 portlet 的构件。它还提供了特定于 Jetspeed 的预定义 taglib 块,这使得重复的任务更容易执行。

Jetspeed 所支持的内容格式 第 4 页(共5 页) Jetspeed 支持 RSS(RDF 站点摘要,RDF Site Summary)和 OCS(开放内容联合,Open Content Syndication)格式。RSS 是一种用于联合 Web 标题的 XML 格式。OCS 格式描述了多内容通道,包括 RSS 标题。

高级 Jetspeed 特性 第 5 页(共5 页) Jetspeed 的一些高级特性包括 支持无线标记语言(WML) Web 应用程序开发基础结构 跨所有支持 JDK 1.2 和 Servlet 2.2 的平台的可移植性 可通过安全性 porlet 使用的用户、组、角色和许可权管理 对 portlet 进行基于角色的安全性访问 portlet 是什么 第 1 页(共5 页) 可以将 portlet 看作在门户页面中显示数据的可见的活动组件。上图说明了关于门户网站的 portlet。名为 Home 的门户网站页面上显示了三个 portlet,它们名为 Reports 、Weather 和 Contacts。

页面布局 第 2 页(共5 页) 上图说明了包含 portlet 的页面的组织结构。在页面中,portlet 内容是由 PortletControl 和 PortletController 渲染的。

portlet 页面中的 PortletControl 渲染 portlet 的标题和主体。

PortletController 处理多个 PortletControl(每个控制一个 portlet),以便将从所有 portlet 抽出的信息组合起来,提供完整的页面信息。

portlet 如何显示内容 第 3 页(共5 页) portlet 使用元素构造集(Element Construction Set,ECS)API 显示内容,该 API 是与 Jetspeed 捆绑在一起提供的。ECS API 从 Java 对象生成标记元素。可以使用 JSP 技术或 servlet 模板来生成作为输出的内容,然后由 ECS 元素捕获该内容再依次显示内容。ECS 支持无线标记语言(WML)以及 HTML 和 XML。

portlet 高速缓存 第 4 页(共5 页) Jetspeed 向开发人员提供了高级高速缓存机制。需要进行高速缓存的 portlet 连同其相关句柄信息(譬如其类名称)以及一些 portlet 配置信息(譬如其 URL)一起被放置到高速缓存中。如果必须从高速缓存中除去 portlet,那么可以通过 expire 方法来完成该操作,该方法可以决定 portlet 何时在高速缓存中已到期。

门户网站结构标记语言(PSML) 第 5 页(共5 页) 我们使用门户网站结构标记语言(Portal Structure Markup Language,PSML)将 portlet 手工注册到 Jetspeed。PSML 通知 Jetspeed 哪些 portlet 可用,并将这些 portlet 注册到 Jetspeed。portlet 的配置文件是 WEB-INF/conf 目录中的 jetspeed-config.jcfg。缺省配置文件名为 default.psml 和 defaultWML.psml,它们位于 WEB-INF/psml 中。一旦创建了用户,就拥有了两个与之相关联的配置文件 homeHTML.psml 和 homeWML.psml,这两个文件存储在 WEB-INF/psml/ 中。

PSML 由两类标记组成 注册表标记描述了 Jetspeed 引擎可用的所有 portlet。关于每个 portlet 的所有信息都存储在 portlet 注册表中。

站点标记描述了可以向特定用户显示哪些可用于 Jetspeed 引擎的 portlet。关于如何在屏幕/页面上组织 portlet 的信息,以及其表示特性的信息,是通过站点标记描述的。

用于移动设备的 JSP portlet 和 RSS portlet 第 1 页(共3 页) 在本教程的剩余部分,我们将讨论下列特性 JSP portlet RSS portlet 我们还将研究未记入文档的难题,它们是在用这些类型的 portlet 在移动设备上显示数据时发生的。

可以在 Jetspeed 网站上找到关于这些 portlet 所用的常见元素的描述。

标准 Web JSP portlet 第 2 页(共3 页) JSP portlet 显示了 JavaServer Pages 的输出。下列清单是一个示例 Hello World Example of JSP Portlet 这个 portlet 显示的内容是 hello.jsp 页面的输出。这个 JSP 文件需要定位到 //WEB-INF/templates/jsp/portlets 中。该 JSP 文件本身的代码如下 JSP Hello World Login jetspeeeduriLookup type“Login“ / jetspeedcontentUri apidocs/ Server Port 标准 RSS portlet 第 3 页(共3 页) RSS portlet 渲染 RDF 站点摘要格式馈送,并将它作为 HTML 提供给用户,如下列代码清单所示 Apacheweek http// url 标记提供了 RSS 馈送的位置,它必须是格式化为 RSS 的 XML 文件。RSS portlet 支持 WML 和 HTML 媒体类型。

步骤 第 1 页(共9 页) 要使 Jetspeed 可以使用 portlet,首先必须执行这些步骤 1. 实现和编译 portlet 2. 创建 portlet 注册表片段 3. 将编译好的 portlet 放置到适当位置 4. 将 portlet 注册到 Jetspeed portlet 注册表 5. 调整 portlet 代码,使之可用于移动设备 合并了 Jetspeed 标记库的、用于移动设备的 JSP portlet 第 2 页(共9 页) 在本章中,我们将创建一个简单的 JSP Hello World portlet。在先前所示示例中,请注意 taglib 标记,它包括 template.tld。下列清单是该 portlet 本身的代码,在这里再次列出,供您参考 JSP Hello World Login jetspeeeduriLookup type“Login“ / jetspeedcontentUri apidocs/ Server Port 每个 JSP portlet 都应该合并以下 taglib 标记 uri/WEB-INF/templates/jsp/tld/template.tld prefixjetspeed 如果要在门户网站中包含 portlet,则它必须实现