corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Noções básicas sobre beans gerenciados e de escopo

Neste tutorial, você usa a funcionalidade de desenvolvimento de aplicações do NetBeans IDE com JSF Visual Web para criar uma aplicação que demonstra como usar os escopos aplicação, sessão e solicitação para gerenciar os objetos da aplicação. O escopo é a disponibilidade (ou o contexto) de um objeto e seu tempo de vida desejado em uma aplicação Web.

A aplicação Web criada neste tutorial usa um objeto no escopo de aplicação para registrar os votos e usa um objeto no escopo de sessão para garantir que o usuário vote somente uma vez por sessão. A aplicação usa um objeto no escopo de solicitação para exibir a hora em que o usuário enviou o voto. A hora é armazenada no escopo de solicitação porque a aplicação não precisa do valor depois que a resposta for enviada ao navegador do cliente.

Duração esperada: 45 minutos

Conteúdo

 O conteúdo desta página se aplica ao IDE NetBeans 6.0 e 6.1  

Para seguir este tutorial, você precisa dos seguintes recursos e softwares.

Software ou recurso Versão necessária
NetBeans IDE Web e Java EE versão 6.1 ou 6.0
Java Development Kit (JDK) Versão 6 ou
versão 5
Componentes do JavaServer Faces/
Plataforma Java EE
1.2 com Java EE 5* ou
1.1 com J2EE 1.4
Servidor da aplicação GlassFish V2
Banco de dados Viagem Não é necessário

* Para tirar vantagem dos recursos Java EE 5 do NetBeans IDE , use um servidor da aplicação que seja totalmente compatível com a especificação Java EE 5, tal como o Servidor da aplicação GlassFish V2 UR2. Se você estiver usando um servidor diferente, consulte as Notas de versão e as Perguntas freqüentes para saber problemas conhecidos e soluções alternativas. Para obter informações detalhadas sobre os servidores suportados e a plataforma Java EE, consulte as Notas de versão.

Observação para usuários do NetBeans IDE 6.1:

  • Criar um projeto no NetBeans 6.1 inclui novas opções que podem ser deixadas como padrão. Por exemplo, a caixa de verificação Usar pasta dedicada para armazenar bibliotecas pode ficar desmarcada.
  • Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

Sobre escopos

Enquanto o usuário estiver em uma página, os valores do componente serão lembrados mesmo quando a página for reexibida, como quando o usuário clica em um botão que retorna nulo. No entanto, quando o usuário sai da página, os valores do componente desaparecem.

Para tornar os valores disponíveis para outras páginas, ou para a mesma página, caso o usuário retorne à página, você precisa armazenar os valores. Quando você cria um projeto a partir do IDE, ele cria três Beans gerenciados para armazenar os valores:

  • RequestBean1
  • SessionBean1
  • ApplicationBean1

A figura seguinte mostra a janela Navegador com os beans gerenciados padrão.

Beans gerenciados padrão

Um bean gerenciado é um objeto JavaBeans que uma aplicação Web JavaServer Faces instancia e armazena nos escopos de solicitação, de sessão e de aplicação. A aplicação Web armazena RequestBean1 no escopo de solicitação, SessionBean1 no escopo de sessão e ApplicationBean1 no escopo de aplicação.

Para adicionar uma propriedade a um desses beans gerenciados, clique duas vezes no bean na janela Navegador e digite a declaração da propriedade no código-fonte. Clique com o botão direito do mouse em qualquer lugar no editor Java e escolha Refatoração > Encapsular campos. Em seguida, selecione a propriedade na lista, selecione os métodos a serem adicionados, e clique em Refatoração.

Antes de criar a propriedade do bean para armazenar um valor, você deve determinar o escopo apropriado para o valor da propriedade. Uma vez que vários usuários podem acessar uma aplicação Web ao mesmo tempo, é necessário usar o menor escopo possível para fazer a melhor utilização dos recursos do servidor. A figura abaixo ilustra a duração de cada tipo de escopo.

  • O escopo de aplicação dura até o servidor parar a aplicação. Os valores que você armazena em um bean da aplicação estão disponíveis em cada sessão e em cada solicitação que usa o mesmo mapa de aplicação.
  • O escopo de sessão começa quando o usuário acessa pela primeira vez uma página na aplicação Web e termina quando a sessão do usuário expira devido à inatividade, ou quando a aplicação Web invalida a sessão, como, por exemplo, chamando session.invalidate().
  • O escopo de solicitação começa quando o usuário envia a página e termina quando a resposta é totalmente processada, qualquer que seja a página.
