Ir para conteúdo
Fórum Script Brasil
  • 0

HTTP Status 500 - Internal Server Error, java.lang.NullPointerException


gabriel.rechds

Pergunta

Opa, to fritando a cabeça aqui com um submit, se alguém puder me ajudar. 

OBS: sobre os comentários, sei que tem muitos, mas é porque to aprendendo e gosto de comentar em códigos didáticos kkkk

Connector:

package com.fornecedor.jdbc;

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

public class Connector {
	
	public static Connection getConnection() { //método estático, não preciso instanciar objeto para invocá-lo
	Connection con = null; // Variável de conexão ao BD.
		try {
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fornecedor?useTimezone=true&serverTimezone=America/Sao_Paulo", "root", "Carbolitium@300");
			/*
			 * No comando acima, estamos definindo o valor de con para fechar conexão com o Banco de Dados. 
			 * O método getConnection está dentro da classe DriverManager
			 * No caminho do banco de dados estamos especificando a TimeZone também
			 */
			System.out.println("Conectado com sucesso!");
			} catch(SQLException e) {
				System.out.println("Não foi possível conectar ao BD.\n Mensagem: " + e.getMessage());
			}
		return con; // caso dê certo, retorna con com valor o BD, caso não dê certo, retorna con com valor NULL.
	}
}

* Foi testada a conexão, está ok.

Método cadastrar no DAO: 

package com.fornecedor.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.fornecedor.entidades.Comprador;

public class CompradorDAO {
	//comando para montar o SQL
	private Connection con = Connector.getConnection();
	
	//create
	public void cadastrar(Comprador comprador) {
		String sql = "INSERT INTO COMPRADOR(nome, sobrenome, ramal, login, senha) values (?,?,?,?,?)";
		
		//construção preparedstatement com SQL
		
		try {
			
			PreparedStatement preparador = con.prepareStatement(sql);
			
			preparador.setString(1, comprador.getNome());
			preparador.setString(2, comprador.getSobrenome());
			preparador.setString(3, comprador.getRamal());
			preparador.setString(4, comprador.getLogin());
			preparador.setString(5, comprador.getSenha());
			
			//injeta o SQL
			preparador.execute();
			
			//encerra o preparador
			preparador.close();
			
			System.out.println("Cadastrado com sucesso!");
			
		} catch (SQLException e) {
			System.out.println("Mensagem: " + e.getMessage());
		}
	}

* Foi testado o método cadastrar como Java Application, está ok.

Formulário:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="ISO-8859-1">
		<title>Cadastre seu usuário!</title>
	</head>
	
	<body>
		<form action="compradorcontroller.do" method="post">
			
			<label>Nome: </label>
			<input type="text" name="txtnome" value="" size="20" maxlength="30"/>
			
			<label>Sobrenome: </label>
			<input type="text" name="txtsobrenome" value="" size="20" maxlength="40"/>
			
			<label>Ramal: </label>
			<input type="text" name="txtramal" value="" size="20" maxlength="4">
			
			<label>Login: </label>
			<input type="text" name="txtlogin" value="" size="20" maxlength="20">
			
			<label>Senha: </label>
			<input type="password" name="txtsenha" value="" maxlength="6"/>
			
			<input type="submit" value="Salvar"/>
		
		</form>
	</body>
	
</html>

 

Controller:

package com.fornecedor.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.fornecedor.entidades.Comprador;
import com.fornecedor.jdbc.CompradorDAO;


@WebServlet("/compradorcontroller.do")
public class CompradorController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public CompradorController() {
        super();        
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("Chamando metodo POST");
		
		//Recebe os dados pela tela
		String nome = request.getParameter("txtnome");
		String sobrenome = request.getParameter("txtsobrenome");
		String ramal = request.getParameter("txtramal");
		String login = request.getParameter("txtlogin");
		String senha = request.getParameter("txtsenha");
		
		//seta os valores nas variáveis privadas da classe comprador, dentro do objeto comprador
		Comprador comprador = new Comprador();
		comprador.setNome(nome);
		comprador.setSobrenome(sobrenome);
		comprador.setRamal(ramal);
		comprador.setLogin(login);
		comprador.setSenha(senha);
		
		//executa o método de cadastrar
		CompradorDAO compradorDAO = new CompradorDAO();
		compradorDAO.cadastrar(comprador);
		
		//resposta após o submit
		PrintWriter saida = response.getWriter();
		saida.println("Cadastrado com sucesso!");
		
		
	}

}

 

Editado por gabriel.rechds
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Não foi possível conectar ao BD.
 Mensagem: No suitable driver found for jdbc:mysql://localhost:3306/fornecedor
fev 16, 2020 5:23:55 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [com.fornecedor.controller.CompradorController] in context with path [/fornecedor] threw exception

 

Erro ao executar o botão. O driver está na pasta lib.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...