La Java Portlet Specification define un contrato entre el contenedor del portlet y el portlet, además de proveer un modelo de programación conveniente para los desarrolladores de portlets en Java.
La Java Specification Request V1.0 fue desarrollada bajo el Java Community Process como Java Specification Request JSR 168.
Esta versión de la especificación introduce el modelo básico de programación de portlets con los siguientes elementos:
JSR-286 esta es la versión 2.0 de Java Portlet specification desarrollada según el JCP y creada en alineación con la versión 2.0 de Servicios Web para Portlets Remotos (en inglés Web Services for Remote Portlets WSRP).[1] Este fue desarrollado para mejorar las deficiencias de la versión 1.0 de la especificación JSR-168. Algunas de las características más importantes son:[2]