JSR#168 Portlet 说明
来源:网络 更新时间:2014-12-6
全文(1)-(7)由jini(99%jakarta)所撰写
版权归属于(c)softleadertaiwan(http://www.softleader.com.tw)
如需转载请信告知jini@bbs.openfind.com.tw
ch1序言
许多大型企业的网站,渐渐采用了portalserver作为开发的基础.至于什么是portal呢,中文翻译为"门户网站"。有人可能想..天杀的..门户网站不是就像yahoo,pchome,yam等等。不过,我们现在讨论的portalserver,不是那么地简单,基本上yahoo,pchome,yam那些只能称为搜索引擎的门户网站。
如果你从来沒有用过portalserver或是似懂非懂..大家可以连结到MyNetscape或MyYahoo去注册一个帐号。因为MyNetscape的样式比较好看,所以我接下来就以MyNetscape为介绍的范例。
如果你第一次接触到portal,你会惊讶的发现...哇..为何一个网站里面充满了这么多小窗口.我们称这些小窗口叫做"portlet",而且每个小窗口都存在着独立的信息与内容,可以放到最大化,缩小,还原,关闭等等。当你登陆之后,可以选择及调整自己portlet的配置,也可以设置自己喜爱的风格与样式,更可以设置每个portlet的资料配置。这种以客户为上帝的系统,就是我们将要介绍的portal。
ch2Portal的组成
Portal的组成可以分为三部份(1)PortalServer(2)PortletContainer(3)Portlet
1)PortalServer的定义是
一个Portal(门户网站)就是指一个Web-based的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个人化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。
2)PortletContainer的定义是
portletcontainer是提供portlets执行的环境,包含了许多portlets并且管理他们的生命周期,他也会永远保存着portlets的喜好设置,一个portletcontainer接收到来自portal的请求后,接着将这个请求传递给存在container的portlet执行。portletcontainer没有义务去组合portlets产生的信息內容,这个工作必须由portal来处理。portal和portletcontainer可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。
3)Portlet的定义是
一个Portlet是以Java技术为技术的Web组件,由PortletContainer所管理,专门处理客户的request以及产生各种动态的信息内容。Portlets为可插式(pluggable)的客户界面组件,提供呈现层成为一个信息系统。这些由portlet产生的内容也被称为片段(fragment),而片段是具有一些规则的Markup(HTML、XHTML、WML),而且可以和其他的片段组合而成一个复杂的文件。而Portlet中的内容正常来说是与其他Portlet的内容聚合而成为一个Portal网页。而Portlet的生命周期是被PortletContainer所管理控制的。客户端和portlets的互动是由portal通过典型的request/response方式实现,正常来说,客户会和portlets所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果portal将会接收到portlet的动作,将这个处理状况转向到目标portlet。这些portlet内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个portlet的设置。
ch3portlet与Servlet的关系
Portlet和Servlet算是兄弟有那么一点点相似却又有那么一点点不同,因为Servlet和Portlet不尽然相同,所以研究小組決定将portlets定义成为一个新的组件,因此定义了portlets一个新的并且明确的界面与行为。为了尽可能与现有的servlet结合达到重复使用的目的,portlet的规范利用了servlet的规范,许多观念都很相似的,结合portlets、servlets及JSP在同一个网站系统中,我们称为portletapplication。在同一个portletapplication中,他们将分享同一个classloader,context及session。