Prévia do material em texto
1. Uma das principais classes em uma aplicação desenvolvida pelo framework Java Server Faces (JSF) são os Managed Beans, os quais servem para intermediar as camadas View e Model da aplicação. Neste sentido, uma das funcionalidades de uma classe Managed Bean é receber requisições da tela e enviá-las para a camada Model. Neste contexto, analise o código-fonte a seguir e disserte explicando os códigos-fonte das linhas 9, 10 e 17. Resposta Esperada: Na linha 9, é especificada a nomenclatura que o Managed Bean será chamado na página HXTML. Na linha 10, é especificada a anotação "SessionScoped", definindo que a classe será criada em memória (instanciada) uma única vez enquanto durar a sessão do usuário atual, e quando fechada a sessão do usuário, este objeto será eliminado da memória (destruído). Na linha 17, é implementado um método que retorna o valor do atributo "mensagem" do Managed Bean "HelloWorldSessionMB", imprimindo no console o valor do atributo quando for método invocado. 2. Com o surgimento da tecnologia EJB, do JAVAEE, as classes Session Beans foram disponibilizadas com muitas facilidades, com anotações, injeção de dependência e inversão de controle. As aplicações que utilizam a arquitetura de desenvolvimento definida pelo EJB automaticamente recebem muitos recursos do servidor de aplicação. Disserte sobre o porquê a utilização de um Stateless Session Bean não é aconselhável para a funcionalidade de carrinho de compras em memória, uma vez que o cliente de um site de e-commerce pode adicionar produtos a uma sacola, que é armazenada na memória principal. Resposta Esperada: Um carrinho de compra precisa ser armazenado em um objeto em memória, mas este objeto não pode ser perdido a cada requisição, assim como os valores de seus atributos não podem ser limpos, no caso de uma instância da classe, por exemplo. Uma classe Stateless Session Bean não mantém o estado conversacional entre as chamadas de método, caso haja um atributo no EJB, este atributo é perdido toda vez que o EJB é chamado. Neste sentido, com um objeto do tipo Stateless Session Bean, a cada requisição um novo bean pode ser instanciado, perdendo os valores gravados.