Jump to content
Fórum Script Brasil
  • 0

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


Question

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", "[email protected]");
			/*
			 * 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!");
		
		
	}

}

 

Edited by gabriel.rechds
Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644525
×
×
  • Create New...