Você está na página 1de 5

Arquivo de Cdigos - JSF - Construindo um sistema de login de usurios (passo-a-pas...

Page 1 of 5

Home | Consultoria | Exemplos e Cdigos-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 usurios (passo-apasso) usando JavaServer Faces

Construindo um sistema de login de usurios (passo-a-passo) usando JavaServer Faces


Voc precisa de um freelancer, cdigos-fonte e exemplos completos? Bem-vindo(a) ao meu site. Alm de realizar alguns servios como freelancer eu tenho alguns cdigos-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 programao 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

Referncias 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

No 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 aplicaes web. Desenvolvedores esto usando tecnologias tais como Servlets e JSP para desenvolver aplicaes web robustas e de escalabilidade suportada com grande sucesso. Mas, medida que as aplicaes web se tornam mais complexas, alguns desenvolvedores saem em busca dos bons e velhos frameworks de interface grfica do usurio (GUI) com seus conjuntos de componentes ricos e poderosos e seu modelo de desenvolvimento guiado por eventos. Servlets e JSP tm nos servido bem, mas a natureza sem estado do HTTP e seu modelo simples de requisio/resposta fora os desenvolvedores a travar uma guerra com os detalhes que so gerenciados nos bastidores por frameworks GUI tais como AWT/Swing, o framework GUI padro para Java. Para tornar mais fcil o desenvolvimento de sofisticadas interfaces de usurio para aplicaes web, projetos open source e empresas comerciais desenvolveram frameworks que se aproximam o mximo dos frameworks GUI tradicionais. Alguns exemplos notveis so 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 esforos a fim de criar um uma soluo padro que todos os frameworks pudessem usar. O resultado JavaServer Faces. A verso 1.0 da especificao foi lanada em maro de 2004. 2 - O que preciso para desenvolver em JavaServer Faces? Para desenvolver em JavaServer Faces voc precisa no mnimo de: a) O Java Development Kit (SDK). A verso 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 ns 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 Expresses Regulares em JavaScript Tabela Cores HTML I Tabela Cores HTML II

Concurso da Prefeitura de c) Uma implementao do JavaServer Faces. A verso mais recente durante a autoria deste tutorial 1.2 So 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 aplicao web para iniciar o projeto que vamos desenvolver. Acesse o artigo Estrutura bsica de uma aplicao web desenvolvida em Java se voc ainda no sabe como montar Santos - SP 2010 Concurso da Prefeitura de implementao JSF que voc baixou e copie todo o seu contedo (jsf-api.jar, jsf-impl.jar, etc) para a Pato Branco - PR 2010 pasta lib de sua aplicao web. Certifique-se tambm de incluir os arquivos jstl.jar e standard.jar. Concurso da Prefeitura de 3 - Desenvolvendo o projeto proposto Redentora - RS 2010
Vamos botar a mo na massa agora. O que vamos desenvolver um sistema de login de usurios. O usurio informar seu nome e senha e a aplicao web verificar se os dados so vlidos e o direcionar para uma pgina de sucesso ou erro. um projeto bsico, mas, se bem entendido, abrir as portas para Concurso da Prefeitura de o desenvolvimento de aplicaes mais complexas. Vale lembrar tambm que a leitura e entendimento de Quixaba - PB 2010 todos os conceitos apresentados neste artigo serviro de base para o entendimento dos demais. a estrutura de uma aplicao web usando tecnologias Java. Em seguida v ao diretrio lib da

Concurso do DER - RO 2010

Concurso da Prefeitura de Basicamente uma aplicao web usando JSF composta de pginas HTML, JSP, Servlets (se necessrio), Manaus - AM 2010 JavaBeans, Classes de negcios e os arquivos de configurao faces-config.xml e web.xml. Vamos
comear criando o JavaBean que nos permitir passar os dados informados pelo usurio da parte view Dicas | Vdeo Aulas (viso) da aplicao para a parte model (modelo). Se voc ainda no se sente confortvel com o modelo Apostilas www.viconcursos.com MVC, clique aqui e veja nosso artigo sobre este assunto. Segue o cdigo para UsuarioBean: Cdigo para UsuarioBean.java package estudos;

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

