Portal

来源:互联网 发布:ubuntu输入法切换 编辑:程序博客网 时间:2024/04/28 20:17
Portal
一、在Portlet规范里是这样讲的:“portal是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动”。

  Portal的功能可以分为三个主要方面:
1.        Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控 制portlet的生命周期并为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合 成响应。
2.        内容聚集:Portlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们将在“如何创建Portal页面”部分对此做进一步讨论。
3.        公共服务:portlet服务器的一个强项是它所提供的一套公共服务。这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。在大部分实现中都有望找到的几个公共服务有:
         o 单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。例如一旦我登录了我的intranet网站,我就能访问mail应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。
  Portal服务器会为你分配一个通行证库。你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。在你已登录到 intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的访问也将 照此处理。
          o个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。第二,用户可以决定在她的 页面上有哪些portlets。例如,如果我是个体育迷,我可能会用一个能提供我钟爱球队最新信息的portlet来取代股票和新闻portlets。
        一些在个性化服务方面领先的商业实现版本允许你建立为用户显示什么样的应用所依据的标准(如收入和兴趣)。在这种情况下,可以设定一些像“对任何收 入为X的用户显示馈赠商品的portlet”和“对任何收入为X的用户显示打折商品的portlet”这样的商业规则。

        此外还有一些公共服务,比如机器翻译,是由portal服务器将portlet生成的内容翻译为用户要求的语言。大部分的商业portal服务器都支持手持设备访问并具有针对不同的浏览终端生成不同内容的能力。

二、游戏《Portal》
运用 Source 引擎制作的射击游戏几乎可说是获奖连连,与全球性的票房保证,而游戏设计公司 Valve 并不因此满足,反而以挑战玩家的运动神经和逻辑概念为乐,继续打造多款风格类型迥异的游戏来养坏玩家胃口。《Portal》就是这样的一款游戏,首席设计 师Kim Swift笑着表示:「我们要的就是尽可能地折磨玩家!」
玩家的任务是在每个关卡中从 A点到达 B点,一开始可能只是简单的障碍超越,例如跨越一道鸿沟或是到达跳不上去的高台,不过随着游戏进行,房间规模和高地落差会越来越大,其中加入的解谜要素也 越来越多,玩家得考虑的过关步骤也更为繁复。这些过关要素包含移动平台、危险机关、压力式开关、弹跳能量球等等。游戏中没有所谓的敌人,充其量只有散布四 处的机枪炮塔。炮塔只是增加游戏的难度或是让玩家分心而已,不全然是解谜的一部份。玩家可以承受一点伤害快速通过射击范围、使用传送门通过炮塔,或是躲在 掩蔽物后方避开攻击,当然如果玩家勇于挑战,也能使用手上的传送枪解决这些炮塔。比如说在炮塔下方开一道传送门,让它掉入无底深渊,或是传送远处的箱子, 然后在炮塔上方另开一道传送门利用箱子将它打翻。
====================================================================================
什么是Portal?
Portal是一个基于web的应用程序,它主要提供个性化、单点登录、不同来源的内容整合以及存放信息系统的表示层。

什么是Portlet?
Portlet是基于java技术的web组件,它由portlet容器管理、并处理请求,并动态生成输出内容。

Portlet的输出是一个片段,即不是一个完整的页面。

Portal标准
为规范Portal,SUN于2003年底制定了JSR168,它定义了portlet标准,并给出了一个实现接口。

Portlets与Servlet的异同?
相同点
基于web应用的java技术

由特定的容器管理

动态生成内容

生命周期由容器进行管理

通过request/reponse进行交互

不同点
portlet只生成片段

portlet并不直接绑定到某一个URL上

portlet通过portal进行交互

portlet可以多次在同一个portal页面上同时出现

portlet优点
能访问到用户配置信息

能在不同的域中存储会话:应用程序级到私有级。

portlet与servlet的关系
前者能调用后者,并且能共享信息,包括:Attributes

portlet容器是servlet容器的扩展

portlet无法做到的事情
设置response的字符集编码

设置http header

获取客户端的request

Portlets实例
如果是在普通的场合下使用,即不是在分布式场合,则每个portal应用就会生成一个portlet实例。而如果是在分布式场合下使用的话,则每个jvm只有一个实例。

Portlet生命周期
Portlet接口的四个方法构成一个完整的生命周期:init, processAction,render,destroy

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)

  throws PortletException, java.io.IOException;

由portlet容器调用,用来生成输出。

public void destroy();

将portlet从服务区中删除。

Portlet URLs
如何生成Portlet URL
RenderResponse.createActionURL

RenderResponse.createRenderURL

调用setParameter、setParameters可以用来设置参数.

如何使用Portlet URL
开发者不可以对参数进行任何编码,它(编码)是由portlet容器进行的。见下面例子:

    PortletURL url = response.createRenderURL();

    url.setParameter(“customer”,”foo.com”);

    url.setParameter(“show”,”summary”);

    writer.print(“Summary”);

portlet URL可以包含portlet的模式及窗口的状态,见下面例子:

    PortletURL url = response.createActionURL();

    url.setParameter(“paymentMethod”,”creditCardInProfile”);

    url.setWindowState(WindowState.MAXIMIZED);

    writer.print(“ ”);

setSecure方法用来设置是否是https