基本目的
研究熟悉 JSR168规范,掌握其开发API,熟悉EXO配置平台,是用EDITPLUS,ECLIPSE,以EXO为平台,开发一个简单的符合JSR168规范的PORTAL,实现几个实用的PORTLET.
基本概念
门户是基于Web的应用程序,提供个性化、单一登录和不同来源的内容汇集,并托管信息系统的表示层。
portlet是通常由容器管理的一个Web组件,用于处理请求并生成动态内容。门户利用portlets作为可插入的用户接口组件,来为信息系统提供表示层。
Java Specification Request 168 (JSR 168)为Java平台而实现的portlets定义了一个标准接口,并定义了portlet及其容器之间的交互条件。
JSR 168满足了内容汇集、个性化、表示和安全性等方面的需求。它定义了portlet容器和可用于与用户特定portlet代码进行交互的标准接口(portlet API)的功能。它还提供了一个URL重写机制,用于创建portlet 容器内的用户交互。另外,该标准还定义了高效处理portlet安全性和个性化特性的方式。
Portlet界面
Portlet界面是Portlet API的主要抽象。所有的portlet都得实现这个接口,直接地或更一般地,继承一个实现了该接口的类。
Portlet API包括一个GenericPortlet类,它实现了portlet的接口,并提供了一些缺省的功能。开发者应该直接或间接继承GenericPortlet来实现他们的portlet。
Portlet实例的数目
在Portlet应用部署描述符中的Portlet定义部分,控制了Portlet容器如何创建Portlet实例。对不是处于分布式环境的portlet(缺省),Portlet容器只能对一个Portlet定义实例化和使用一个Portlet对象。
当Portlet作为分布式Portlet应用的一部分而被部署时,在web.xml部署描述符中,一个Portlet针对一个虚拟机的一个Portlet定义,只能实例化一个Portlet对象。
Portlet生命周期
Portlet是通过一个定义得非常完备的生命周期来管理的,它定义了Portlet是如何被加载,初始化的,如何处理来自客户的请求的,以及如何离开服务的。Portlet生命周期是通过方法init,processAction,render,destory及接口portlet来实现的。