Olá pessoal…
Já programo para a Web faz um tempo… mas sou novo no mundo do Java… estou bem empolgado… a tecnologia apresenta diversas soluções para um mesmo problema…
E tenho lido artigos e matérias sobre OO, Patterns, MVC, Camadas e afins…
Com isso surgem diversas dúvidas… e ai vai duas q me assolam neste momento…
Eu e um colega fizemos uma aplicação Web… do jeito q programávamos em ASP… PHP… e outros… conexões em includes… funções pra lá… funções pra cá… regras de negócio, instruções SQL e consultas tudo no JSP…
Então aos poucos estamos remodelando tudo… fizemos uma normalização na base de dados para seguir em frente…
A primeira alteração foi tirar conexão do include JSP e usar o JNDI para mapear os recursos… agora existe uma classe para conexão ao banco onde eu posso utilizar em qualquer lugar…
Então o próximo passo foi tirar o processamento do JSP… criei um Servlet q por enquanto faz a consulta ao banco e atribui os valores aos objetos de negócio… e as instruções SQL também estão no Servlet… por enquanto…
Criei alguns objetos de negócio, como por exemplo o objeto Usuario com seus gets e sets…
public class Usuario {
private int codigo;
private String login;
private String nome;
private String sobrenome;
private String email;
private Grupo grupo;
private int acessos;
private Date ultimo_acesso;
public void Usuario(){
}
// gets e sets...
}
Vou postar apenas duas dúvidas por enquanto…
Dúvida 1 - A lista
No caso de uma lista de usuários… onde eu tenho q exibir os seguintes dados:
[LOGIN][NOME SOBRENOME][EMAIL][ACESSOS][USUARIO Q LIBEROU O ACESSO]
Notem q o último campo, é um dado que não está na classe Usuario…
Penso q o Servlet deve carregar uma lista e enviar para o JSP que vai exibir a lista…
Detalhe: Estou exibindo esta lista utilizando JSTL… e aos poucos o JSP está ficando sem scriptlets…
Bom… Imagino q essa lista pode ser uma Collection… certo? e na Collection estariam os objetos Usuario com seus atributos populados…
Porém as vezes, é necessário exibir um atributo que não existe no objeto de negócio… no exemplo pe o Usuário que liberou o acesso…
Nesses casos… oq c faz normalmente? Adiciona-se um novo atributo na Classe?
Ou cria se uma outra classe q herda o Usuario e adiciona os atributos que serão usados apenas na lista em questão?
Dúvida 2 - Os DAOs
Quanto aos DAOs… imagino que seja o Servlet que instancia os DAOs, certo?
E o DAO retorna para o Sevlets os objetos de negócio para devolver para o JSP exibir…
No caso da classe Usuario, existe o atributo grupo que é do tipo Grupo… q é uma outra classe… e imagino q deve existir um outro DAO para a classe Grupo…
É certo um DAO chamar outro DAO? Porque se o Servlet chama o DAOUsuario por exemplo… já tem q retornar o usuário com os dados do grupo e tal… neste caso o DAOUsuario chamaria o DAOGrupo?
Tenho mais dúvidas… mas por enquanto vou postar essas apenas…
Valeus…