Escopos da aplicação Web

Por exemplo, a aplicação Web tem uma lista suspensa de tipos de medidas (pixels, centímetros e polegadas). Talvez você queira armazenar a lista de opções em ApplicationBean1, para que a lista seja compartilhada por todas as sessões de usuário simultâneas. Por outro lado, você pode querer armazenar o nome de logon do usuário em SessionBean1, para que o nome esteja disponível para todas as páginas que o usuário acessar em tal sessão. Se você não precisar de outras informações além da duração da solicitação atual, você pode economizar espaço colocando a propriedade em RequestBean1.

Aviso: não é possível usar um bean de solicitação, caso você tenha incluído o elemento <redirect> dentro do elemento <navigation-case> de uma regra de navegação. (Veja essas regras ao clicar no botão XML no editor de navegação de página). Quando a página é enviada, o elemento <redirect> redireciona a página e termina a solicitação antes que uma página subseqüente possa usar qualquer um dos valores armazenados no bean de solicitação.

Quando você cria uma página no IDE, o código-fonte Java do bean de página contém métodos para acessar os objetos RequestBean1, SessionBean1 e ApplicationBean1. Para acessar as propriedades nesses Beans gerenciados, você usa um código semelhante às instruções do seguinte fragmento de código.

Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

Amostra de código 1: Acessando uma propriedade de bean de aplicação
ApplicationBean1 appBean = getApplicationBean1();
Option[] choices = appBean.BallotOptions();

A aplicação Web instancia um bean gerenciado, dentro do escopo de tal bean, na primeira vez que uma página acessar uma propriedade no bean gerenciado. Por exemplo, não existe uma instância de um objeto SessionBean1 para a sessão do usuário até que o usuário acesse uma página que faça referência a uma propriedade SessionBean1. Uma instância de um objeto ApplicationBean1 é criada na primeira vez que uma página de qualquer sessão acessa o bean da aplicação, e persiste enquanto a aplicação Web está em execução.

Dica: Para adicionar beans gerenciados extras:

  1. Na janela Projetos, expanda o nó Pacotes de origem, clique com o botão direito do mouse no nó do pacote.
  2. Escolha Novo > Outro, selecione a categoria JavaServer Faces e o escopo em Tipos de arquivo, e clique em Próximo.
  3. Digite o nome do arquivo do novo bean gerenciado e clique em Terminar.

    O novo bean gerenciado aparece na janela Projetos sob o nó Pacotes de origem.

Adicionando propriedades a Beans gerenciados

As páginas nesta aplicação Web requerem acesso aos seguintes valores, que você cria nesta seção:

  • ballotOptions. Uma propriedade de matriz que contém a lista das opções de cédula. Uma vez que a lista permanece igual para todas as sessões, essa propriedade é colocada no escopo de aplicação.
  • tally. Uma propriedade de mapa de hash que acumula todos os votos da sessão. Uma vez que deve ser preservado nas sessões, vai no escopo da aplicação.
  • hasVoted. Uma propriedade booleana que controla se o usuário votou. Por precisar preservar o valor no decorrer de várias solicitações em uma única sessão, a aplicação armazena o valor no escopo de sessão.
  • timestamp. Uma propriedade Date na qual a aplicação registra o tempo em que o usuário envia um voto, a ser usada pela próxima página. Por não precisar do valor depois que a próxima página for processada, a aplicação armazena o valor no escopo de solicitação.

