首先,解释几个基本的术语。
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)、对移动设备的支持以及站点分析。
Portlet 是基于 Java 技术的 web 组件,由 portlet 容器负责管理,portlet 的生命周期也由 porlet 容器管理。 Portal 使用 portlet 作为可插拔的用户接口组件,从而为信息系统提供表现层。 Web 客户端通过请求 / 响应机制和 portlet 交互。因用户对 portlet 的配置不同,portlet 生成的内容也各有所异。
IBM WebSphere Portal 是一个可以让用户插入新功能或者扩展(portlet)的框架。 Portlet 是 WebSphere Portal 中的应用程序。在一个起到用户通往信息和任务的窗口作用的门户网站中,开发 portlet 是最重要的任务。
Portlet 容器负责运行 portlet,并为 portlet 提供必要的运行环境。 Portlet 容器包含 portlet 并管理其生命周期,同时持久存储 portlet 的参数。 Portlet 容器接收并处理来自 portal 的请求,运行 portlet,最后生成动态的内容。需要注意的是,portlet 容器并不聚合多个 portlet 生成的内容,而是由 portal 来完成聚合的工作。
按照 Servlet 规范 v2.3 的定义,servlet 也是一种基于 Java 技术的 web 组件,由容器管理,可生成动态的内容。那么,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 所示,portlet 生成片段(fragment),而 portal 通常要添加上标题、控制按钮和其他装饰性元素,而得到 portlet 窗口。最后 portal 将多个 portlet 窗口聚合而成一个完整的文档,即 portal 页面。
Portlet 在 portlet 容器中运行,容器接收 porlet 生成的内容,并传递给 portal 。由 portal 服务器组织成 portal 页面,并送交客户端设备(如浏览器)显示。 Portal 页面的生成过程如 图 3-2 所示。
- 阅读本书的 前言 和 目录。
- 阅读本书的 第 3 章:Java Portlet 规范概述。
- 阅读本书的 第 4 章:IBM WebSphere Portal 开发简介。
- 阅读本书的 第 7 章:行为模式之责任链模式(Responsibility Chain)。
- 更多推荐书籍,请访问 developerWorks 图书频道。
王立,2005 年毕业于西安交通大学计算机科学与技术系,获博士学位。先后参与过 IBM Lotus 和 Rational 产品线的相关开发工作。目前服务于 IBM 中国系统与技术中心,从事软件开发过程与企业级协作方面的研发工作。
郑长庆,2005 年毕业于浙江大学计算机应用专业,获硕士学位。从事 iSeries上IBM Workplace, WebSphere Portal 等相关产品工作。目前主要从事 IBM iSeries Web Administrator 开发。对 J2EE, Web Services, SOA 及 System i 等相关技术感兴趣。
来自:http://www.ibm.com/developerworks/cn/websphere/book_wps_pattern/3/
相关推荐
#### 一、Java Portlet 规范概述 - **规范版本**:本文档介绍的是Java Portlet Specification版本2.0,发布日期为2008年1月25日。 - **版权信息**:该规范由IBM Corporation(简称“Spec Lead”)提供,版权所有为...
《portlet规范》(JSR 168)是为开发者提供的一份关键文档,它定义了portlet的开发标准,使得portlet能够在不同的门户环境中实现一致性和互操作性。这份规范由Java Community Process(JCP)发布,主要由Sun ...
Spring MVC Portlet是一个用于构建portlet应用程序的框架,它结合了Spring MVC的灵活性和portlet规范的强大功能。在这个demo中,我们将会深入探讨如何利用Spring 3.0 MVC架构来开发portlet应用。 **Spring MVC简介*...
JSR168(Java Portlet API 1.0)是Java Community Process定义的一个标准,用于规范portlet的开发。本文档将深入探讨基于JSR168的portlet开发的高层设计,包括接口方法的用途以及如何获取共享session。 **第一章 ...
JSR286的主要新特性**:JSR286(Java Specification Request)是Portlet 2.0规范,相较于Portlet 1.0,它引入了许多新特性,如增强的事件处理机制、资源请求、更丰富的用户界面定制选项、安全性和性能优化等,为...
- Java Portlet 规范定义了一组标准接口和API,用于开发可重用的Portlet组件。这些组件可以在任何符合规范的门户中运行。JSR-168标准确保了Portlet的互操作性和可移植性,使得开发者能够更容易地为多种门户环境开发...
JSR286是Java Specification Requests中关于Portlet技术的规范版本2的描述,它定义了Portlet2.0版本。JSR286相较于之前版本引入了新的特性和改进,例如,支持通过Portlet URL传递Portlet Mode和Window State信息,...
《JavaTM Portlet Specification 2.0》(简称JSR 286)是关于Portlet技术的一份重要规范,由Java Community Process (JCP)发布,版本号为2.0。这份规范详细定义了Portlet的接口、实现方法及其与门户应用服务器的交互...
Portlet技术基于JSR 168/286标准,这两个标准定义了Portlet的接口、生命周期及如何与门户服务器进行通信等规范。 #### 三、Struts-Portlet开发环境搭建 1. **Eclipse IDE**:首先需要安装Eclipse集成开发环境。...
##### 2.1 Java Portlet规范(JSR-168) - **定义与作用**:JSR-168是由Java社区制定的一套规范,用于规定Portlet如何与其他Portlet容器集成以及如何确保在不同Portal产品之间的兼容性。这一规范的目的是使Portlet...
### Portlet 开发知识点概述 #### 一、Portlet 基础概念 - **Portlet**:在 Web 应用领域中,Portlet 是一种用于构建门户应用的小型组件,能够提供动态内容,并且可以与其他 Portlet 进行交互。Portlet 的核心在于...
- **门户标准支持**:完全遵循 JSR 168 和 JSR 286 等门户标准规范,确保了 Portlet 的互操作性和兼容性。 - **个性化定制能力**:允许对 Portlet 进行高度个性化设置,满足不同用户的特定需求。 - **数据源集成**:...
1. **portlet.xml**:这是JSR 168规范定义的Portlet描述符文件,用于描述Portlet的基本信息和行为。例如,在文档中的示例中,我们可以看到以下内容: ```xml <portlet-app version="1.0" xmlns=...
它支持多种标准,包括JSR 168(Portlet规范)。本文档旨在详细介绍如何在个人PC上安装配置Jetspeed,并指导用户创建一个简单的Portlet。 #### 二、系统需求 - **硬件需求**: - 个人PC - 操作系统:Windows XP - ...
PortletSpec_20,即Java Portlet Specification Version 2.0(简称JSR 286),是由Java Community Process (JCP) 组织发布的一份关于portlet开发的标准规范。这份文档最初于2007年11月29日作为Proposed Final Draft...
- **JSR 168**:JSR 168是Java Portlet API的一个版本,它为portlet开发者提供了一个标准化的框架,使得portlet可以在支持JSR 168规范的任何门户容器中运行。 - **WSRP**:Web Services for Remote Portlets(WSRP)...
### Portal技术概述 #### 一、Portal基础概念 Portal是一种基于Web的应用程序,它通常提供了个性化服务、单点登录(SSO)...随着Portlet规范的不断成熟和完善,Portal技术将继续为企业级应用带来更多的便利性和高效性。