Arquivo de Cdigos - JSF - Construindo um sistema de login de usurios (passo-a-pas... Page 2 of 5

public class UsuarioBean{ private String nome; private String senha; public String getNome(){ return this.nome; } public void setNome(String no){ this.nome = no; } public String getSenha(){ return this.senha; } public void setSenha(String se){ this.senha = se; } public String verificarUsuario(){ if(Utilidades.isUsuarioValido(nome, senha)) return "sucesso"; else return "erro"; } } No compile este JavaBean ainda. Antes revise-o cuidadosamente e veja que um JavaBean comum, ou seja, o fato de o usarmos com JSF no adiciona nada de extraordinrio em sua estrutura. Observe agora o mtodo verificarUsuario: public String verificarUsuario(){ if(Utilidades.isUsuarioValido(nome, senha)) return "sucesso"; else return "erro"; } Aqui ns fazemos uma chamada ao mtodo esttico isUsuarioValido da classe Utilidades. Resolvi acrescentar isso para lembr-lo que o cdigo que lida com a camada lgica de sua aplicao deve estar concentrado em classes reutilizveis, ou seja, a mesma classe que usamos para autenticar um usurio em JSF pode tambm ser usada com uma aplicao Swing. Sendo assim, vamos escrever e compilar a classe Utilidades: Cdigo para Utilidades.java package estudos; public class Utilidades{ public static boolean isUsuarioValido( String usuario, String senha){ String user = "osmar"; String pass = "1234"; if((usuario.equals(user)) && (senha.equals(pass))) return true; return false; } } Veja que temos apenas um mtodo esttico que retorna true ou false dependendo dos valores fornecidos para usurio e senha. Aqui o nome de usurio e senha j esto definidos. Na prtica, estes valores seriam verificados em uma base de dados. Compile esta classe e coloque-a no pasta estudos dentro da pasta classes no diretrio WEB-INF da aplicao. Compile agora o JavaBean e coloque-o tambm na pasta estudos. Veja que, na hora de compilar o JavaBean, devemos fazer referncia classe Utilidades. Se voc estiver compilando diretamente na aplicao, a dica abaixo poder ajud-lo: javac -cp C:\Tomcat6\webapps\login\WEB-INF\classes C:\Tomcat6\webapps\login\WEBINF\classes\estudos\UsuarioBean.java Pronto! Voltemos nossa ateno agora para o arquivo web.xml (do diretrio WEB-INF): Cdigo para web.xml <?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Login JSF</display-name> <description>Aplicacao de login usando JSF</description> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> Este arquivo web.xml possui algumas sees que merecem destaque. Para que uma aplicao JSF funcione, preciso que o Servlet Faces esteja atento tudo que acontece. Assim, preciso que ele seja iniciado juntamente com a aplicao. Isso feito na seo: <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> Outra ponto importante direcionar as atividades da aplicao para este servlet. Veja:

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

Arquivo de Cdigos - JSF - Construindo um sistema de login de usurios (passo-a-pas... Page 3 of 5

<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> </servlet-mapping> Aqui ns definimos que o servlet dever ouvir todas as requisies que chegarem a partir de URLs contendo o prefixo "faces". Finalmente a seo: <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> define a pgina que ser chamada quando acessarmos http://localhost:8080/login. Assim, vamos criar esta pgina agora: Cdigo para index.html <html> <head> <meta http-equiv="Refresh" content= "0; URL=login.faces"/> <title>Login JSF</title> </head> <body> <h3>A aplicao j vai ser iniciada. Aguarde.</h3> </body> </html> Salve esta pgina como index.html na raiz da aplicao. Veja que tudo que fazemos aqui direcionar o navegador para a URL login.faces. Hora de criarmos o arquivo faces-config.xml (que dever estar no diretrio WEB-INF): Cdigo para faces-config.xml <?xml version="1.0"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"> <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>estudos.UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/login.jsp</from-view-id> <navigation-case> <from-outcome>sucesso</from-outcome> <to-view-id>/sucesso.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>erro</from-outcome> <to-view-id>/erro.jsp</to-view-id> </navigation-case> </navigation-rule> </faces-config> Este arquivo contm sees importantes e que devem ser bem entendidas. Comeando com: <managed-bean> <managed-bean-name>usuarioBean</managed-bean-name> <managed-bean-class>estudos.UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> Nesta seo ns definimos o nome do JavaBean usado para armazenar o nome de usurio e senha. Veja que fornecemos tambm o nome da classe e seu pacote, assim como o escopo do bean. O valor session indica que o JavaBean estar disponvel durante toda a sesso do usurio. Em seguida temos as regras de navegao. aqui que JSF mostra todo o seu poder. Voc ainda se lembra do mtodo verificarUsuario da classe UsuarioBean? public String verificarUsuario(){ if(Utilidades.isUsuarioValido(nome, senha)) return "sucesso"; else return "erro"; } Este mtodo retorna uma string que ser usada para definir a navegao pela aplicao. Se o valor retornado for "sucesso", podemos ver nas regras de navegao que o usurio ser direcionado para a pgina sucesso.jsp. Se o retorno for "erro", o usurio ser direcionado para erro.jsp. Vamos agora escrever a pgina de login: Cdigo para login.jsp <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Login de Usurios 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.nome}"/></td> </tr> <tr> <td>Senha:</td> <td><h:inputSecret value="#{usuarioBean.senha}"/></td> </tr> <tr> <td colspan="2"><h:commandButton value="Login" action="#{usuarioBean.verificarUsuario}"/></td> </tr> </table>

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

Arquivo de Cdigos - JSF - Construindo um sistema de login de usurios (passo-a-pas... Page 4 of 5

</h:form> </body> </f:view> </html> Se este realmente seu primeiro contato com JavaServer Faces, algumas observaes aqui se fazem necessrias. As linhas: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> importam as bibliotecas de tags JSF core e html com os prefixos "f" e "h", respectivamente. A biblioteca core contm as tags que independem da tecnologia usada para renderizar o aspecto visual da aplicao. A biblioteca html, por sua vez, contm as tags usadas para gerar marcao HTML. Todas as tags JSF devem estar contidas em uma tag f:view. A tag h:form denota um formulrio HTML. Dentro do formulrio temos as tags que representam os controles. Veja a caixa de texto usada para informar o nome do usurio: <h:inputText value="#{usuarioBean.nome}"/> Observe que a propriedade value da caixa de texto est amarrada propriedade nome do JavaBean usuarioBean. O mesmo ocorre com a caixa de senha: <h:inputSecret value="#{usuarioBean.senha}"/> O boto de envio do formulrio est amarrado ao mtodo verificarUsuario do JavaBean: <h:commandButton value="Login" action="#{usuarioBean.verificarUsuario}"/> Quando o boto clicado, as propriedades do JavaBean atualizado de acordo com os valores dos campos e o mtodo verificarUsuario chamado. Ele retornar uma string que ser comparada com as regras de navegao no arquivo faces-config.xml. Dessa forma o usurio ser enviado a uma pgina de sucesso ou erro. Veja agora o cdigo para a pgina de sucesso: Cdigo para sucesso.jsp: <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Login de Usurios Usando JSF</title> </head> <body> <h:form> <h3> <h:outputText value="#{usuarioBean.nome}"/>, seu login foi efetuado com sucesso! </h3> </h:form> </body> </f:view> </html> Veja que aqui ns usamos a tag h:outputText para exibir o nome do usurio: <h:outputText value="#{usuarioBean.nome}"/> Isso perfeitamente possvel, uma vez que o bean usuarioBean est na sesso e pode ser acessado a partir de qualquer pgina da aplicao. Veja agora o cdigo para erro.jsp: Cdigo para erro.jsp: <html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>Sistema de Login de Usurios</title> </head> <body> <h:form> <h3>Nome de usurio ou senha no confere!</h3> </h:form> </body> </f:view> </html> Veja que est um pgina bem simples. Nem precisvamos da declarao das bibliotecas de tags. Mas, vamos deixar assim mesmo. Pronto! A aplicao j est pronta para ser executada. Direcione seu navegador para http://localhost:8080/login e ter o resultado mostrado abaixo:

Experimente digitar qualquer coisa e pressionar o boto Login. Voc ser levado pgina de erro. Informe os dados corretos e ser levado pgina de sucesso. E, para que ningum reclame, a aplicao completa pode ser baixada aqui.

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

Arquivo de Cdigos - JSF - Construindo um sistema de login de usurios (passo-a-pas... Page 5 of 5

Dicas e truques de Java


Como adicionar ou subtrair minutos de uma data e hora usando o mtodo add() da classe Calendar Criando uma ArrayList genrica de inteiros A instruo switch do Java As instrues if e if...else do Java Aprenda a usar o lao do-while do Java Criando seu primeiro aplicativo de interface grfica em Java Como comparar strings em Java usando o mtodo equals Entendendo a classe ArrayList ou ArrayList<E> Calculando a rea de um crculo Aprenda a usar expresses regulares em Java Criando e inicializando um array de strings Lendo de um arquivo usando BufferedReader e FileReader Aprenda a ler entrada do usurio usando a classe Scanner Cdigo 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...catch Usando herana em Java Escrevendo em um arquivo usando BufferedWriter e FileWriter

Dicas e truques de C++


Calculando a raiz quadrada de um nmero Removendo parte de uma string usando o mtodo erase O aplicativo de interface grfica mais simples em C++ Programao orientada a objetos em C++: Classes, objetos, mtodos e variveis de instncia Como calcular o MDC (Mximo Divisor Comum) em C++ Efetuando clculos de porcentagem em C++ Obtendo o tamanho de uma string usando length Entendendo o lao do..while da linguagem C++ Comparando strings usando o mtodo compare da classe string O operador condicional (operador ternrio) Criando sua primeira aplicao de interface grfica usando C++ e WinAPI Aprendendo a usar o lao for em C++ Aprenda a usar arrays (matrizes) em C++ Como obter o arco cosseno de um nmero Usando o lao while da linguagem C++ Criando uma classe C++ completa, incluindo os arquivos de definio .h e implementao .cpp Como quebrar (separar) uma string usando pontoe-vrgula 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 funo 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 funo 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 contedo de um arquivo texto usando Delphi Como escrever em um arquivo texto usando Delphi Como copiar um arquivo em Delphi usando a funo CopyFile() da API do Windows Criando uma data e hora em Delphi usando a funo EncodeDateTime() Como excluir (remover, deletar) um arquivo usando Delphi Efetuando clculos de porcentagem em Delphi Obtendo o caractere a partir de um determinado cdigo ASCII Gerando um nmero aleatrio de 0 a 10 usando Delphi Como converter uma string em um valor numrico inteiro Como adicionar (append) mais contedo a um arquivo texto j existente Como verificar se uma substring est contida em uma string Invertendo o contedo de uma string

http://www.arquivodecodigos.net 2000 - 2010 - Todos os direitos reservados a Osmar J. Silva Todo o contedo deste site, quando no devidamente observado, pertence a seus idealizadores e no poder ser usado para outras finalidades seno estudo e aprimoramento de tcnicas de programao. Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do contedo disponibilizado nestas pginas. Fale Conosco: (62) 3261-7018 / (62) 8185-0734 E-Mail: suporte@recomende.com MSN: osmar@recomende.com (s para negcios, por favor) Desenvolvedor Responsvel: Osmar J. Silva

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