Complete as etapas seguintes para adicionar as propriedade aos Beans gerenciados:

  1. No menu principal, escolha Arquivo > Novo arquivo.
  2. No assistente para Novo projeto, selecione Web na lista Categorias e Aplicação Web na lista Projetos e clique em Próximo.
  3. Chame o projeto de Scopes.

    Observação para usuários do NetBeans IDE 6.1: Criar um projeto no NetBeans 6.1 inclui novas opções que podem ser deixadas como padrão. Por exemplo, a caixa de verificação Usar pasta dedicada para armazenar bibliotecas pode ficar desmarcada.

  4. Se você estiver usando o NetBeans IDE 6.1, clique em Próximo; caso contrário, continue na etapa 5.
  5. No painel Frameworks, marque JavaServer Faces Visual Web e clique em Terminar.

    O arquivo Page1.jsp do projeto Escopos abre no Visual Designer.
  6. Na janela Navegador, clique duas vezes em ApplicationBean1.

    Isso abre ApplicationBean1.java para edição.
  7. Em seguida, você adiciona as propriedades do bean de aplicação. No construtor public class ApplicationBean1 extends AbstractApplicationBean, adicione as seguintes declarações:
    private Option[] ballotOptions;
    private HashMap tally;
  8. Clique com o botão direito do mouse no editor Java e escolha Corrigir importações. Por haver mais de um pacote que contém a classe Option, a caixa de diálogo Corrigir importações é exibida.

    • Para um projeto de Java EE 5, selecione com.sun.webui.jsf.model.Option.
    • Para um projeto de J2EE 1.4, selecione com.sun.rave.web.ui.model.Option.
  9. Clique com o botão direito do mouse no editor Java e selecione Refatoração > Encapsular campos.
  10. Na caixa de diálogo Encapsular campos, marque as caixas para criar métodos getter e setter para as propriedades ballotOptions e tally, como mostrado na figura seguinte.

    Caixa de diálogo Encapsular campos
  11. Efetue rolagem até o método init e adicione o código abaixo mostrado em negrito na parte inferior do método.

    Amostra de código 2: Código para adicionar o método init do bean de aplicação
            // TODO - add your own initialization code here
            // populate ballot items
            ballotOptions = new Option[] {
                new Option("java", "Java Programming Language"),
                new Option("cpp", "C++"),
                new Option("fortran", "Fortran")
            };
    
            // initialize counters for ballot choices
            tally = new HashMap();
            for (int i=0; i < ballotOptions.length; i++) {
                this.tally.put(ballotOptions[i].getValue(), "0");
            }
  12. Adicione os seguintes métodos no final do arquivo, antes da última chave final.

    Amostra de código 3: Métodos de contagem de votos do bean de aplicação
        /**
         * Contador de voto da propriedade tally.
         */
        public void incrementTallyFor(String category) {
            int count = getTallyFor(category);
            count++;
            this.tally.put(category, Integer.toString(count));
        }
    
        /**
         * Getter for value in property tally.
         * @param category HashMap key
         * @return Value to which the specified key is mapped
         */
        public int getTallyFor(String category) {
            String stringCount = (String) this.tally.get(category);
            if (stringCount == null) {
                return 0;
            } else {
                int count = Integer.valueOf(stringCount).intValue();
                return count;
            }
        }
    
  13. Pressione Ctrl-S para salvar as alterações e Ctrl-F4 para fechar o arquivo.
  14. Na janela Navegador, clique duas vezes em SessionBean1. Isso abre SessionBean1.java para edição.

    Observação: se a janela Navegador não estiver aberta, clique na aba Page1 na área de edição e clique em Design na barra de ferramentas de edição. A janela Navegador aparece quando o IDE está no modo de design.
  15. Em seguida, adicione as propriedades do bean de sessão. No construtor public class SessionBean1 extends AbstractSessionBean, adicione a seguinte declaração:
    private boolean hasVoted;
  16. Clique com o botão direito do mouse no editor Java e selecione Refatoração > Encapsular campos.
  17. Na caixa de diálogo Encapsular campos, marque as caixas para criar os métodos getter e setter da propriedade hasVoted e clique em Refatoração.
  18. Efetue rolagem até o método init e adicione o código abaixo mostrado em negrito na parte inferior do método.

    Amostra de código 4: Código para adicionar o método init do bean de sessão
            // TODO - adicione seu próprio código de inicialização aqui
            setHasVoted(false);
  19. Pressione Ctrl-S para salvar as alterações e Ctrl-F4 para fechar o arquivo.
  20. Na janela Navegador, clique duas vezes em RequestBean1. Isso abre RequestBean1.java para edição.
  21. Adicione as propriedades do bean de solicitação. No construtor public class RequestBean1 extends AbstractRequestBean, adicione a seguinte declaração:
    private java.util.Date timestamp;
  22. Clique com o botão direito do mouse no editor Java e selecione Refatoração > Encapsular campos.
  23. Na caixa de diálogo Encapsular campos, marque as caixas para criar os métodos getter e setter da propriedade timestamp e clique em Refatoração.
  24. Clique na aba Page1 e em seguida, no botão Design de Page1. Verifique a janela Navegador para certificar-se de que as propriedades no bean de solicitação, de sessão e de aplicação correspondam à figura abaixo.

    Propriedades do bean de solicitação, sessão e aplicativo

