Iniciante - Resposta do Servlet

Oi…

Tenho um pequeno teste, uma pagina html e um servlet que faz um cadastro em um banco de dados dos dados recebidos do html, após o cadastro, mando redirecionar para o html original, eu gostaria de fazer no index.html listar abaixo dos campos para cadastro uma lista dos cadastros recentes… Mas eu queria que o servlet mandasse essa informação, sem usar EL misturado com o html.
Como faço isso?

Obrigado

DRauber

Eu acredito que você pode passar via request, session ou context uma coleção, um bean para estes dados ou mesmo uma String enorme usando separadores entre os campos.

Mas da forma que eu estou tentando fazer é certo ?

Como algum experiente faria isso ?

Cadastro (agenda telefone, por exemplo)
Nome, fone, e-mail…

Mas pensando em aumentar bastante isso… não ficando restrito a essa moleza… hehehe

Obrigado

DRauber

qual forma você está tentando?! mostre o código!

Como algum experiente faria isso ?

eu setaria na sessao o atributo que é minha coleção e na pagina pegaria ele e trataria! entendeu?

List<Cliente> clientes = DAO.buscaTodosClientes();
minhaSession.setAttribute("minhaColecao", clientes);

e na pagina faria:

<%
List<Cliente> clientes = (List<Cliente>) minhaSession.getAttribute("minhaColecao");
%>

e Faria o resto

tudo tu montaria tua table!

BEM FACIN!! :smiley:

Obrigado JonathanSSantos…

Mas não consegui fazer. nao sei onde colocar os trechos de código q vc falou… vou postar como eu fiz até aqui.
index.jsp

<%@page contentType="text/html" pageEncoding="windows-1250"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
        <title>Cadastro de Lugares Visitados...Teste</title>
    </head>
    <body>
        <form name="cadastro" action="ServletLocal" method="POST">
            <br><br>
            Seu Nome:&lt;input type="text" name="xiru" value="" size="60" /&gt;
            Onde Está:&lt;input type="text" name="onde" value="" size="60" /&gt;
            &lt;input type="submit" value="...Cadastra..." name="confirma" /&gt;
        &lt;/form&gt;
   &lt;/body&gt;
&lt;/html&gt;

Local.java


package model;

import java.util.Date;

public class Local {

    private Date data;
    private String sujeito;
    private String lugar;


    public Local(String quem, String onde){
        setSujeito(quem);
        setLugar(onde);
    }

    public Date getData() {
        return data;
    }

    public String getSujeito() {
        return sujeito;
    }

    public String getLugar() {
        return lugar;
    }

    public void setData(Date data) {
        this.data = data;
    }

    public void setSujeito(String sujeito) {
        this.sujeito = sujeito;
    }

    public void setLugar(String lugar) {
        this.lugar = lugar;
    }
}

DAO.java

package data;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author douglas
 */
public class DAO {

    Connection c = null;
    PreparedStatement ps;
    ResultSet rs;

    public Connection getConnexao(String uid, String pwd) {
        try {
            Class.forName("org.postgresql.Driver");
            c = DriverManager.getConnection("jdbc:postgresql://localhost/localizador", uid, pwd);
            return c;
        } catch (SQLException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    private void conecta() {
        if (c == null) {
            this.c = getConnexao("postgres", "asus");
        }
    }

    public boolean insRegistro(String sujeito, String lugar) {
        try {
            conecta();
            ps = c.prepareStatement("insert into posicao (quem, lugar) values  (?, ?)");
            ps.setString(1, sujeito);
            ps.setString(2, lugar);
            ps.execute();
            System.out.println("Teste");
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    public List&lt;Object&gt; getRegistros(){
        try {
            conecta();
            ps = c.prepareStatement("select * from posicao");
            rs = ps.executeQuery();
            return (List&lt;Object&gt;) rs;
        } catch (SQLException ex) {
            Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }

    }
}

ServletLocal.java


package servlets;

import data.DAO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Local;

public class ServletLocal extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("&lt;html&gt;");
            out.println("&lt;head&gt;");
            out.println("&lt;title&gt;Servlet ServletLocal&lt;/title&gt;");  
            out.println("&lt;/head&gt;");
            out.println("&lt;body&gt;");
            out.println("&lt;h1&gt;Servlet ServletLocal at " + request.getContextPath () + "&lt;/h1&gt;");
            out.println("&lt;/body&gt;");
            out.println("&lt;/html&gt;");
            */
        } finally { 
            out.close();
        }
    } 

    // &lt;editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + ? esquerda para editar o código."&gt;
    /** 
     * Handles the HTTP &lt;code&gt;GET&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        //PrintWriter writer = response.getWriter();
        DAO dao = new DAO();
        Local local = new Local(request.getParameter("xiru"), request.getParameter("onde"));
        System.out.println("chamada do DAO");
        dao.insRegistro(local.getSujeito(), local.getLugar());
        //processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// &lt;/editor-fold&gt;

}

A inserção do registro funciona certinho…

Obrigado

no teu servlet tu vai setar no teu session a tua coleção!

dai na tua pagina tu vai coloca!

<%
   List<Cliente> clientes = (List<Cliente>) session.getAttribute("clientes");
%>
<table border="1">
   <tr>
      <th>Nome</th>
      <th>Telefone</th>
   </tr>
<%
   for (Cliente cliente : clientes){
%>
   <tr>
      <td><%= cliente.getNome() %></td>
      <td><%= cliente.getTelefone() %></td>
   </tr>
<%}%>
</table> 

Assim na tua pagina vai aparece tua lista de clientes!

:smiley: :smiley: :smiley: :smiley: :thumbup:

vlw JonathanSSantos!

Obrigado, ma acho que ainda está me faltando teoria… vou dar mais uma estudada antes de fazer novos testes…
Não consegui fazer funcionar, mas não desisti. :thumbup:

DRauber