Padrão de acesso a dados usando o JSP

9 respostas
B

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:

9 Respostas

Pedrosa

Baixe essa apostila, vale a pena!

T

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?

luis.soares

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

Abraço.

B

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

Pedrosa

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

Jair_Rillo_Junior

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
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);
	}  	
}

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

A

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 =/

B

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

genildof

Pedrosa:
Baixe essa apostila, vale a pena!

Cara, valeu pela dica da apostila…

Criado 31 de outubro de 2006
Ultima resposta 22 de nov. de 2006
Respostas 9
Participantes 7