Criando a página inicial

Siga as etapas desta seção para criar a página mostrada em execução em um navegador na figura seguinte. Se o usuário clicar no botão Enviar voto, a página envia o voto do usuário. Quando o usuário tiver votado, o botão é desativado para evitar que o usuário vote novamente nessa sessão.

Figura 5: Page1

Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Clique em Page1 na barra de ferramentas de edição.
  2. Arraste um componente Rótulo da seção Básico da Paleta, solte-o na parte superior central da página, e defina o texto do rótulo como Pesquisa do leitor: Qual é a sua linguagem de programação favorita?.
  3. Solte o componente Grupo de botões de opção debaixo do componente Rótulo.
  4. Na janela Propriedades, defina o id do componente como voteRBGroup.
  5. Clique com o botão direito do mouse no componente Grupo de botões de opção e escolha Vincular aos dados no menu pop-up.

    A caixa de diálogo Vincular aos dados é exibida.
  6. Na aba Vincular a um objeto da caixa de diálogo, selecione ApplicationBean1 > ballotOptions e clique em OK.
  7. Solte um Botão no componente Grupo de botões de opção e defina o texto como Visualizar resultados.

    Observação: existe um problema conhecido que afeta a largura do componente Botão do JSF 1.2 no IE7. A solução alternativa é colocar o componente Botão em um componente de layout (Painel de grade, Painel de grupo ou Painel de layout). Redimensionar o componente de layout redimensiona automaticamente o componente Botão.

  8. Na janela Propriedades, defina id como viewButton.
  9. Clique no botão de reticências botão de reticências da propriedade action, selecione viewButton_action na lista suspensa, e clique em OK.

    O IDE adiciona o manipulador de eventos viewButton_action, que retorna nulo.
  10. Solte um componente Botão à direita do botão Visualizar resultados e defina o texto como Enviar voto.
  11. Na janela Propriedades, defina id como voteButton.
  12. Clique no botão de reticências botão de reticências da propriedade disabled.

    Isso abre a caixa de diálogo de vinculação de propriedade da propriedade.
  13. Na caixa de diálogo, selecione Usar vinculação, clique em Vincular a um objeto, e selecione SessionBean1 > hasVoted, como mostrado na figura seguinte e, em seguida, clique em OK.

    <>Vinculando a propriedade desativada
  14. Clique duas vezes no botão Enviar voto.

    O IDE adiciona o manipulador de ações voteButton_action, abre o código-fonte Java da página e exibe o método.
  15. Substitua o corpo do método pelo código seguinte mostrado em negrito.

    Amostra de código 5: Método voteButton_action
        public String voteButton_action() {
    
            if (voteRBGroup.getSelected() == null) {
                return null;
            }
    
            // Tallies are kept across all user sessions
            String votedFor = voteRBGroup.getSelected().toString();
            getApplicationBean1().incrementTallyFor(votedFor);
    
            // User can only vote one time per session
            getSessionBean1().setHasVoted(true);
    
            // Don't need the timestamp after the next request ends
            Date now = new Date();
            getRequestBean1().setTimestamp(now);
    
            return null;
        }
  16. Clique com o botão direito do mouse no código-fonte e escolha Corrigir importações no menu pop-up.
  17. Selecione java.util.Date na lista suspensa Data, e clique em OK.

Criando a página de resultados

Siga estas etapas para criar a página que é mostrada em execução no navegador na figura abaixo. Esta página exibe o cômputo atual. O usuário pode clicar no botão Atualizar resultados para obter o cômputo mais recente, que inclui os votos enviados por outros usuários desde o momento em que a página foi exibida pela última vez.

Resultados

