No ciclo de vida do portlet, o método que permite liberar r...

Próximas questões
Com base no mesmo assunto
Q111543 Programação
No ciclo de vida do portlet, o método que permite liberar recursos e atualizar os dados persistentes que pertencem a este portlet é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - destroy()

Para entender o motivo pelo qual a alternativa D é a correta, é importante familiarizar-se com o ciclo de vida de um portlet, que é um componente de software usado em portais da web para permitir a interoperabilidade entre diferentes softwares. Portlets são gerenciados por um Portlet Container que chama os métodos do ciclo de vida em momentos específicos.

O método destroy() é invocado pelo Portlet Container para permitir que o portlet execute procedimentos de finalização. Estes procedimentos incluem liberar recursos que o portlet possa estar segurando (como objetos em memória) e a chance de atualizar quaisquer dados persistentes que ele gerencia antes de ser retirado de serviço. O método é chamado apenas uma vez e é a última chamada que o portlet receberá, marcando o fim de seu ciclo de vida.

As outras opções listadas correspondem a diferentes partes do ciclo de vida de um portlet ou são construtores:

  • GenericPortlet() seria um construtor padrão se existisse. No entanto, é comum que os portlets estendam a classe GenericPortlet, mas esta classe não é um método do ciclo de vida.
  • ProcessAction() é uma invocação que ocorre quando uma ação é disparada no portlet, como o envio de um formulário. Não está relacionado à liberação de recursos ou ao fim do ciclo de vida de um portlet.
  • render() é chamado para gerar o conteúdo a ser exibido pelo portlet. Este método é chamado frequentemente durante a vida do portlet e não está associado à liberação de recursos ou ao encerramento do ciclo de vida.
  • init() é o primeiro método chamado no ciclo de vida do portlet, servindo para inicializar o portlet antes de ele começar a atender requisições. Também não está relacionado ao encerramento do ciclo de vida ou liberação de recursos.

Portanto, a alternativa correta é a D, pois o método destroy() é responsável por finalizar o ciclo de vida do portlet, liberando os recursos e atualizando dados persistentes que ele possa ter gerenciado.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Para se construir um Portlet deve se implementar a interface Portlet ou estender a classe GenericPortlet.

O Portlet é como se fosse uma miniaplicação dentro de um portal, como uma enquete, um quadro de notícias ou um mural de recados. Dessa forma pode-se reutilizar esses portlets em diversos portais ou em diversos locais do portal.

Os Portlets geralmente utilizam JSF (Java Server Faces) na camada de visão.

APACHE PLUTO é a implementação de referência dos PORTLETS.

-- Sobre os Métodos acima --

GenericPortlet () deve ser o construtor da classe abstrata que o Portlet pode estender.
processAction () está definido na interface Portlet e permite ao portlet receber uma requisição (ActionRequest) e definir uma resposta (ActionResponse )
render() é o método responsável por obter o estado atual do portlet e gerar o conteúdo de resposta.
init() colocar o portlet está em serviço.
destroy() coloca o portlet fora de serviço. MAS PRIMEIRO, ele pode:
- liberar recursos como memória, apontadores de arquivo ou threads.
- garantir que o estado persistente está sincronizado com o estado atual do portlet.


Complementando o comentário acima, um Portlet segue o seguinte ciclo de vida:


  1. 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.

     

  2. 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. 

  3. O escopo de um PortletData depende do escopo da página em que o portlet concreto se encontra:

    1. 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.

    2. 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/

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo