Complementando o comentário acima, um Portlet segue o seguinte ciclo de vida:
-
Um administrador de portal usa uma interface administrativa qualquer para instanciar uma nova aplicação em portlet por um arquivo WAR, por exemplo, ou instalar a cópia de um outro portlet. Qualquer uma dessas ações cria uma instância concreta (um portlet), parametrizada por um único objeto PortletSettings. Podem haver diversas instâncias para um único portlet. O objeto PortletSettings tem acesso rw e persistência. Um mesmo Portlet pode ser usado por diverssos usuários.
-
O portlet é colocado na página pelo usuário (pull) ou pelo administrador (push). Isso cria uma instância de um portlet concreto, parametrizado por um único objeto PortletData. Este objeto guarda informações persistentes para um portlet adicionado à página.
-
O escopo de um PortletData depende do escopo da página em que o portlet concreto se encontra:
-
Se um administrador coloca um portlet concreto aninhado numa página, então o objeto PortletData conterá dados para o grupo de usuários específicos daquela página. Contudo, caso usuáiros tenham permissão de edição, então uma nova instância de portlet deve ser criada para cada usuário que realizar edição. Nesse caso, o PortletData conterá dados do usuário.
-
De maneira análoga, se um portlet concreto for aninhado numa página de usuário, seus dados serão restritos àquele usuário.
Quando um usuário acessa uma página contendo um portlet, isso cria uma instância do portlet do usuário. Quando o usuário acessa um portal, o servidor do portal cria um PortletSession para cada portlet do usuário. Uma instância de portlet do usuârio é, portanto, uma instância concreta de portlet parametrizada por um PortletSession, podendo existri muitas instâncias de portlet de usuário por instância concreta de portlet.
Mais informações: http://flylib.com/books/en/3.366.1.39/1/