Observação: Vinculação sob demanda dos recursos do NetBeans IDE 6.1. Onde os componentes requerem codificação de Java, agora você deve adicionar manualmente o atributo de vinculação aos componentes em uma aplicação Visual Web JSF. Para fazê-lo, clique com o botão direito do mouse em cada componente e escolha Adicionar atributo de vinculação. Para obter mais informações, consulte o On-demand Binding Attribute Wiki.

  1. Na janela Projetos, clique com o botão direito do mouse no nó Páginas da Web em seu projeto Escopos, escolha Novo > Página JSF Visual Web , chame o projeto de Resultados, e clique em Terminar para criar a página.
  2. Solte um componente Rótulo na parte central superior da página Resultados e defina o texto como Resultados.
  3. Solte um componente Botão à esquerda do componente Rótulo e defina seu texto como Início.
  4. Defina o id do componente Botão como homeButton.
  5. Clique no botão de reticências botão de reticências da propriedade action, selecione homeButton_action na lista suspensa Manipulador, e clique em OK.
  6. Solte um componente Botão à direita do componente Rótulo e defina seu texto como Atualizar resultados.
  7. Defina o id do componente Botão como refreshButton.
  8. Clique no botão de reticências botão de reticências da propriedade action, selecione refreshButton_action na lista suspensa Manipulador, e clique em OK.
  9. Arraste um componente Painel de grade da seção Layout da Paleta e solte-o abaixo do componente Rótulo.
  10. Na janela Propriedades, defina a propriedade cellspacing como 10 e a propriedade columns como 1.
  11. Arraste um componente Texto estático para dentro do componente Layout de grade. Quando o contorno do componente Layout de grade se tornar uma linha azul sólida, solte o componente Texto estático, como mostrado na figura abaixo.

    Soltando um componente em um componente Painel de grade
  12. Na janela Propriedades, defina o id do componente Texto estático como resultsST. Deixe a propriedade text em branco.
  13. Desmarque a caixa de verificação da propriedade escape.

    Depois, você adiciona o código para inserir HTML na propriedade text do componente. Ao definir a propriedade escape como falso, o código HTML será passado sem alteração para o navegador.
  14. Arraste outro componente Texto estático para o componente Painel de grade e, quando o contorno do componente Layout de grade se tornar uma linha azul sólida, solte o componente Texto estático.
  15. Defina o id do componente Texto estático como messageST. Deixe a propriedade text em branco.
  16. Clique em Java na barra de ferramentas de edição para exibir o código-fonte Java da página.
  17. Na janela Navegador, clique duas vezes no método prerender para abri-lo no editor Java e, em seguida, adicione o código seguinte mostrado em negrito.

    Amostra de código 6: Método prerender
        public void prerender() {
          // Display latest poll results
          ApplicationBean1 appBean = getApplicationBean1();
          Option[] choices = appBean.getBallotOptions();
          String str = "<table border=\"0\" cellpadding=\"5\">";
          for (int i = 0; i < choices.length; i++) {
            int count =
              appBean.getTallyFor(choices[i].getValue().toString());
            str = str + "<tr><td>" +
              choices[i].getLabel() +
              "</td><td>" +
              count +
              "</td></tr>";
          }
          str = str + "</table>";
          resultsST.setText(str);
    
          RequestBean1 reqBean = getRequestBean1();
          Date timestamp = (Date) reqBean.getTimestamp();
          if (timestamp != null) {
            messageST.setText("Your vote was recorded at " +
              (String)DateFormat.getTimeInstance(DateFormat.LONG).format(
              timestamp));
          }
        }

    Este código cria uma tabela HTML que contém o cômputo de cada voto e coloca esta tabela na propriedade text do primeiro componente Texto estático. Se o usuário acabou de votar, o segundo componente Texto estático exibe a data e a hora em que o voto foi registrado.
  18. Clique com o botão direito do mouse no código-fonte e escolha Corrigir importações no menu pop-up.
  19. Na lista suspensa Data, selecione java.util.Date.
  20. Selecione na lista suspensa Opção, de acordo com a versão de Java EE que você está usando para seu projeto:

    • Para um projeto de Java EE 5, selecione com.sun.webui.jsf.model.Option.
    • Para um projeto de J2EE 1.4, selecione com.sun.rave.web.ui.model.Option.

Especificando a navegação de página

Siga estas etapas para especificar a navegação de página dos botões, como mostrado na figura abaixo.

