Portlets在Web门户上管理和显示的可插拔的用户界面组件。Portlet产生可以聚合到门户页面中的标记语言代码的片段,如HTML,XML等。通常,根据桌面隐喻,一个门户页面显示为一组互相不重叠的portlet窗口,其中每一个portlet窗口显示一个portlet。因此,可以说一个(或一组)portlet就像一个在门户网站上运行的基于Web的应用程序。 Portlet应用程序的一些例子包括电子邮件,天气预报,论坛和新闻等。
Portlet标准的目的是使开发人员开发出的portlet可以插入到任何支持该标准的门户网站。
标准
远程Portlet的Web服务(Web Services for Remote Portlets)协议的目的是提供Web服务标准,允许来自不同来源的远程Portlet可以“即插即用”。许多网站允许注册用户通过开关Web页面的某些部分或添加或删除特性,来自定制个性化的网站的面貌。这有时是通过共同构成该门户网站的一组Portlet来完成的。
Java Portlet规范(JSR-168[1]、JSR-286[2]、JSR-362[3])提供Portlet在不同Web门户网站的互操作能力。该规范定义了Portlet容器和Portlet之间交互的一组API,解决个性化,展示和安全方面的问题。
Apache Pluto是JSR-168的一个参考实现。除了参考实现,也有许多厂商提供了Portlet容器的商业实现,一些主要的厂商如IBM、Oracle、BEA、Vignette和SUN。这些厂商提供基于Portlet标准的实现,以及尚未被标准机构认可的扩展。此外,也有大量的开源Portal解决方案支持JSR168,如Apache的Jetspeed-2、eXo Platform、uPortal、Liferay Portal等。