Pessoal, gostaria de fazer o seguinte
utilizar o jsp o maximo possivel somente como interface:
gostaria de através de javabeans, fazer um acesso a um banco de dados MySQL e retornar os valores para o .jsp, teria como fazer isso totalmente dentro do bean?
alguem poderia postar algum exemplo ou tutorial?
Obrigado!!
Quem faria isso eh o servlet - seja diretamente ou delegando a classes mais especializadas. Entao vc coloca os dados no request e da um forward para o jsp.
Rafael
certo, mas não tem nenhuma maneira de fazer isto utilizando javabeans ao invés de servlet?
O javaBeans é uma classe que esta rodando no servidor, vc podoe colocar o codigo de acesso a banco nele, mais isso não é o padrão correto de desenvolvimento, procure dar uma lida nos padrões delegate e data access object(DAO)
a estrutura correta de desenvolvimento mais simples pode ser
jsp -> servlet -> delegate -> rn(regra de negocio da aplicação) ->dao
vc ainda pode tirar o delegate, o delegate é mais utilizado quando vc tiver utilizando sessionbean, ficando assim então
jsp -> servlet -> rn(regra de negocio da aplicação) ->dao
assim se sua aplicação amanha vira desktop e vc so tem que mexer no jsp e no servlet, pois a regra de neogico e acesso a banco é o mesmo.
de uma lida nos padrões, vale a pena e vc pode ganhar muitas horas de desenvolvimento.
:mrgreen:
Tente entender este código:
Primeiro crio um objeto da classe ContatoDAO, onde existe os metodos para acessar o banco de dados, inclusice o metodo public List getLista() , este método retorna uma lista com os contatos do banco.
Depois utiliz a taglib core pra fazer o loop, mostrando todos os elementos do banco.
vc pode ver que no loop, chamo o metodo getLista.
depois é so mostrar na tela.
Assim, vc naum precisa da servlet pra mostrar os dados de um javabeans.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<hmtl>
<jsp:useBean id="dao" class="br.com.exemplo.dao.ContatoDAO"/>
<c:forEach var="contato" items="${dao.lista}">
<li>
${contato.nome}
${contato.email}
${contato.endereco}
</li>
</c:forEach>
</html>
Nao e legal colocar acesso ao DAO ou sequer a classes de negocio diretamente no JSP.
Isso eh muito feito em linguagens de Script como ASP ou PHP, mas em Java nao tem a menor vantagem, pelo contrario. Utilize suas paginas apenas para pegar objetos em request e session e exibi-los ao usuario.
alguem poderia me enviar um exemplo simples ou um link para um tutorial?
estou estudando e gostaria de 1 codigo para analisar
valeu pessoal!
Com certeza este modo que eu postei naum é o mais indicado, porem era o que vc estava pedindo. O legal é vc usar MVC.
Procure aqui no portal que tem muita coisa sobre mvc.