Recuperando dados de BD

12 respostas
diogo.delgaudio

boa tarde, amigos…
estou tentando recuperar os dados de um DB, via um servlet, porém, não tenho a mínima idéia de como fazer. =\ alguém pode me dar uma idéia? ou algum link com código para estudo! valeu :slight_smile:

12 Respostas

joaosouza

Olá diogo.delgaudio blz…

Dá uma olhada nesse artigo aqui do forum…


http://www.guj.com.br/java.tutorial.artigo.7.1.guj

Espero que te ajude, qualquer coisa é só falar…

diogo.delgaudio

joaosouza:
Olá diogo.delgaudio blz…

Dá uma olhada nesse artigo aqui do forum…


http://www.guj.com.br/java.tutorial.artigo.7.1.guj

Espero que te ajude, qualquer coisa é só falar…

fala, cara… a classe de conexão e com o statement jah está feita. o servlet é q eu não estou conseguindo fazer :\ não sei como pegar a informação do bd e jogar na JSP.

Marky.Vasconcelos

www.caelum.com.br

Tem a apostila FJ-21, no capitulo sobre JSTL tem algumas coisas que te ajudam

Guilherme_Gomes

JSP = Java Servlet Page

Jsp é um facilitador, se você usar uma Servlet e mapea-la, para que ela escreva o HTML voce tem que fazer o seguinte:

java.io.PrintWriter pw = response.getWriter();

por exemplo! Assim, você pode escrever na tela:

pw.println("<html> . . . </html>");

Eu aconselho a usar a própria JSP chamando classes que retornam os resultados de busca no BD e ele escreve o HTML certinho!

Se é isso que é a sua duvida ^^

Abraços.

diogo.delgaudio

Mark_Ameba:
www.caelum.com.br

Tem a apostila FJ-21, no capitulo sobre JSTL tem algumas coisas que te ajudam

o jstl tb jah tah prontinho lah… só não saquei ainda como fazer o servlet. xD =\

Guilherme Gomes:
JSP = Java Servlet Page

Jsp é um facilitador, se você usar uma Servlet e mapea-la, para que ela escreva o HTML voce tem que fazer o seguinte:

java.io.PrintWriter pw = response.getWriter();

por exemplo! Assim, você pode escrever na tela:

pw.println("<html> . . . </html>");

Eu aconselho a usar a própria JSP chamando classes que retornam os resultados de busca no BD e ele escreve o HTML certinho!

Se é isso que é a sua duvida ^^

Abraços.

a dúvida é no servlet msmo… :slight_smile:

Guilherme_Gomes

Então fale qual a sua duvida na Servlet, senão fica dificil ajudar. Uma previa:

public class SuaServlet extends HttpServlet{
		
	protected void doPost(
		HttpServletRequest request,
		HttpServletResponse response) 
			throws ServletException, IOException {
		...
	}
		
	protected void doGet(
		HttpServletRequest request,
		HttpServletResponse response) 
			throws ServletException, IOException {
		...
	}
diogo.delgaudio

é exatamente isso, eu não tenho idéia de como fazer o servlet, pois o exemplo q tenho está completamente confuso (pelo menos pra mim, que sou iniciante), se alguém conseguir me explicar o servlet-exemplo:

package br.com.digirio.cadastrosweb.servlet.produto;

import br.com.digirio.cadastroweb.jdbc.implementacao.CadastroProduto;
import br.com.digirio.cadastroweb.modelo.produto.Produto;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import javax.servlet.*;
import javax.servlet.http.*;

public class ConsultarProduto extends HttpServlet {
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
        String evento = request.getParameter("evento");
        
        HttpSession session = request.getSession();
        
        if (evento != null ) {
            
            if ((evento.equals("consultar")) || (evento.contains("excluir")) ||(evento.contains("alterar"))){
                

                
                CadastroProduto cp = new CadastroProduto();    
                
                
                
                
                
                
                if (evento.contains("excluir")||evento.contains("alterar")) {
                    
                    
                    
                    
                    
                    ArrayList produtos = (ArrayList) session.getAttribute("produtos");
                    
                    Produto p = (Produto) produtos.get(Integer.parseInt(evento.substring(7)));
                    
                    
                    
                    
                    
                    
                    if (evento.contains("excluir")){
                        
                        System.out.println("excluindo......");
                        
                        cp.excluir(p);
                        
                    }else if (evento.contains("alterar")){
                        
                        session.setAttribute("produto", p);
                        
                    
                    }                    
                }
                
                
                ArrayList produtos = cp.consultarN(request.getParameter("descricao"));
                
                session.setAttribute("produtos", produtos);
                
                request.setAttribute("descricao", request.getParameter("descricao"));
                
            }
            
        }else{
            
            session.setAttribute("produtos", null);
            
        }   
        
        RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/jsp/consultaproduto.jsp");
        
        rd.forward(request, response);
        
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}

brigadão, galera!

Guilherme_Gomes

Por partes:
Os métodos doGet e doPost são chamados logo que se entra na Servlet. Por exemplo, se voce escreve no link:
http://www.link.com.br/servlet?evento=excluir
Voce esta passando por metodo Get as informações, para usar o Post um exemplo é o …

Ambos os métodos (doGet e doPost) estão chamando a função processRequest, então realemente não importa como vc passa os dados.

O codigo abaixo pega o que está no evento, no exemplo acima é “excluir” o valor:

String evento = request.getParameter("evento");

Não vou comentar os codigos simples, como IFs e instanciações.

HttpSession session = request.getSession();

Pegou a sessão para usar os atributos dela:

ArrayList produtos = (ArrayList) session.getAttribute("produtos");

Em algum lugar ele deve colocar na sessão o atributo, algo assim:

ArrayList al = new Arraylist();
al.add("algo");
session.setAttribute("produtos", al);

De resto acho que voce consegue entender, qualquer coisa fala!

diogo.delgaudio

ahhn, sim… agora tdo está clareando :slight_smile:

ainda tenho uma dúvida com relação ao código, o q significa essa parte?

ArrayList produtos = (ArrayList) session.getAttribute("produtos"); 
                     
                    Produto p = (Produto) produtos.get(Integer.parseInt(evento.substring(7)));

obrigado, guilherme!:slight_smile:

Guilherme_Gomes
ArrayList produtos = (ArrayList) session.getAttribute("produtos");  
Produto p = (Produto) produtos.get(Integer.parseInt(evento.substring(7)));

A primeira linha está pegando o ArrayList que está na sessão.
A segunda pega um produto que esta nessa lista. A posição da lista em que está o produto é referenciado está logo após a palavra “alterar” ou “excluir”, já que ele só pega o produto se o evento for um desses. Por exemplo, se chamar o link:

http://www.link.com.br/servlet?evento=alterar5

Ele chama essa servlet, pega a lista da sessão e pega o produto na posição 5 da lista, pode perceber que a substring 7 é o número:

0=a 1=l 2=t 3=e 4=r 5=a 6=r 7=N
0=e 1=x 2=c 3=l 4=u 5=i 6=r 7=N

diogo.delgaudio

eh, eu só não sei aonde é setado o alterar N? em q parte do código a posição aparece? mas finalmente eu to começando a entender! :smiley:

diogo.delgaudio

up?

Criado 4 de setembro de 2007
Ultima resposta 5 de set. de 2007
Respostas 12
Participantes 4