Ir ao conteúdo
  • Cadastre-se

Gravar dados em csv usando get e post


Posts recomendados

Boa tarde Galera,

 

Estou fazendo um formulário usando o Netbeans, e preciso fazer uma servlet Via POST para gravar os dados em um arquivo .CSV separando os caracteres por ";", e chamar uma servlet diretamente via GET deve exibir uma tabela com os dados gravados linha por linha.

 

Consegui fazer o formulário, mas fiz 2 formulário um chamando o GET e outro o POST como mostra abaixo e a servlet chamando os 2 métodos, mas quando chamo a servlet GET os dados não estão gravando linha por linha quando cadastro novos clientes.

 

Formulário:

 

<!DOCTYPE html>


    <head>
        <title>Cadastro Clientes</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="css/estilo.css">
    </head>
    
    <font size="5" color="#083a90" style="font-weight: 900">Cadastro de Clientes</font> </br>
    
    </br>
    </br>
    <body>
    <div id="area">
        
    <form action="ServletCadastro" method="get">
         
        <fieldset>
        
        <legend><font style="font-weight: 900">Informações do Cliente - doGet</font></legend>
        <label for="nome"> Nome: </label>
        <input type="text" name="txtnome" size="40" placeholder="Inserir Nome" required="required"></br></br>
        
        <label for="Telefone"> Telefone: </label>
        <input type="text" name="txttelefone" placeholder="inserir Telefone" size="30" required="required"><br><br>
        
        <label for="endemail"> E-mail: </label>
        <input type="text" name="txtemail" size="40" placeholder="Digitar um e-mail válido" required="required"> <br><br> 
        
        <input type="submit" value="Enviar" />
        
        </fieldset>
    </form>
    </div>   <br>
    
        <div id="area2">
        
    <form action="ServletCadastro" method="post">
         
        <fieldset>
        
        <legend><font style="font-weight: 900">Informações do Cliente - doPost</font></legend>
        <label for="nome"> Nome: </label>
        <input type="text" name="txtnome" size="40" placeholder="Inserir Nome" required="required"></br></br>
        
        <label for="Telefone"> Telefone: </label>
        <input type="text" name="txttelefone" placeholder="inserir Telefone" size="30" required="required"><br><br>
        
        <label for="endemail"> E-mail: </label>
        <input type="e-mail" name="txtemail" size="40" placeholder="Digitar um e-mail válido" required="required"> <br><br> 
        
        <input type="submit" value="Enviar" />
        
        </fieldset>
    </form>
            
 
            
    </div>
        
    </body> 
 </form>
        

 

Servlets:

 


package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import modelo.Cadastro;
       
public class ServletCadastro extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

    private static final long serialVersionUID = 1L;

    
    public ServletCadastro() {
        super();
    } 

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
        
        ServletOutputStream out = response.getOutputStream();
        response.setContentType("text/html;charset=UTF-8");
                
        
        String name = request.getParameter("txtnome");
        String telefone = request.getParameter("txttelefone");
        String email = request.getParameter("txtemail");
        
        // CRIAR O OBJETO Cadastro
        Cadastro objCadastro = new Cadastro (name, telefone, email);
        
        String csv = objCadastro.getNome() + ";" + objCadastro.getTelefone() + ";" + objCadastro.getEmail();
        
        createCsvFile(csv);
        
        try {

        //Criação de um buffer para a ler de uma stream
        BufferedReader StrR = new BufferedReader(new FileReader("C:\\Users\\carlosalexandre\\Documents\\tabela.csv"));

        String Str;
        String[] TableLine = null;

        //Essa estrutura do looping while é clássica para ler cada linha
        //do arquivo 
        while((Str = StrR.readLine())!= null){
        //Aqui usamos o método split que divide a linha lida em um array de String
        //passando como parametro o divisor ";".
        TableLine = Str.split(";");


        String html = "<html><head><title>Dados do Cliente</title>" +
            "</head><body><h1 align='center'>Cliente cadastrado</h1>" +
                
                   "<table><tr><th>Nome</th><th>Telefone</th><th>Email</th></tr><tr><td>"+
                 TableLine[0].toString()+ "</td><td>"+ 
                 TableLine[1].toString()+ "</td><td>"+
                 TableLine[2].toString()+ "</td></tr></table></body></html>" ;

        out.print(html);


        StrR.close();

}
        }

        catch (FileNotFoundException e) {
        e.printStackTrace();

        catch (IOException ex){
        ex.printStackTrace();
}
        
    }      

    
        
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        ServletOutputStream out = response.getOutputStream();
        response.setContentType("text/html;charset=UTF-8");
                
        
        String name = request.getParameter("txtnome");
        String telefone = request.getParameter("txttelefone");
        String email = request.getParameter("txtemail");
        
        // CRIAR O OBJETO Cadastro
        Cadastro objCadastro = new Cadastro (name, telefone, email);
        
        response.setContentType("text/html");
        
        String csv = objCadastro.getNome() + ";" + objCadastro.getTelefone() + ";" + objCadastro.getEmail();
        
        createCsvFile(csv);
        
       
        
    }
    
    
    public void createCsvFile(String csv){ 
    //A estrutura try-catch é usada pois o objeto BufferedWriter exige que as
    //excessões sejam tratadas
    try{

    //Criação de um buffer para a escrita em uma stream
    BufferedWriter StrW = new BufferedWriter(new FileWriter("C:\\Users\\carlosalexandre\\Documents\\tabela.csv"));

    //Escrita dos dados da tabela
    StrW.write(csv + "\n"); 

    //Fechamos o buffer
    StrW.close(); 
}
    catch (FileNotFoundException ex)
{
    ex.printStackTrace(); 
}
    catch (IOException e)
{
    e.printStackTrace(); } 
}
    
    public void readCsvFile(){

    //A estrutura try-catch é usada pois o objeto BufferedWriter exige que as
    //excessões sejam tratadas
    try {

    //Criação de um buffer para a ler de uma stream
    BufferedReader StrR = new BufferedReader(new FileReader("C:\\Users\\carlosalexandre\\Documents\\tabela.csv"));

    String Str;
    String[] TableLine;

    //Essa estrutura do looping while é clássica para ler cada linha
    //do arquivo 
    while((Str = StrR.readLine())!= null){
    //Aqui usamos o método split que divide a linha lida em um array de String
    //passando como parametro o divisor ";".
    TableLine = Str.split(";");

    //O foreach é usadao para imprimir cada célula do array de String.
    for (String cell : TableLine) { 

    System.out.print(cell+" "); 
}

    System.out.println("\n");
}
    //Fechamos o buffer
    StrR.close();

}

    catch (FileNotFoundException e) {
    e.printStackTrace();

    catch (IOException ex){
    ex.printStackTrace();
}

    

}

    

   
}

 
    

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!