[Portal参考手册]Portlet概念

转载 2007年10月16日 09:45:00
Portlet概念

Portlet 是可以提供对基于 Web 的内容、应用程序和其它资源访问的可重用组件。可通过 portlet 访问 Web 页面、web 服务、应用程序和成为企业组合的内容供给。公司可以创建他们自己的 portlet 或从第三方 portlet 目录中选择 portlet。portlet 是打算被组装成更大的门户网站页面,其中同一 portlet 的多个实例为每个用户显示不同的数据。

从用户的角度来看,portlet 是门户网站站点中提供特定服务或信息(例如,提供日历和新闻)的窗口。从开发者的角度来看,portlet 是可插入的模块,它们被设计成在 Portal Server 的 portlet 容器中运行。

portlet 容器提供了一个运行时环境,在这个环境中实例化、使用和最终破坏 portlet。portlet 依靠门户网站基础结构来访问用户概要文件信息、参与在窗口和操作事件中、与其它 portlet 通信、访问远程内容、查找凭证以及存储持久数据。Portlet API 提供了这些功能的标准接口。portlet 容器不是一个类似于 servlet 容器的独立容器。它是以 servlet 容器上的瘦层的方式实现的,并重用 servlet 容器提供的功能。

 

下面是典型的事件流程,当用户访问portal页面的时候:

 

²        客户端在验证后向portal发http请求。

²        portal接收请求。

²        portal判断是否有包含请求,并请求包含的动作指向的portlet是和这个portal页面相关联的。

²        如果含有动作的目标portlet,portal发请求给portlet容器去执行相应的portlet的动作。

²        portal通过portlet容器调用portlets,去获得内容片断,这个片断可以包含在portal页面中。

²        portal集合portlets的输出内容到1个portal页面中,并把页面返回客户端。

Portlet产生标记片断。Portal通常给portlet产生的标记片断加了标题,控制按钮和其他的装饰,这个新的片断叫portlet窗口。然后portal整合portlet窗口到完整的文件,portal页面。

  

Portlets 运行在portlet容器内。Portlet容器接收portlets产生的内容。典型的,portlet容器把portlet内容传到portal。 Portal server根据portlet产生的内容创建portal页面,并传送给客户端,由客户端显示。

 

       客户使用客户终端访问portal。在收到请求后,portal判断满足请求的portlets列表。Portal通过portlet容器,调用portlets。Portal用portlet产生的片断创建portal页面,同时把页面返回给用户。

用 户可以根据需要通过增删Portlet的方式配置他们的页面。在Windows或者XWindows窗口程序中,窗口有最大化和最小化的窗口状态, portlet也有窗口状态。窗口状态是portal页面空间数量的指示器,它被赋值给portlet产生的内容中。当调用portlet,容器提供当前 窗口状态给portlet。Portlet使用窗口状态决定多少信息需要render。Portlets能在处理action请求时,编程的改变他们的窗 口状态。Portlet规范定义了3种窗口状态,normal,maximized和minimized。

Normal窗口状态

 

Normal窗口状态表示portlet要和其他的portlet共享页面。它也表示目标设备限制了显示能力。因此,portlet限制输出的尺寸。

 

MAXIMIZED窗口状态

 

Maximized窗口状态表示portlet是portal页面唯一的portlet,或portlet相比与其他的portlet有更多的空间。当窗口状态是Maximized时,portlet产生更多的内容。

 

Minimized窗口状态

 

当portlet是minimized状态,它将是最小限度的输出,或不输出。

 

 

Portlet 模式指出porlet的功能。一般来说,portlet执行不同任务,依靠当前执行的任务的创建不同内容。Portlet模式告诉portlet他们执行 什么任务,生产什么内容。当调用portlet,容器提供当前portlet模式给portlet。Portlets在处理action请求时能编程的改 变他们的portlet模式。

 

Portlet有四种模式:view,edit, help和config。

可用的模式根据用户的角色受到限制。例如,匿名用户只能使用view和help模式,而验证用户可以使用edit模式。

举例来说,一个用户可以定制的股票信息Portlet,View模式允许用户查看股票列表,Help模式提供给用户帮助手册,Edit模式允许用户定制自己关注的股票列表,而Config模式允许管理员改变股票服务的一些配置。

VIEW 模式

 

View模式期待的功能是产生标记反映当前的状态给portlet。例如,view模式的portlet包含1个或多个框,用户可以操作或交互,或组成不需要任何用户交互的的静态内容。

Portlet开发者需要通过覆盖doView方法实现view portlet模式的功能。

 

EDIT 模式

 

通过edit模式,portlet提供内容和logic让用户用户化portlet的行为。Edit模式包含一个或多个框,用户可以定位并输入他们的用户化数据。

 

典型的,edit模式,将设置或修改portlet的参数。Portlet开发者需要通过覆盖doEdit方法实现edit portlet模式的功能。

 

HELP 模式

 

当在help模式,portlet提供portlet的help信息。这个help信息将会是简单的框,用连贯的正文或上下文敏感的帮助阐明了整个portlet。Portlet开发者需要通过覆盖doHelp方法实现help portlet模式的功能

 

CONFIG 模式

 

当在config模式,管理员可以进行相应的操作。Portlet开发者需要通过覆盖doConfig方法实现view portlet模式的功能。

 

因 为Portlet继承于Servlet,所以portlet可以打包成war文件发布到Portal容器中。管理员可以发布或者卸载portlet。在一 个Portlet Web 应用中,一个portlet描述文件用来描述portlet的属性和初始化信息。一个Portlet定义包含一个application portlet和多个concrete portlet。一个Application Portlet在portlet容器中仅存在一个实例。一个concrete Portlet实例一个使用额外的数据实例化的portlet。

 

