Ir ao conteúdo
  • Cadastre-se
CURIOSO22

Gravar dados em csv usando get e post

Recommended Posts

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

    

}

    

   
}

 
    

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×