Boa tarde a todos!
Estou criando uma pequena rede social usando apenas Servlets e Jsp, apenas para fixar o conhecimento obtido nos livros.
Estou com uma dúvida em relação ao Servlet de Login e OO.
Minha classe usuario tem os otributos id, login e senha.
O usuario digita no formulario o login e a senha, então surje a dúvida:
Qual classe deve ficar responsável por verificar se o login e senha são válidos? É a classe de model(classe Usuario) ou control(o Servlet) que deve pedir ao DAO retornar o usuario com o login e senha especificados?
E depois que ele retornar eu devo armazenar na sessão apenas o ID do usuario ou o objeto usuario inteiro?
Muito obrigado drsmachado!!!
O problema é que eu echo que não aprendi OO da maneira correta…
Eu pensei que todas as funções relacionadas a Usuario a propria classe usuario deveria fazer
E o que eu coloco na sessão o objeto usuario ou apenas o int id?
drsmachado
Azalor:
Muito obrigado drsmachado!!!
O problema é que eu echo que não aprendi OO da maneira correta…
Eu pensei que todas as funções relacionadas a Usuario a propria classe usuario deveria fazer
E o que eu coloco na sessão o objeto usuario ou apenas o int id?
Acontece que você está abordando o pattern MVC, ou seja, você tem camadas e em cada camada você possui determinadas classes que são responsáveis por determinadas ações.
No MVC a camada view não tem quase nenhuma lógica (apenas as responsáveis pela apresentação em si, nada de lógica de negócio).
Na camada control, você tem o gerenciamento de todas as ações, sejam elas requisitadas pela camada view sentido à model ou da model sentido view.
Na camada model você tem as lógicas de persistência, resumidamente falando.
Desta forma, a responsabilidade de chamar eventos e ações é do controller, que terá um objeto do tipo Usuario e nele irá manter o id e login. Este objeto será colocado na sessão, após validar login e senha.
– Edit –
Ou você pode criar um filtro, que intercepta a requisição e faz esse trabalho para o controller.
A
Azalor
Muito obrigado drsmachado e leandronsp !
Acho que agora entendo um pouco mais sobre como funciona o MVC
A classe ficou assim
publicclassDoLoginimplementsAction{@OverridepublicStringdoAction(HttpServletRequestreq,HttpServletResponseresp){Stringview=null;Stringlogin=req.getParameter("login");Stringsenha=req.getParameter("senha");Usuariousuario=newUsuarioDAO().getByLogin(login,senha);if(usuario!=null){view="index.jsp";req.setAttribute("usuario",usuario);}else{Stringerror="Usuario ou senha inválidos.";req.setAttribute("error",error);view="login.jsp";}returnview;}}