servlet规范2.3定义如下:

“servlet 是基于web组件的,由容器管理的,产生动态内容的java技术。类似其他的java组件,servlets是平台独立的java类,它被编译为中间字节 码,能被动态加载和运行在java激活的web server。容器,有时称为servlet引擎,是web server的扩展,它提供servlet功能。Servlets通过由容器执行的请求/返回模式和客户端交互。”

 

Portlets 和servlets有很多相似性:

 

? Portlets也是基于web组件的java技术

? Portlets由专门的容器管理。

? Portlets产生动态内容。

? Portlets生命周期由容器管理。

? Portlets请求/返回模式和客户端交互。

 

Portlets 和servlets不同的地方:

 

Portlets只产生标记片断,而不是完整的文档。Portal把这些整合到portal页面中去。

Portlets不是直接和url绑定。

web客户端通过portal系统和portlets作用。

Portlets有更精确的请求处理,action请求,render请求。

Portlets有预先定义的portlet模式和窗口状态,这些指出portlet的功能,和portal页面中实时状态的数量。

Portlets在1个portal页面中能存在好几次。

 

Portlets有servlets不包含的功能:

 

Portlets有访问和储存持久化参数和用户化数据的方法。

Portlets能访问用户profile信息。

Portlets有url改写的功能去产生新的链接,这使得portal server可以在不知道的情况下,在页面片断中创建链接和动作。

Portlets能保存瞬时信息在不同范围的portlet session中:应用程序宽度的范围,和portlet私有的范围。

      

portlet没有而servlet有的功能:

 

设置返回字符的编码

设置返回的http头

向portal请求的客户端 URL。

 

Spirit框架提供类内建的基于角色(Role)的的访问控制支持。Spirit使用portlet Web Application作为组。用户可能属于一个或者多个组(也就是说,用户可以访问一个或者多个Web Application)。

    Core Portlet API 提供了详细的编程接口。Portlet Service了÷框架提供了一个清晰的接口,用来产生可重用的服务。

    一个portlet的集成关系如下:

javax.servlet.http.HttpServlet
 |__com.kuaff.spirit.portlet.Portlet

|__com.kuaff.spirit.portlet.PortletAdapter
|__com.kuaff.spirit.portlet.AbstractPortlet
    |__com.samples.MyPortlet

 

liferay 如何在页面实现添加多个portlet

在默认的情况下,一个portlet在一个页面上只能有一个,如果需要一个页面上有多个相同的portlet的话就需要对portlet进行实例化。实例化以后,Liferay会为每一个实例化的portlet分...
  • jianfpeng241241
  • jianfpeng241241
  • 2014年11月30日 00:22
  • 937

几种开源Portal的简单介绍分析

几种开源Portal的简单介绍分析 一、网上关于几个开源portal框架的一些评测 1、评测的一些标准 每个开源框架都有其优点和缺点,如果没有一套全面的标准来评价,很难说清楚哪个框架...
  • ynwso
  • ynwso
  • 2015年01月06日 12:30
  • 6680

Portal之Portlet如何与容器交互

Portlet运行在Portlet容器中,由Portlet容器在特定的时间点调用Portlet的方法,那么Portlet应该有哪些方法,这些方法在什么时候被Portlet容器调用呢?本文对此做一个简单...
  • majian_1987
  • majian_1987
  • 2013年04月14日 11:46
  • 918

对javaweb中portal的理解

portal是指一个门户网站 例如sina就采用了Portal技术 他是.net的一个开源的网站模版 什么是Portal? 英文字面是“入口”,国内有叫“门户”技术的,但我觉得“集成”技术更能表达它的...
  • qfikh
  • qfikh
  • 2016年10月05日 14:22
  • 1521

Portal之Portlet如何与容器交互

参见:http://www.oschina.net/question/234345_51127 Portlet运行在Portlet容器中,由Portlet容器在特定的时间点调用Portlet...
  • paradisesunny
  • paradisesunny
  • 2014年04月21日 19:20
  • 450

主页自定义可拖动组件 2.0版本 (portlet)

首先,我是从下面这个页面抠出来的。 http://wrapbootstrap.com/preview/WB00958H8 效果: 在这个页面直接右键查看源代码,就可以看到了。非常清楚。 因为...
  • u012560410
  • u012560410
  • 2014年03月21日 14:25
  • 3486

portlet编写入门

生成下面的两个文件: view.jsp:显示欢迎信息,并且提供编辑页面的链接。 edit.jsp:显示有一个文本框的表单,允许欢迎信息可以被修改,并且包括一个回退到view.jsp的超级链接。 ...
  • u014470581
  • u014470581
  • 2016年04月15日 10:55
  • 616

Liferay Portal 连接配置MySQL数据库 (三)

Liferay Portal 连接MySQL数据库
  • tangdelong
  • tangdelong
  • 2014年09月18日 16:56
  • 1367

Portlet开发入门实例

1原生Portlet开发 这是最简单、最本质的开发方式,直接基于Portlet规范定义的接口开发Portlet。优点是贴近底层比较灵活, 缺点当然就是所有事情都要自己去做。就好比不用Spr...
  • dc_726
  • dc_726
  • 2013年09月21日 14:28
  • 9206

Spring Portlet MVC开发入门示例

本文通过一个简单实例介绍一下Spring 的Portlet MVC框架. Spring Portlet MVC和其Web MVC可以说是如出一辙,只是在Web MVC中处于核心的Dispatcher...
  • majian_1987
  • majian_1987
  • 2013年04月14日 11:45
  • 5204
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Portal参考手册]Portlet概念
举报原因:
原因补充:

(最多只允许输入30个字)