Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33090

Gravar dados em csv usando get e post

$
0
0

@Curioso22 escreveu:

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.

O que posso estar fazendo de errado?

Formulário:

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

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

}

}

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33090


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>