高级JETSPEED教程.doc_第1页
高级JETSPEED教程.doc_第2页
高级JETSPEED教程.doc_第3页
高级JETSPEED教程.doc_第4页
高级JETSPEED教程.doc_第5页
免费预览已结束,剩余17页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级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 WorldLogin jetspeeed:uriLookup type=Login / jetspeed:contentUriapidocs/ Server Port 标准 RSS portlet第 3 页(共3 页)RSS portlet 渲染 RDF 站点摘要格式馈送,并将它作为 HTML 提供给用户,如下列代码清单所示: Apacheweek /issues/apacheweek-headlines.xmlurl 标记提供了 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 WorldLogin jetspeeed:uriLookup type=Login / jetspeed:contentUriapidocs/ Server Port 每个 JSP portlet 都应该合并以下 taglib 标记:uri=/WEB-INF/templates/jsp/tld/template.tld prefix=jetspeed如果要在门户网站中包含 portlet,则它必须实现 portlet 接口 org.apache.jetspeed.portal.Portlet。Jetspeed 提供了许多类,它们用于实现拥有最常用功能的 Portlet 接口。AbstractPortlet 类是这些预定义类中最简单的一个。RunData 对象被传递到 getContent(),因为必须将它传递给该门户框架中许多其它方法。portlet 使用元素构造集(ECS)API 显示内容。 JSP portlet 标记函数第 3 页(共9 页)JSP Jetspeed 库中有几个标记可以使标准函数更简单。这些标记包括用于引用的 href 标记、用于登录的 URILookup 和用于内容的 URILookup 等。 用于移动设备的 JSP portlet 位置第 4 页(共9 页)portlet 文件本身的位置特别重要。在我们所使用的 Jetspeed 发行版(1.3a2)中,我们发现在缺省情况下应该用来放置文件的 JSPportletswml 目录不存在,而文档本身没有指出这是为什么。您必须手工创建目录 .jetspeedWEB-INFJSPtemplatesJSPportletswml,如下图所示。 JSP portlet 命名和卡标识名称第 5 页(共9 页)portlet 标识的名称很重要,因为命名错误的卡将会断开登录页面与特定 WML(移动)portlet 的链接。已注册的 JSP portlet 标题名应该与卡标识名称一致,因为来自初始页面的链接是通过 Jetspeed 的 portlet XSL 模板生成的;这样就动态地创建了这些页面(卡)之间的超级链接,如下列代码清单所示: MYWMLTESTJSP Simple HELLO JSP Portlet Example JSP portlet 注册表片段第 6 页(共9 页)注册表片段包括 portlet 的定义。当您将 portlet 的媒体类型指定为 WML 时,该 portlet 的内容将被转换以用于 WML 和移动设备。下面是用于我们刚开发的 portlet 示例的注册表片段: MYWMLTESTJSP Simple HELLO JSP Portlet Example 注册为 HTML 类型的 JSP portlet第 7 页(共9 页)该图显示了将媒体类型设置为 HTML,然后将输出包含到 HTML 页面时,我们 JSP portlet 的外观。portlet 注册表第 8 页(共9 页)在创建了注册表片段文件之后,必须将它部署到 /WEB-INF/conf 下的 Jetspeed。Jetspeed 注册表中将包含这个目录中扩展名为 .xreg 的任何文件。下列清单说明了用于我们示例的 Jetspeed 注册表页面的内容: MYWMLTESTJSP Simple HELLO JSP Portlet Example 从门户网站查看 JSP Hello World!第 9 页(共9 页)在将 portlet 注册到 Jetspeed 之后,可以通过移动设备在门户网站页面上查看该 portlet 的输出。以下显示了 OpenWave 仿真器中门户网站的 Hello World portlet 的输出:portlet 的无线支持第 1 页(共9 页)正如本系列第一篇教程中所演示的,Jetspeed 支持 WAP 设备,而 WAP 浏览器渲染 WML 内容。在本章中,我们将创建两个简单的 RSS portlet 来联合内容,以便在移动设备的 WAP 浏览器上进行查看。这两者在配置和执行上有所不同,但都产生相似的结果。一个称为 LA_Times,使用 RSS 来联合 L 网站上的内容,它使其站点上的流专用于 WML 和移动设备。另一个使用本地格式化为 RSS 的 XML 文件。RSS portlet第 2 页(共9 页)RSS portlet 可以注册为 WML 或 HTML 媒体类型。注:我们的 RSS portlet 不会为移动设备修改流内容,但您可以修改流内容以使之适用于移动设备。正如您迄今为止所了解的,每个要包含在门户网站中的 portlet 都必须实现 portlet 核心。处理 RSS portlet 的核心部分之一是名为 rss-wml.xsl 的 XSL 文件。 RSS portlet 位置第 3 页(共9 页)正如所提到的,要考虑两部分 RSS portlet:RSS portlet 代码本身和 rss-wml.xsl,后者是专为处理 WML 的内容而编码的 RSS 处理文件。当您修改实际的 RSS portlet 代码时,就控制了联合的内容;当修改 rss-wml.xsl 时,就控制了联合内容的显示。RSS portlet 本身位于 /WEB-INF/classes/com/bluesunrise/portal/portlets/目录。 rss-wml.xsl 处理文件位置第 4 页(共9 页)正如您从图中看见的,RSS 处理文件 rss-wml.xsl 位于 /WEB-INF/xsl/ 目录。 用于 WAP 的 RSS portlet 注册表片段第 5 页(共9 页)本图显示了用于 WAP 的无线 RSS portlet 示例的注册表片段: 标记指示 Jetspeed 解析和利用 rss-wml.xsl 来显示 WAP 内容,因为媒体类型是 WML。 RSS portlet 注册表第 6 页(共9 页)Jetspeed 的 Customize WML 节包含所有作为 WML 类型注册到 Jetspeed 的 portlet。下列清单说明了用于我们两个 portlet 的 Jetspeed 注册表页面的内容: testWML_RSS JETSPEED RSS Portlet Example /rss/Jetspeed2.rss LA_Times Simple RSS Portlet Example /issues/apacheweek-headlines.xmlRSS portlet 代码第 7 页(共9 页)Jetspeed 的 Customize WML 部分包含所有作为 WML 类型注册到 Jetspeed 的 portlet。下列代码清单用于联合来自本地指定的 RSS 文件中的内容。 Apache Jetspeed RSS for WML. Apache Jetspeed images/jetspeed-powered.gif /jetspeed WAP-Apache Jetspeed /jetspeed Jetspeed is an Enterprise Information Portal 从 WAP 电话查看 RSS第 8 页(共9 页)下面这两张图是名为 LA_Times 的已注册 RSS portlet 从无线门户内输出的内容。第一幅图是门户网站视图,第二幅图则展示了名为 LA_Times 的 RSS portlet 的输出。 下一幅图演示了我们第二个 portlet 的 WAP 联合,该 portlet 有一个 Jakarta 链接: 第一幅图展示了门户网站视图,而第二幅图展示了 RSS portlet 本身的输出。 RSS portlet 技巧第 9 页(共9 页)在 Jetspeed 1.3a2 中,我们发现了一个有趣的行为,必须手工纠正它,以便显示指定用于 WAP 的 RSS portlet。问题在于对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论