Padrão de acesso a dados usando o JSP

Olá… será que alguém poderia me apontar qual é a maneira “padrão” de se fazer o acesso a dados no java?
Tipo, imaginando uma consulta simples, imaginei a seguinte situação:
1- Usuário acessa uma página consulta.jsp
2- O action do consulta encaminha para uma resposta.jsp
3- No resposta.jsp temos o esboço da interface, a página dá request nos parâmatros e passa para um servlet que acessa o banco de dados (ou utilizam um bean? aki eu já não sei…to tentando achar uma maneira de ligar tudo isso de modo que fique na “best practice”, ou melhor acessar o banco de dados direto pela página jsp mesmo? o.O )…
4- Bom…supondo que vá para a servlet, o servlet recupera um result set e…
(agora não sei denovo…rsrs… já imprime no html direto do servlet? )

Agradeço quem puder me indicar uma maneira, porque sou novo no assunto, e ainda não sei qual a melhor maneira de mesclar servlet, com beans com jsp normal…

Obrigado… :slight_smile:

Baixe essa apostila, vale a pena!

meu, segue o MVC model 2…

Ao retirar do banco utilize um bean e o repasse ao JSP. Acho q [e o mais facil…

OBS: NUNCA acesse direto um banco via JSP. falow?

Para retornar o resultado do DAO, não retorne um result set, e sim um collection. Isso ajudar na performance !

Abraço.

Hummmm…vlw galera … =]

Melhor por Bean então… é que é tanta tecnologia misturada que dá mó confusão na hora de escolher a adequada…rsrs

A apostila é muito boa também… Sem dúvida um achado!

Muito obrigado =D

Lendo a apostila já tera um conhecimento, procure algum framework MVC e ganhe produtividade!

La vai um exemplinho para você, espero que ajude.

Primeiro criando a primeira JSP onde irá chamar o Servlet.

<html>
<head>
</head>
<body>
	<a >Chamar o Servet</a>
&lt;/body&gt;
&lt;/html&gt;

Agora o código da Servlet

[code]
package br.com.guj.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.guj.beans.Clientes;
import br.com.guj.dao.ClientesDAO;

/**

  • Servlet implementation class for Servlet: ActionServlet

*/
public class ActionServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	ClientesDAO clientesDAO = new ClientesDAO();
	List&lt;Clientes&gt; list = clientesDAO.getListClientes();
	request.setAttribute("list",list);
	RequestDispatcher rd = request.getRequestDispatcher("result.jsp");
	rd.forward(request, response);
}  	

}[/code]

Note que eu chamei o ClientesDAO e retornei um java.util.List. Depois eu joguei esse List para o request da página (assim o JSP pode pegar esse request), e no final eu fiz um forward para a pagina result.jsp

result.jsp

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;%@page import="java.util.List"%&gt; &lt;%@page import="br.com.guj.beans.Clientes"%&gt; &lt;%@page import="java.util.Iterator"%&gt; &lt;html&gt; &lt;body&gt; &lt;table border="1"&gt; &lt;thead&gt; &lt;tr&gt; &lt;td&gt;ID&lt;/td&gt; &lt;td&gt;Nome&lt;/td&gt; &lt;td&gt;Cidade&lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt% List&ltClientes&gt list = (List&lt;Clientes&gt;) request.getAttribute("list"); Iterator&lt;Clientes&gt; i = list.iterator(); while (i.hasNext()) { Clientes clientes = i.next(); %&gt &lt;tr&gt; &lt;td&gt;&lt;%=clientes.getId() %&gt;&lt;/td&gt; &lt;td&gt;&lt;%=clientes.getNome() %&gt;&lt;/td&gt; &lt;td&gt;&lt;%=clientes.getCidade() %&gt;&lt;/td&gt; &lt;/tr&gt; &lt;% } %&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/body&gt; &lt;/html&gt;

Aqui vc pode usar um objeto Iterator, ou então procurar sobre a taglib c:out e assim vai.

Esse é um jeito de pegar dados de um DAO, jogar no request e depois capturar os dados no JSP.

Agora uma dica: aprenda bem esse lance de JSP/Servlet/JavaBeans, mas não aconselho a usar eles “crús” em projetos reais, na verdade, em projetos reais a melhor opção é você usar alguma framework MVC para isso, tais como: Webwork, Mentawai, SpringMVC, Struts, …

Espero ter ajudado

Mandou bem nesse “mini-tutorial”, poderia fazer o mesmo se fosse com struts passando uma lista.


O problema que eu vejo com o servelets, é qeu tenho q criar uma pagina com input e encaminhar pra outra pagina o resulta.
Pq se eu fizer na mesma ele da nullexception =/

Mandou mto bemmm no mini tutorial =)

To lendo também a apostila indicada… Muito esclarecedor tudo o que me disseram

Muito obrigado a todos =D

[quote=Pedrosa]Baixe essa apostila, vale a pena!

[/quote]

Cara, valeu pela dica da apostila…