`

Java Portlet 规范概述

阅读更多

首先,解释几个基本的术语。

1)Portal

Portal 是一种 web 应用,通常具有个性化、单点登录、来自不同源的内容聚合(aggregation)并提供信息系统表现层等特点。所谓聚合,是指将不同来源的内容整合到一个 web 页面的操作。一个 Portal 应用可通过复杂的个性化配置为用户提供定制的内容,而 Portal 页面也可含有不同的 portlet 为不同的用户生成内容。

互联网流行之初,用户与 web 的交互通常是一个 URL 访问一个单一的静态 web 站点。随着 applet、JSP 等技术的使用,出现了更多动态 web 内容的展示。但对 web 开发人员而言,缺乏跨浏览器的应用实现标准依然是困扰他们的大难题。 Portal 的出现解决了动态内容的聚合问题,并向用户提供了一个面向协作的聚合平台。

IBM 将 Portal 门户网站视为下一代的基于 Web 的桌面系统,它通过 Web 把电子商务应用程序传送到各类客户机设备。门户网站为站点用户提供了到多种类型的信息和应用程序的单点访问。不管这些信息驻留在哪里,也不管它们是什么格式的,门户网站都以一种令人满意的、适应用户的方式聚集所有的信息。一个完整的门户网站解决方案应当使用户方便地访问他们完成任务所需的每一样工作。

IBM WebSphere Portal 的可扩展的框架允许最终用户与企业应用程序、人员、内容和流程交互。他们可以个性化和组织他们自己的门户网站视图、管理他们自己的概要文件并发布和共享文档。 WebSphere Portal 提供了附加的服务,如单点登录(single sign-on)、安全性、内容管理、搜索和分类学(taxonomy)、对移动设备的支持以及站点分析。

2)Portlet

Portlet 是基于 Java 技术的 web 组件,由 portlet 容器负责管理,portlet 的生命周期也由 porlet 容器管理。 Portal 使用 portlet 作为可插拔的用户接口组件,从而为信息系统提供表现层。 Web 客户端通过请求 / 响应机制和 portlet 交互。因用户对 portlet 的配置不同,portlet 生成的内容也各有所异。

IBM WebSphere Portal 是一个可以让用户插入新功能或者扩展(portlet)的框架。 Portlet 是 WebSphere Portal 中的应用程序。在一个起到用户通往信息和任务的窗口作用的门户网站中,开发 portlet 是最重要的任务。

3)Porlet 容器

Portlet 容器负责运行 portlet,并为 portlet 提供必要的运行环境。 Portlet 容器包含 portlet 并管理其生命周期,同时持久存储 portlet 的参数。 Portlet 容器接收并处理来自 portal 的请求,运行 portlet,最后生成动态的内容。需要注意的是,portlet 容器并不聚合多个 portlet 生成的内容,而是由 portal 来完成聚合的工作。

3.1.2 与 Servlet 的关系

按照 Servlet 规范 v2.3 的定义,servlet 也是一种基于 Java 技术的 web 组件,由容器管理,可生成动态的内容。那么,servlet 和 portlet 有什么区别呢?表 3-1 列出了 servlet 和 portlet 的异同点。


表 3-1. Servlet 和 Portlet 比较

相 同 点 不 同 点
都是基于 Java 技术的 web 组件 Portlet 只生成标记片段(markup fragment),由 portal 来聚合所有的 portlet 标记片段得到完整的 portal 页面
都由专门的容器管理 Portlet 并不直接和 URL 绑定
都能动态生成内容 Web 客户端需要通过 portal 系统和 porlet 交互
两者的生命周期都有专门的容器维护 Portlet 具有更精细的请求处理、动作请求和显示请求
都通过请求 / 响应模式与 web 客户端交互 Portlet 有预定义的 portlet 模式(portlet mode)和窗口状态(window state),指明了 portlet 的操作功能和 portal 页面实际状态的数量
  Portlet 可多处存在于同一 portal 页面中


表 3-2 列出了 portlet 和 servlet 各自独有的特点。


表 3-2. Portlet 和 Servlet 独有的特点

Portlet Servlet
Portlet 能够访问和存储持久化的配置信息和定制数据 Servlet 能设置响应的字符集编码
Portlet 能够访问用户 profile 信息 Servlet 能在响应中设置 HTTP 报头
Portlet 具有 URL override 功能,从而能在其内容中创建超链接。这样,portal 服务器无需知道页面片段中的链接和动作的创建。 Servlet 能和 URL 对应
Portlet 能将瞬时数据以两种域方式存储在 portlet session 中:应用级域和 portlet 私有域  


由于以上的不同,portlet 和 servlet 是两种不同的组件。但 portlet 在配置、类装载、web 应用、web 应用生命周期管理、session 管理和请求分发等方面和 servlet 有着相似之处。 Portlet、servlet 和 JSP 可捆绑在一个扩展的 web 应用中,称为 portlet 应用。此时,portlet、servlet 和 JSP 共享类装载器、应用上下文(context)和 session 。 Portlet 可通过请求分发器来调用 servlet 和 JSP,就如同 servlet 可调用其他 servlet 和 JSP 一样,这样,portlet 和 servlet 可实现无缝的集成。

Portlet 容器是 servlet 容器的扩展,因此,不论 portlet 容器如何实现,其运行环境都假定支持 servlet 规范 2.3 。

3.1.3 Portal 页面

如 图 3-1 所示,portlet 生成片段(fragment),而 portal 通常要添加上标题、控制按钮和其他装饰性元素,而得到 portlet 窗口。最后 portal 将多个 portlet 窗口聚合而成一个完整的文档,即 portal 页面。


图 3-1. Portal 页面的组成元素
图 3-1. Portal 页面的组成元素 

Portlet 在 portlet 容器中运行,容器接收 porlet 生成的内容,并传递给 portal 。由 portal 服务器组织成 portal 页面,并送交客户端设备(如浏览器)显示。 Portal 页面的生成过程如 图 3-2 所示。


图 3-2. Portal 页面生成过程
图 3-2. Portal 页面生成过程 



读者反馈

欢迎您对本书提出宝贵的反馈意见。您可以通过本页面最下方的 建议 栏目为本文打分,并反馈您的建议和意见。

如果您对 developerWorks 图书频道有什么好的建议,欢迎您将建议发给我们


参考资料

作者简介

王立,2005 年毕业于西安交通大学计算机科学与技术系,获博士学位。先后参与过 IBM Lotus 和 Rational 产品线的相关开发工作。目前服务于 IBM 中国系统与技术中心,从事软件开发过程与企业级协作方面的研发工作。

郑长庆,2005 年毕业于浙江大学计算机应用专业,获硕士学位。从事 iSeries上IBM Workplace, WebSphere Portal 等相关产品工作。目前主要从事 IBM iSeries Web Administrator 开发。对 J2EE, Web Services, SOA 及 System i 等相关技术感兴趣。

陈喜伦,西安交通大学计算机软件与理论专业硕士。从事 IBM Workplace, WebSphere Portal 等产品相关工作。目前从事针对中小企业的 VoIP Solution 的开发工作,对 J2EE、Eclipse、软件设计、面向对象、设计模式、极限编程和敏捷开发等技术和方法感兴趣。

闫志东,2007 年毕业于南开大学计算机软件与理论专业,获硕士学位。主要从事 IBM Rational 解决方案的设计开发工作。对 J2EE, Java, C/C++ 和 Windows, Linux 软件开发均有兴趣。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics