欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

portal  

程序员文章站 2022-05-11 23:49:27
...

JSR168将Portal 的组成分为三部份 (1) Portal Server (2) Portlet Container (3) Portlet。

Portal Server的定义
建立在HTTP Server上。负责接收HTTP请求,调用Portlet,并将Portlet产生的内容聚集到Portal页面返回给用户。(Portal Server有时简称Portal)

Portlet Container 的定义
Portal Container:管理Portlet的生命周期并且提供其运行所需要的必要环境。同时也提供Portlet相关信息的存储。一个Portlet container 接收到来自Portal 的请求后,接着将这个请求传递给存在Container 的Portlet 执行。Portlet Container 没有义务去组合Portlets 产生的信息內容,这个工作必须由Portal (即Portal Server)来处理。Portal 和Portlet Container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。

Portlet的定义
一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。
这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。

客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。

Portlet生命周期
Portlet接口的四个方法构成一个完整的生命周期:
public void init(PortletConfig config) throws PortletException;
     由Portlet容器调用,在将Portlet放入服务区前调用。Portlet容器在初始Portlet后,直接调用这个方法。
public void processAction (ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException;
     由Portlet容器调用,用来处理action request。
public void render (RenderRequest request, RenderResponse response) throwsPortletException, java.io.IOException;
     由Portlet容器调用,用来生成输出。
public void destroy() ;
     将Portlet从服务区中删除。

一个Portal处理流程

1.  一个客户端(例如:一个web浏览器)在被验证之后向Portal发出HTTP请求;

2.  Portal(或称为Portal Server)接收到请求;

3.  Portal判断请求是否包含与组成门户网站网页的portlet有关的动作;

4.  如果存在与某个portlet相关的动作,Portal请求portlet容器调用portlet处理动作;

5.  Portal通过portlet容器调用portlet,获得被包含在产生的门户网站网页中的内容片段;

6.  Portal将portlet产生的结果聚集于门户网站的网页,然后将网页返回至客户端。

在下图中需要注意的是Portal服务器是建立在Http服务器的基础上的。Portal服务器不可独立的运行。