The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers.
The Java Portlet Specification V1.0 was developed under the Java Community Process as Java Specification Request JSR 168, and released in its final form in October 2003.
The Java Portlet Specification V1.0 introduces the basic portlet programming model with:
two phases of action processing and rendering in order to support the Model-View-Controller pattern.portlet modes, enabling the portal to advise the portlet what task it should perform and what content it should generatewindow states, indicating the amount of portal page space that will be assigned to the content generated by the portletportlet data model, allowing the portlet to store view information in the render parameters, session related information in the portlet session and per user persistent data in the portlet preferencesa packaging format in order to group different portlets and other Java EE artifacts needed by these portlets into one portlet application which can be deployed on the portal server.Portal development as a way to integrate the different web-based applications for supporting deliveries of information and services.JSR-286 is the Java Portlet specification v2.0 as developed under the JCP and created in alignment with the updated version 2.0 of WSRP. It was released in June 2008. It was developed to improve on the short-comings on version 1.0 of the specification, JSR-168. Some of its major features include:
Inter-Portlet Communication through events and public render parametersServing dynamically generated resources directly through portletsServing AJAX or JSON data directly through portletsIntroduction of portlet filters and listenersJSR-362 is the Java Portlet specification v3.0. Currently it is in early draft status.