The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers.