[Portal参考手册]Portlet概念
<!--[if !supportLists]-->1. <!--[endif]-->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页面的时候:
<!--[if !supportLists]-->² <!--[endif]-->客户端在验证后向portal发http请求。
<!--[if !supportLists]-->² <!--[endif]-->portal接收请求。
<!--[if !supportLists]-->² <!--[endif]-->portal判断是否有包含请求,并请求包含的动作指向的portlet是和这个portal页面相关联的。
<!--[if !supportLists]-->² <!--[endif]-->如果含有动作的目标portlet,portal发请求给portlet容器去执行相应的portlet的动作。
<!--[if !supportLists]-->² <!--[endif]-->portal通过portlet容器调用portlets,去获得内容片断,这个片断可以包含在portal页面中。
<!--[if !supportLists]-->² <!--[endif]-->portal集合portlets的输出内容到1个portal页面中,并把页面返回客户端。
Portlet产生标记片断。Portal通常给portlet产生的标记片断加了标题,控制按钮和其他的装饰,这个新的片断叫portlet窗口。然后portal整合portlet窗口到完整的文件,portal页面。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 383.25pt; HEIGHT: 301.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSMALLN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape><!--[if !vml]--><!--[endif]-->
Portlets 运行在portlet容器内。Portlet容器接收portlets产生的内容。典型的,portlet容器把portlet内容传到portal。Portal server根据portlet产生的内容创建portal页面,并传送给客户端,由客户端显示。
<!--[if !vml]--><!--[endif]-->
客户使用客户终端访问portal。在收到请求后,portal判断满足请求的portlets列表。Portal通过portlet容器,调用portlets。Portal用portlet产生的片断创建portal页面,同时把页面返回给用户。
<shape id="_x0000_i1027" style="WIDTH: 373.5pt; HEIGHT: 247.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSMALLN~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.gif" o:title="fig1"></imagedata></shape><!--[if !vml]--><!--[endif]-->
用户可以根据需要通过增删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
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=666257
分享到:
相关推荐
总之,"portlet开发参考手册"是理解、学习和实践portlet开发的宝贵资源,涵盖了从基础概念到高级特性的全面内容,对于希望在Web门户领域工作的开发者来说,是一份不可或缺的学习材料。通过深入阅读和实践手册中的...
1. **WebSphere Portal基础**:这部分会介绍WebSphere Portal的基本概念,如门户架构、portlet模型、工作流以及与IBM其他产品(如WebSphere Application Server、Content Manager等)的集成。 2. **安装与配置**:...
《Liferay Portlet开发参考手册》是温兵先生编著的一本专为开发者设计的指南,旨在帮助读者深入了解和熟练掌握Liferay Portal平台上的Portlet开发技术。Liferay Portal是一款开源的企业级内容管理平台,而Portlet是...
Portlet技术是Web应用程序开发中的一个重要组成部分,尤其是在企业级应用如Java Portal平台中。JSR-170,全称为Java Portlet API 1.0,是Java Community Process(JCP)发布的一项标准,用于定义portlet如何在门户...
《JBoss Portal参考手册》...总的来说,《JBoss Portal参考手册》是一份宝贵的资源,它涵盖了从基础概念到高级特性的全面内容,无论你是初学者还是有经验的开发者,都能从中获益,提升你在企业级门户开发中的专业技能。
【JBoss Portal手册】是企业级Java应用服务器JBoss提供的一种综合性的门户解决方案。这个平台允许组织构建、部署和管理富互联网应用程序,提供了一个统一的入口点,供用户访问多种服务和信息。作为开发者或者系统...
1. **portlet概念**:portlet是portal中的可重用组件,能够独立提供服务,如新闻显示、天气预报、社交媒体集成等。 2. **JSR268**:Portlet 2.0规范,增加了portlet的灵活性和互操作性,如支持Ajax增强的用户界面、...
总的来说,这份安装手册是WebSphere Portal管理员和开发人员的重要参考资料,它将引导用户顺利地完成从规划到实施的整个过程,并且为后续的维护和优化提供了基础。通过深入理解和实践手册中的内容,用户能够更好地...
《JavaServer Faces 2.0完全参考手册》针对javaserver faces(jsf)2.0中的变化进行了全面的修订与更新,涵盖了javeee的官方标准web开发架构的每个方面。在这本权威著作中,sun microsystems公司中的jsf合作规范领导者...
本参考手册主要面向JBoss Portal的开发者、系统管理员以及对门户技术感兴趣的IT专业人士。无论你是初学者还是经验丰富的专业人士,本手册都能提供必要的指导和深入的见解。 #### 系统要求 - **最低系统要求**:...
《Spring Framework 2.0 中文参考手册》是Java开发者不可或缺的重要参考资料,它全面解析了Spring框架的核心概念、设计模式以及实现细节。Spring作为一个开源的轻量级框架,旨在简化企业级应用的开发,通过依赖注入...
本书是一本利用Oracle9iAS Portal建立高性能应用程序的完整手册,既可作为Oracle9iAS Portal的入门书籍,也可作为Oracfle开发人员的参考书。 http://www.china-pub.com/4999<br><br><br>
《JavaServer Faces 2.0完全参考手册》针对javaserver faces(jsf)2.0中的变化进行了全面的修订与更新,涵盖了javeee的官方标准web开发架构的每个方面。在这本权威著作中,sun microsystems公司中的jsf合作规范领导者...
对于学习和参考,"JSR168+PORLET标准手册汉化整理.doc"是一个宝贵的资源,它可能包含了JSR168规范的详细解读,以及portlet开发的最佳实践。阅读这份文档,可以帮助开发者深入理解portlet的原理和开发流程,提升开发...
**Portlet概念** - **核心概念**:Portlet的基本单元包括Portlet自身、请求对象、响应对象、会话管理等。 - **具体细节**: - **Portlet**:代表一个具体的门户应用程序。 - **PortletRequest/PortletResponse...
这一标准由Java Community Process组织提出,目的是为门户服务器(Portal Server)和portlet容器之间的通信建立一套规范,确保不同供应商的portlet能在任何遵循JSR168标准的门户环境中运行。 #### 二、Portal与...
最后,《liferay笔记.doc》则是一份实用的开发者手册,包含了作者在实践中遇到的问题及解决方案,对于初学者来说是一份宝贵的参考材料。它可能涵盖了错误排查、性能优化、安全设置等多方面的内容。 总的来说,这个...
首先,书中详细介绍了Liferay Portal的基本架构和核心概念,包括portlet、主题、布局和工作流等关键元素。Portlet是Liferay中的主要应用程序单元,它允许开发者创建可复用、可组合的Web组件。理解portlet的生命周期...