A portlet is a pluggable user-interface software component that is displayed in a web portal (such as an enterprise portal or a web content management system). [1] [2] [3] A collection of portlets produce fragments of markup [4] [5] (such as HTML, XHTML, or WML) that are presented as an integrated portal user experience. [6]
A portlet container owns a collection of portlets. [4] A container manages the life cycle of its portlets and provides a runtime environment with services such as persistent storage for user preferences. [7] A container supports aggregating (integrating) information from different sources. Via user customization, a container supports a personalized portal user experience. A container with its portlets can form a web application. [8] Portlet-based applications are often used for portals focused on news, weather, [6] and Internet forums.
A portlet receives user agent requests as dispatched by the portal server and then the container. A portlet responds with dynamically generated content. [7] Its container sends data to the portal for aggregation, but is not responsible for aggregating the content produced by the portlets. The portal itself handles aggregation. [7] A portal and a portlet container can be built together as a single component of an application suite or as two separate components of a portal application.
Typically, a portlet technology is defined by a standard which enables software developers to create portlets that can be plugged into a portal conforming to the standard. An example is the Java Portlet Specification. [9]