Aplicação WEB JSP [Resolvido]

5 respostas
Jericho

Pessoal, estou desenvolvendo minha primeira aplicação WEB bem simples e tô tendo problemas, alguém poderia me ajudar por favor?

Estou trabalhando com os métodos doPost e doGet e acho que o problema está no método doPost. Ao executar a aplicação o console do Netbeans não retorna nenhum erro.

Classe: NovoContato
<%-- 
    Document   : index
    Created on : 20/06/2013, 23:24:17
    Author     : Jericho
--%>

<%@page import="Entidade.Contato"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Agenda de Contatos</title>
    </head>
    <body>
        <form action="InserirContato" method="post"> // linha que declaro a ação que seria o "InserirContato" e o método que seria o "post"
            Nome: <input type="text" name="nome"> <br>
            Telefone: <input type="text" name="telefone"> <br>
            Celular:<input type="text" name="celular"> <br>
            Nascimento:<input type="text" name="nascimento"> <br>
            Endereço:<input type="text" name="endereco"> <br>
            Cidade:<input type="text" name="cidade"> <br>
            Estado:<input type="text" name="estado"> <br>
            <input type="submit" value="Salvar">
        </form>
    </body>
</html>

Classe: InserirContato

package Servlet;

import Conexao.Conexao;
import Entidade.Contato;
import EntidadeDAO.JDBCContatoDAO;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class InserirContato extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
        } finally {
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        String nome = request.getParameter("nome");
        String telefone = request.getParameter("telefone");
        String celular = request.getParameter("celular");
        String nascimentoStr = request.getParameter("nascimento");
        String endereco = request.getParameter("endereco");
        String cidade = request.getParameter("cidade");
        String estado = request.getParameter("estado");

        Date date = null;
        try {
            date = new SimpleDateFormat("dd/mm/yyy").parse(nascimentoStr);
        } catch (ParseException ex) {
            Logger.getLogger(InserirContato.class.getName()).log(Level.SEVERE, null, ex);
        }

        Contato novoContato = new Contato();
        novoContato.setNome(nome);
        novoContato.setTelefone(telefone);
        novoContato.setCelular(celular);
        novoContato.setDataNascimento(date);
        novoContato.setEndereco(endereco);
        novoContato.setCidade(cidade);
        novoContato.setEstado(estado);

        Conexao conexao_banco = new Conexao();
        Connection conexao = conexao_banco.conexao();

        JDBCContatoDAO dao = new JDBCContatoDAO(conexao);
        dao.inserir(novoContato);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

5 Respostas

drsmachado

Mas o que acontece, camarada?

Jericho
Não está inserindo no banco de dados e no console do NetBeans não apresenta nenhum erro.
package Conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

    private Connection conexao;

    public Connection conexao() {

        try {
            //Configura servidor de Banco de Dados e nome do Banco
            String serverName = "localhost";
            String mydatabase = "agenda";
            //Login e senha do banco
            String username = "root";
            String password = "root";
            // Carregando o JDBC Driver
            String driverName = "com.mysql.jdbc.Driver";
            Class.forName(driverName);
            // Criando a conexão com o Banco de Dados
            String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
            Connection con = DriverManager.getConnection(url, username, password);
            return con;
        } catch (ClassNotFoundException e) {
            System.out.println("Driver não encontrado: " + e.toString());
        } catch (SQLException e) {
            System.out.println("Erro ao conectar o banco: " + e.toString());
        }
        return null;

    }

    public void fecharConexao() {
        try {
            conexao.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
package EntidadeDAO;

import Entidade.Contato;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JDBCContatoDAO implements ContatoDAO {

    Connection conexao;

    public JDBCContatoDAO(Connection conexao) {
        this.conexao = conexao;

    }

    @Override
    public void inserir(Contato contato) {
        String comando = "INSERT INTO CONTATO "
                + "(NOME, TELEFONE, CELULAR, DATANASCIMENTO, ENDERECO, CIDADE, ESTADO)"
                + "VALUES(?,?,?,?,?,?,?)";

        PreparedStatement p;
        try {
            p = this.conexao.prepareStatement(comando);
            p.setString(1, contato.getNome());
            p.setString(2, contato.getTelefone());
            p.setString(3, contato.getCelular());
            p.setDate(4, new java.sql.Date(contato.getDataNascimento().getTime()));
            p.setString(5, contato.getEndereco());
            p.setString(6, contato.getCidade());
            p.setString(7, contato.getEstado());
        } catch (SQLException ex) {
            Logger.getLogger(JDBCContatoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    @Override
    public List<Contato> listarTodos() {
        return null;
    }
}
package EntidadeDAO;

import Entidade.Contato;
import java.util.List;

public interface ContatoDAO {

    public void inserir(Contato contato);

    public List<Contato> listarTodos();
}
fredericomaia10

Pelo visto só faltou executar a query. =)

PreparedStatement p;  
        try {  
            p = this.conexao.prepareStatement(comando);  
            p.setString(1, contato.getNome());  
            p.setString(2, contato.getTelefone());  
            p.setString(3, contato.getCelular());  
            p.setDate(4, new java.sql.Date(contato.getDataNascimento().getTime()));  
            p.setString(5, contato.getEndereco());  
            p.setString(6, contato.getCidade());  
            p.setString(7, contato.getEstado());  
            //Aqui !
            p.execute();

           } ...
Jericho
fredericomaia10:
Pelo visto só faltou executar a query. =)
PreparedStatement p;  
        try {  
            p = this.conexao.prepareStatement(comando);  
            p.setString(1, contato.getNome());  
            p.setString(2, contato.getTelefone());  
            p.setString(3, contato.getCelular());  
            p.setDate(4, new java.sql.Date(contato.getDataNascimento().getTime()));  
            p.setString(5, contato.getEndereco());  
            p.setString(6, contato.getCidade());  
            p.setString(7, contato.getEstado());  
            //Aqui !
            p.execute();

           } ...

Muito obrigado, era isso mesmo falta de atenção minha nunca mais vou esquecer desse detalhe muito importante.
Temos que quebrar a cabeça um pouquinho pra aprender, haha!

leofariasrj25

Curiosidade: você deu import em uma classe que não está sendo usada na página novo contato:

<%@page import="Entidade.Contato"%>

Não faz sentido dar import nela, já que ao enviar o formulário vai ser tudo passado como parâmetros individuais no corpo da request.

Criado 21 de junho de 2013
Ultima resposta 21 de jun. de 2013
Respostas 5
Participantes 4