DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Sistema de Login - Curso JEE e JSE – Loja Virtual Completa – Parte 57

Nesta vídeo aula adicionaremos o sistema de login a partir do cadastro de usuários.

Atenção! Este vídeo necessita do aplicativo DevMedia Player para ser executada. Para fazer o download do player basta acessar http://www.devmedia.com.br/player

Tempo: 15:00 minutos

Tags: exposição de produtos, ecommerce, loja virtual, java ee 6, JPA

Mini-Resumo:
Nesta vídeo aula estamos dando continuidade ao cadastro do usuário quando o mesmo se interessa por um produto dentro da nossa loja virtual. Estamos agora adicionando o sistema de login para este cadastro, mostramos como esconder diversas partes do nosso TOPO do aplicativo para mostrar informações adicionais quando o mesmo está logado.


Exemplos construídos: Continuamos com a criação do cadastro de usuários por fora do portal. Adicionamos o sistema de login para usuários externos. Estes usuários vão estar logando logo após o cadastro e modificando a maneira de funcionamento a partir deste ponto.

Tecnologias Utilizadas: Java EE 6 , Java SE 6 , NetBeans 6.9





    9 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Leandro Henrique Perez
Oi, as aulas estão muito boas.

Reparei que nessa aula, se clicarmos para efetuar o login e informarmos um login ou senha NÃO CADASTRADA NO BANCO DE DADOS a mensagem gerada é horrorosa nesse estilo:

/login.xhtml @29,231 validator="#{userFace.validateLogin}": javax.ejb.EJBException

/login.xhtml @29,231 validator="#{userFace.validateLogin}": javax.ejb.EJBException .



---------------
Não está sendo feita a validação que foi criada nessa aula:

Método validador criado:

public void validateLogin(FacesContext context, UIComponent component, Object value) throws ValidatorException {
String username = userUI.getLocalValue().toString();
String password = value.toString();
System.out.println("The Username is " + username);

System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");

User user = bean.isUserOK(username, password);
System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
if (user == null) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_FATAL, "The user is not valid", "The username or password is invalid"));
}
}

-------------------------------------------
o que eu reparei é que o método executa até a "SYSOUT XXXXXXXXXXXXXXXXXXXXXXXXXXX";

* Quando entra no "User user = bean.isUserOK(username, password);" já dá pau.

Nem passa pelo "SYSOUT zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";


-----------------------

Utilizei seus próprios métodos do cód fonte mas não funcinou!





em 25/4/2011 23:02 - Responder

 

  Leandro Henrique Perez
É claro que não funcionou, depois de muito testar encontrei o defeito:

Substituir o método ORIGINAL CRIADO PELA DEVMEDIA da classe BasicSessionBean.java:

public T getPojo(Class classToCast,String query,Object... values) {
Query qr = createQuery(query, values);
return (T) qr.getSingleResult();
}


TROCAR O MÉTODO ACIMA POR ESTE:

public T getPojo(Class classToCast, String query, Object... values) {
Query qr = createQuery(query, values); //chama o método private dessa classe (abaixo)
try {
return (T) qr.getSingleResult();
} catch (NoResultException nre) {
return null;
}
}


Observar o try catch que foi introduzido no método!
Sem ele ao tentar fazer um login com um usuário não existente o sistema

o método public User isUserOK(String username, String password) {
...códifo utilizando getPojo...
} gerava uma exceção que não era tratada



em 27/4/2011 20:03 - Responder
 

  Leandro Henrique Perez
Enviei o comentário acidentalmente antes de terminar de editar, então, continuando:

Agora o try não deixa o sistema "abortar" por causa de uma exceção que é gerada quando não localiza um registro.

* Isso teria sido evitado se as funcionalidades que são desenvolvidas durante o curso FOSSEM TESTADAS ANTES DE IR PARA A PRÓXIMA AULA!, muitas são testadas, más essa não foi.

* Essa função não foi testada! que feio (rsrs)!

*** Portanto todo mundo deve ter esse bug!


***************************
Mais uma coisa, ao errar o login e senha estão aparecendo inúmeras mensagens repetitas:



Exemplo:
informa o usário "A" e a senha "A" e clicar em Login (nã funcionalidade de fazer o login no sistema)


O sistema gera:

The user is not valid
The password must have five chars
The user is not valid


******Além disso, o sistema não limpa as mensagens anteriores, se você ficar clicando para logar informando senhas inválidas
ele vai acumulando UM MONTE DE MENSAGEM uma abaixo da outra na tela de login.

Que feio, não foi testado?

**************** Outra coisa: A Mensagem de exceção


User user = bean.isUserOK(username, password);
if (user == null) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_FATAL, "The user is not valid", "The username or password is invalid"));
}


Não é exibida jamais!


Vamos testar melhor as coisas, as aulas são muito boas, mas essas deslizadas não podem continuar acontecendo.



em 27/4/2011 20:15 - Responder
 

[Comentário do autor]   Dyego Souza Do Carmo
Obrigado pela observação !

Vamos levar em consideração para as proximas aulas :)

Atenciosamente,


em 29/4/2011 14:05 - Responder
 

  Ricardo José Rodrigues Da Silva
Para mostrar a mensagem completa, experimente colocar "".

Quando à acumulação de mensagens ainda não consegui resolver.

Abraços!


em 2/5/2011 23:02 - Responder
 

  Ricardo José Rodrigues Da Silva
<h:messages showDetail="true" showSummary="true"/>


em 2/5/2011 23:04 - Responder
 

[Comentário do autor]   Dyego Souza Do Carmo
Seu userface... poderia colar aqui }?


em 20/2/2012 09:24 - Responder
 

[Comentário do autor]   Dyego Souza Do Carmo
Obrigadao mesmo...

Valeu !



em 20/2/2012 09:24 - Responder
 

[Comentário do autor]   Dyego Souza Do Carmo
Obrigadao mesmo...

Valeu !



em 20/2/2012 09:25 - Responder
 



Publicidade
Curso Online
Este post faz parte de:

Curso(s):
  •  Loja Virtual completa com JavaEE e JavaSE

  • Autor
    Dyego Souza Do Carmo

    Engenheiro da Computação e evangelista da tecnologia Java , a mais de 15 anos especialista no sistema operacional linux. Programador Java a 8 anos sendo especialista em desenvolvimento de aplicações Java EE utilizando objetos distribuidos e Swing. Consultoria em Dúvidas - Http://www.forHelp.Us


    Space do autor
    Estatísticas
    Favorito:
    Comentários:
    Feedback:
    Utilidade:
    1   0
    [Fechar]

    Você precisa estar logado para dar um feedback.

    Clique aqui para efetuar o login
    [Fechar]


    Este post está fechado. Saiba mais sobre a assinatura MVP!
    web-03
    DevMedia  |  Anuncie  |  Fale conosco
    Hospedagem web por Porta 80 Web Hosting
    2012 - Todos os Direitos Reservados a web-03