Editor de fluxo de página
  1. Na área de edição, clique na aba Resultados e clique em Design para exibir a página no Visual Designer.
  2. Clique com o botão direito do mouse em um lugar vazio da página e escolha Navegação de página no menu pop-up.

    Isso exibe o arquivo faces-config.xml no editor de fluxo de página
  3. Clique no sinal + no ícone Page1.jsp para aumentar o ícone.
  4. Clique e arraste de viewButton para Results.jsp a fim de criar um conector entre o botão e a página Resultados.
  5. Clique duas vezes no rótulo do conector a fim de mudar para o modo de edição, digite exibir resultados e pressione Enter.
  6. Clique e arraste de voteButton para Results.jsp.
  7. Clique duas vezes no rótulo do conector para mudar para o modo de edição, digite voto e pressione Enter.
  8. Clique no sinal + no ícone Results.jsp para aumentar o ícone.
  9. Clique e arraste de homeButton para Page1.jsp.
  10. Clique duas vezes no rótulo do conector a fim de mudar para o modo de edição, digite início, e pressione Enter.

Executando a aplicação

Para permitir várias sessões do mesmo navegador, configure a aplicação para finalizar cada sessão depois de um minuto de inatividade. Em seguida, implante e execute a aplicação.

  1. Na janela Arquivos, expanda Escopo > Web >WEB-INF, como mostrado na figura abaixo.

    Janela Arquivos mostrando o arquivo web.xml realçado
  2. Clique duas vezes em web.xml para abrir o arquivo no editor.
  3. Digite 1 na caixa de texto Tempo-limite da sessão, como mostrado na figura abaixo.

    Configurando o tempo-limite de sessão no editor visual de theweb.xml
  4. Salve e feche o arquivo.
  5. Clique no botão Executar projeto principal ícone da barra de ferramentas Executar projeto na barra de ferramentas principal.
  6. Quando a página inicial for exibida, selecione um botão de opção e clique em Enviar voto.

    O navegador exibe a página de resultados. Observe que a página de resultados mostra a hora em que você enviou o voto.
  7. Clique em Início para voltar à página de resultados.

    O botão Enviar voto está desativado porque você já votou.
  8. Clique em Exibir resultados.

    Observe que a página de resultados já não mostra a hora em que você votou. Isto ocorre porque o bean de solicitação anterior está fora do escopo e um novo bean de solicitação foi instanciado.
  9. Espere um minuto para que a sessão expire. Em seguida, digite a URL seguinte na caixa de texto de endereço do navegador, e pressione Enter para iniciar uma nova sessão: http://localhost:8080/Scopes. Talvez você tenha que alterar 8080 por outra porta se não estiver usando a configuração de servidor padrão.
  10. Vote novamente e verifique os resultados. Os resultados devem incluir seu primeiro voto.
  11. Se tiver outra aplicação no navegador, inicie este navegador, digite http://localhost:8080/Scopes na caixa de texto de endereço e pressione Enter. Envie outro voto.
  12. No primeiro navegador, clique em Atualizar resultados na página de resultados.

    Os resultados devem incluir o voto enviado a partir do segundo navegador.

Fazendo mais

Usando o que você aprendeu neste tutorial, construa uma aplicação que solicite um nome de logon. Adicione uma página que exiba o número de usuários exclusivos que acessaram a aplicação Web.

Resumo

Você usa o bean de aplicação, o bean de sessão e o bean de solicitação para armazenar informações a serem usadas por outras páginas.

  • Use o bean de aplicação para informações que se aplicam a todas as sessões do usuário, tal como uma lista de opções estática de um componente Lista suspensa.
  • Use o bean de sessão para armazenar informações a serem usadas por outras páginas durante a sessão do usuário, tal como o nome de logon do usuário.
  • Se você precisar de informações que serão usadas apenas pela próxima página, use o bean de solicitação.

    Observação: não é possível usar o bean de solicitação se você tiver incluído o elemento <redirect> dentro do elemento <navigation-case> de uma regra de navegação.

  • Os beans de solicitação, de sessão ou de aplicação são instanciados assim que a página acessa uma de suas propriedades. O bean é destruído quando o seu escopo termina.
  • Para adicionar uma propriedade ao bean de sessão, clique com o botão direito do mouse no nó bean de sessão na janela Esboço e escolha Adicionar > Propriedade. Use etapas semelhantes para adicionar uma propriedade ao bean de solicitação ou ao bean de aplicação.

Veja também


Esta página foi modificada pela última vez em 15 de abril de 2008



Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems