Arquivo de Códigos - JSF - Construindo um sistema de login de usuários (passo-a-pas...

Page 1 of 5

Home | Consultoria | Exemplos e Códigos-Fonte | Quem Sou | Fale Comigo

Pesquisar

Linguagens
Adobe AIR ActionScript Adobe Flex AJAX C C++ C# (CSharp) Delphi HTML - Dynamic HTML Java Java Servlets JavaScript JSP - Java Server Pages Perl PHP PHP-GTK Python Ruby VB.NET

Você está aqui: Inicio -> Artigos e Tutoriais -> JSF -> Construindo um sistema de login de usuários (passo-apasso) usando JavaServer Faces

Construindo um sistema de login de usuários (passo-a-passo) usando JavaServer Faces
Você precisa de um freelancer, códigos-fonte e exemplos completos? Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui. Aprenda ou aprimore sua programação em Java Quer aprender Java? Comece instalando, testando o SDK e escrevendo o seu primeiro programa Java Aprenda a manipular bases de dados MySQL usando Java

Referências Tipos de dados da linguagem Java Palavras-chave e palavras reservadas da linguagem Java Tipos de dados da linguagem PHP

Frameworks
CodeIgniter GTK+ Hibernate jQuery jQuery UI JSF - Java Server Faces Qt Ruby On Rails Struts 2 wxWidgets Zend Framework

Não encontrou o que estava procurando? Experimente nossa busca Termo(s) da busca: 1 - O que é JavaServer Faces? No decorrer dos últimos anos, o Java se estabeleceu como a tecnologia de ponta para o desenvolvimento de aplicações web. Desenvolvedores estão usando tecnologias tais como Servlets e JSP para desenvolver aplicações web robustas e de escalabilidade suportada com grande sucesso. Mas, à medida que as aplicações web se tornam mais complexas, alguns desenvolvedores saem em busca dos bons e velhos frameworks de interface gráfica do usuário (GUI) com seus conjuntos de componentes ricos e poderosos e seu modelo de desenvolvimento guiado por eventos. Servlets e JSP têm nos servido bem, mas a natureza sem estado do HTTP e seu modelo simples de requisição/resposta força os desenvolvedores a travar uma guerra com os detalhes que são gerenciados nos bastidores por frameworks GUI tais como AWT/Swing, o framework GUI padrão para Java. Para tornar mais fácil o desenvolvimento de sofisticadas interfaces de usuário para aplicações web, projetos open source e empresas comerciais desenvolveram frameworks que se aproximam o máximo dos frameworks GUI tradicionais. Alguns exemplos notáveis são o Barracuda, da Enhydra, O Tapestry, da Apache, o UIX da Oracle e o JATO, da Sun. Na primavera de 2001, um grupo Java Community Process (JCP) foi formado com representantes da maioria destes esforços a fim de criar um uma solução padrão que todos os frameworks pudessem usar. O resultado é JavaServer Faces. A versão 1.0 da especificação foi lançada em março de 2004. 2 - O que preciso para desenvolver em JavaServer Faces? Para desenvolver em JavaServer Faces você precisa no mínimo de: a) O Java Development Kit (SDK). A versão mais recente pode ser baixada de http://www.java.sun.com. b) Um servidor web ou container que suporte Servlet 2.5 e JavaServer Pages 2.1. Para este artigo nós usamos o Tomcat 6.0, que pode ser baixado de http://tomcat.apache.org/download-60.cgi.

Pesquisar

Bancos de Dados
MySQL

Ferramentas
Avaliador de Expressões Regulares em JavaScript Tabela Cores HTML I Tabela Cores HTML II

Concurso da Prefeitura de c) Uma implementação do JavaServer Faces. A versão mais recente durante a autoria deste tutorial é 1.2 São Bernardo do Campo - SP e pode ser baixada de http://java.sun.com/javaee/javaserverfaces/download.html 2010 Concurso da Prefeitura de O passo seguinte é criar uma aplicação web para iniciar o projeto que vamos desenvolver. Acesse o artigo Estrutura básica de uma aplicação web desenvolvida em Java se você ainda não sabe como montar Santos - SP 2010 Concurso da Prefeitura de implementação JSF que você baixou e copie todo o seu conteúdo (jsf-api.jar, jsf-impl.jar, etc) para a Pato Branco - PR 2010 pasta lib de sua aplicação web. Certifique-se também de incluir os arquivos jstl.jar e standard.jar. Concurso da Prefeitura de 3 - Desenvolvendo o projeto proposto Redentora - RS 2010
Vamos botar a mão na massa agora. O que vamos desenvolver é um sistema de login de usuários. O usuário informará seu nome e senha e a aplicação web verificará se os dados são válidos e o direcionará para uma página de sucesso ou erro. É um projeto básico, mas, se bem entendido, abrirá as portas para Concurso da Prefeitura de o desenvolvimento de aplicações mais complexas. Vale lembrar também que a leitura e entendimento de Quixaba - PB 2010 todos os conceitos apresentados neste artigo servirão de base para o entendimento dos demais. a estrutura de uma aplicação web usando tecnologias Java. Em seguida vá ao diretório lib da

Concurso do DER - RO 2010

Concurso da Prefeitura de Basicamente uma aplicação web usando JSF é composta de páginas HTML, JSP, Servlets (se necessário), Manaus - AM 2010 JavaBeans, Classes de negócios e os arquivos de configuração faces-config.xml e web.xml. Vamos
começar criando o JavaBean que nos permitirá passar os dados informados pelo usuário da parte view Dicas | Vídeo Aulas (visão) da aplicação para a parte model (modelo). Se você ainda não se sente confortável com o modelo Apostilas www.viconcursos.com MVC, clique aqui e veja nosso artigo sobre este assunto. Segue o código para UsuarioBean: Código para UsuarioBean.java package estudos;

http://www.arquivodecodigos.net/principal/diretorios/java_server_faces/artigos_tutoria... 11/8/2010

xml possui algumas seções que merecem destaque.com/xml/ns/javaee http://java.senha.faces</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.isUsuarioValido(nome. Observe agora o método verificarUsuario: public String verificarUsuario(){ if(Utilidades. String senha){ String user = "osmar". } public void setSenha(String se){ this. Antes revise-o cuidadosamente e veja que é um JavaBean comum.sun. public class Utilidades{ public static boolean isUsuarioValido( String usuario. o fato de o usarmos com JSF não adiciona nada de extraordinário em sua estrutura.senha = se. estes valores seriam verificados em uma base de dados.sun. private String senha. ou seja..Construindo um sistema de login de usuários (passo-a-pas.nome = no.xml (do diretório WEB-INF): Código para web. } public void setNome(String no){ this. Veja que. 11/8/2010 .equals(user)) && (senha.Arquivo de Códigos . Aqui o nome de usuário e senha já estão definidos. é preciso que o Servlet Faces esteja atento à tudo que acontece. vamos escrever e compilar a classe Utilidades: Código para Utilidades. é preciso que ele seja iniciado juntamente com a aplicação. Para que uma aplicação JSF funcione. } public String getSenha(){ return this. } } Não compile este JavaBean ainda. na hora de compilar o JavaBean.JSF . Isso é feito na seção: <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax. return false. devemos fazer referência à classe Utilidades. senha)) return "sucesso". String pass = "1234".nome. Resolvi acrescentar isso para lembrá-lo que o código que lida com a camada lógica de sua aplicação deve estar concentrado em classes reutilizáveis. } } Veja que temos apenas um método estático que retorna true ou false dependendo dos valores fornecidos para usuário e senha. Compile esta classe e coloque-a no pasta estudos dentro da pasta classes no diretório WEB-INF da aplicação.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xsd" version="2.arquivodecodigos.sun.html</welcome-file> </welcome-file-list> </web-app> Este arquivo web.com/xml/ns/javaee" xmlns:xsi="http://www.xml <?xml version="1. Veja: http://www. ou seja.faces. Sendo assim.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java. else return "erro". } Aqui nós fazemos uma chamada ao método estático isUsuarioValido da classe Utilidades.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> Outra ponto importante é direcionar as atividades da aplicação para este servlet. a dica abaixo poderá ajudá-lo: javac -cp C:\Tomcat6\webapps\login\WEB-INF\classes C:\Tomcat6\webapps\login\WEBINF\classes\estudos\UsuarioBean.w3.. Assim..webapp. } public String verificarUsuario(){ if(Utilidades. Compile agora o JavaBean e coloque-o também na pasta estudos. if((usuario.net/principal/diretorios/java_server_faces/artigos_tutoria. a mesma classe que usamos para autenticar um usuário em JSF pode também ser usada com uma aplicação Swing.5"> <display-name>Login JSF</display-name> <description>Aplicacao de login usando JSF</description> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.isUsuarioValido(nome.. Se você estiver compilando diretamente na aplicação.faces. else return "erro".0"?> <web-app xmlns="http://java.equals(pass))) return true.webapp.java package estudos. public String getNome(){ return this.java Pronto! Voltemos nossa atenção agora para o arquivo web. Na prática. senha)) return "sucesso".com/xml/ns/javaee/web-app_2_5. Page 2 of 5 public class UsuarioBean{ private String nome.

xsd" version="1.sun.w3. else return "erro". } Este método retorna uma string que será usada para definir a navegação pela aplicação. o usuário será direcionado para erro. Você ainda se lembra do método verificarUsuario da classe UsuarioBean? public String verificarUsuario(){ if(Utilidades. O valor session indica que o JavaBean estará disponível durante toda a sessão do usuário. Começando com: <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>estudos.faces</url-pattern> </servlet-mapping> Aqui nós definimos que o servlet deverá ouvir todas as requisições que chegarem a partir de URLs contendo o prefixo "faces".UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/login. Se o valor retornado for "sucesso".verificarUsuario}"/></td> </tr> </table> http://www. vamos criar esta página agora: Código para index.Arquivo de Códigos .jsp.net/principal/diretorios/java_server_faces/artigos_tutoria.. Finalmente a seção: <welcome-file-list> <welcome-file>index.jsp.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config> Este arquivo contém seções importantes e que devem ser bem entendidas. Aguarde.Construindo um sistema de login de usuários (passo-a-pas.xml (que deverá estar no diretório WEB-INF): Código para faces-config.com/jsf/html" prefix="h" %> <f:view> <head> <title>Login de Usuários Usando JSF</title> </head> <body> <h:form> <h3>Por favor informe seu nome e senha:</h3> <table> <tr> <td>Nome:</td> <td><h:inputText value="#{usuarioBean. Hora de criarmos o arquivo faces-config.nome}"/></td> </tr> <tr> <td>Senha:</td> <td><h:inputSecret value="#{usuarioBean.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.arquivodecodigos.faces.html na raiz da aplicação.senha}"/></td> </tr> <tr> <td colspan="2"><h:commandButton value="Login" action="#{usuarioBean.com/xml/ns/javaee" xmlns:xsi="http://www.sun. Veja que fornecemos também o nome da classe e seu pacote.0"?> <faces-config xmlns="http://java.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>erro</from-outcome> <to-view-id>/erro.html</welcome-file> </welcome-file-list> define a página que será chamada quando acessarmos http://localhost:8080/login. Em seguida temos as regras de navegação.jsp</from-view-id> <navigation-case> <from-outcome>sucesso</from-outcome> <to-view-id>/sucesso. Veja que tudo que fazemos aqui é direcionar o navegador para a URL login.. Page 3 of 5 <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*..sun. Assim.. 11/8/2010 .2"> <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>estudos. Se o retorno for "erro".jsp <html> <%@ taglib uri="http://java.faces"/> <title>Login JSF</title> </head> <body> <h3>A aplicação já vai ser iniciada.</h3> </body> </html> Salve esta página como index.com/xml/ns/javaee http://java.isUsuarioValido(nome.xml <?xml version="1.sun.com/xml/ns/javaee/web-facesconfig_1_2.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java. assim como o escopo do bean. URL=login. É aqui que JSF mostra todo o seu poder. Vamos agora escrever a página de login: Código para login. podemos ver nas regras de navegação que o usuário será direcionado para a página sucesso.sun.html <html> <head> <meta http-equiv="Refresh" content= "0. senha)) return "sucesso".UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> Nesta seção nós definimos o nome do JavaBean usado para armazenar o nome de usuário e senha.JSF .

com/jsf/core" prefix="f" %> <%@ taglib uri="http://java. respectivamente.sun. Veja a caixa de texto usada para informar o nome do usuário: <h:inputText value="#{usuarioBean.sun. seu login foi efetuado com sucesso! </h3> </h:form> </body> </f:view> </html> Veja que aqui nós usamos a tag h:outputText para exibir o nome do usuário: <h:outputText value="#{usuarioBean. As linhas: <%@ taglib uri="http://java..sun.jsp: <html> <%@ taglib uri="http://java.com/jsf/html" prefix="h" %> <f:view> <head> <title>Login de Usuários Usando JSF</title> </head> <body> <h:form> <h3> <h:outputText value="#{usuarioBean.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java. http://www.com/jsf/html" prefix="h" %> <f:view> <head> <title>Sistema de Login de Usuários</title> </head> <body> <h:form> <h3>Nome de usuário ou senha não confere!</h3> </h:form> </body> </f:view> </html> Veja que está é um página bem simples. Pronto! A aplicação já está pronta para ser executada.Construindo um sistema de login de usuários (passo-a-pas.Arquivo de Códigos .nome}"/>.sun. algumas observações aqui se fazem necessárias.sun.JSF .arquivodecodigos. a aplicação completa pode ser baixada aqui. Mas.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java. Você será levado à página de erro. uma vez que o bean usuarioBean está na sessão e pode ser acessado a partir de qualquer página da aplicação. A biblioteca core contém as tags que independem da tecnologia usada para renderizar o aspecto visual da aplicação. Nem precisávamos da declaração das bibliotecas de tags. as propriedades do JavaBean é atualizado de acordo com os valores dos campos e o método verificarUsuario é chamado..sun.nome}"/> Isso é perfeitamente possível. Todas as tags JSF devem estar contidas em uma tag f:view.nome}"/> Observe que a propriedade value da caixa de texto está amarrada à propriedade nome do JavaBean usuarioBean. Ele retornará uma string que será comparada com as regras de navegação no arquivo faces-config. O mesmo ocorre com a caixa de senha: <h:inputSecret value="#{usuarioBean.verificarUsuario}"/> Quando o botão é clicado. Informe os dados corretos e será levado à página de sucesso. contém as tags usadas para gerar marcação HTML. A tag h:form denota um formulário HTML. vamos deixar assim mesmo. A biblioteca html. Page 4 of 5 </h:form> </body> </f:view> </html> Se este é realmente seu primeiro contato com JavaServer Faces.. Direcione seu navegador para http://localhost:8080/login e terá o resultado mostrado abaixo: Experimente digitar qualquer coisa e pressionar o botão Login. E. Veja agora o código para erro.jsp: Código para erro. Dentro do formulário temos as tags que representam os controles. Veja agora o código para a página de sucesso: Código para sucesso. para que ninguém reclame.senha}"/> O botão de envio do formulário está amarrado ao método verificarUsuario do JavaBean: <h:commandButton value="Login" action="#{usuarioBean.com/jsf/html" prefix="h" %> importam as bibliotecas de tags JSF core e html com os prefixos "f" e "h".jsp: <html> <%@ taglib uri="http://java. por sua vez. Dessa forma o usuário será enviado a uma página de sucesso ou erro.. 11/8/2010 .net/principal/diretorios/java_server_faces/artigos_tutoria.xml.

Page 5 of 5 Dicas e truques de Java Como adicionar ou subtrair minutos de uma data e hora usando o método add() da classe Calendar Criando uma ArrayList genérica de inteiros A instrução switch do Java As instruções if e if.else do Java Aprenda a usar o laço do-while do Java Criando seu primeiro aplicativo de interface gráfica em Java Como comparar strings em Java usando o método equals Entendendo a classe ArrayList ou ArrayList<E> Calculando a área de um círculo Aprenda a usar expressões regulares em Java Criando e inicializando um array de strings Lendo de um arquivo usando BufferedReader e FileReader Aprenda a ler entrada do usuário usando a classe Scanner Código completo para um programa de desenho usando eventos do mouse Entendendo o conceito de encapsulamento (encapsulation) em Java Criando uma tela de login usando GridBagLayout Entendendo a classe Vector<E> Aprenda a tratar erros em Java usando o bloco try. incluindo os arquivos de definição ..h e implementação ..net/principal/diretorios/java_server_faces/artigos_tutoria. deletar) um arquivo usando Delphi Efetuando cálculos de porcentagem em Delphi Obtendo o caractere a partir de um determinado código ASCII Gerando um número aleatório de 0 a 10 usando Delphi Como converter uma string em um valor numérico inteiro Como adicionar (append) mais conteúdo a um arquivo texto já existente Como verificar se uma substring está contida em uma string Invertendo o conteúdo de uma string http://www.. objetos. por favor) Desenvolvedor Responsável: Osmar J.Todos os direitos reservados a Osmar J..Construindo um sistema de login de usuários (passo-a-pas. quando não devidamente observado.cpp Como quebrar (separar) uma string usando pontoe-vírgula como delimitador Calculando juros simples e montante usando C++ Usando o tipo de dados long ou long int Entenda o tipo size_t Dicas e truques de Delphi Como usar a função FormatFloat() para formatar valores de ponto-flutuante em Delphi Aprenda a usar arrays (matrizes ou vetores) em Delphi Formatando datas e horas em Delphi usando a função FormatDateTime() Trabalhando com strings em Delphi Quer usar o banco de dados MySQL com Delphi? Comece lendo esta dica Como obter uma substring de uma string Lendo todo o conteúdo de um arquivo texto usando Delphi Como escrever em um arquivo texto usando Delphi Como copiar um arquivo em Delphi usando a função CopyFile() da API do Windows Criando uma data e hora em Delphi usando a função EncodeDateTime() Como excluir (remover.com (só para negócios.com MSN: osmar@recomende.2010 .while da linguagem C++ Comparando strings usando o método compare da classe string O operador condicional (operador ternário) Criando sua primeira aplicação de interface gráfica usando C++ e WinAPI Aprendendo a usar o laço for em C++ Aprenda a usar arrays (matrizes) em C++ Como obter o arco cosseno de um número Usando o laço while da linguagem C++ Criando uma classe C++ completa.catch Usando herança em Java Escrevendo em um arquivo usando BufferedWriter e FileWriter Dicas e truques de C++ Calculando a raiz quadrada de um número Removendo parte de uma string usando o método erase O aplicativo de interface gráfica mais simples em C++ Programação orientada a objetos em C++: Classes. Silva Todo o conteúdo deste site. Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do conteúdo disponibilizado nestas páginas. métodos e variáveis de instância Como calcular o MDC (Máximo Divisor Comum) em C++ Efetuando cálculos de porcentagem em C++ Obtendo o tamanho de uma string usando length Entendendo o laço do. 11/8/2010 .arquivodecodigos..Arquivo de Códigos .JSF . Silva http://www...net 2000 .. pertence a seus idealizadores e não poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação..arquivodecodigos. Fale Conosco: (62) 3261-7018 / (62) 8185-0734 E-Mail: suporte@recomende.