Olá gente, estou fazendo um curso de java web na udemy, cheguei numa parte onde o professor começa a usar o servlet para autenticar um login no banco de dados, só que no video ele usa o Oracle que ja está pre-configurado de outro curso dele, ai eu me perdi todo no curso e to a 2 dias tentando continuar o curso mas nao consigo… Oque eu fiz ?
Eu to usando um banco de dados Mysql com o Wampp 3.1
eu baixei o Driver do Mysql e coloquei na lib do Eclipse
mysql-connector-java-5.1.45-bin.jar
Eu to usando o Tomcat 8.0 no Eclipse para o java…
Vou disponibilizar o codigo aqui se alguem puder me ajudar:
Pagina Login.html:
Summary
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Pagina de formulario</title>
<link rel="stylesheet" type="text/css" href="lib/css/estilo.css"/>
</head>
<body>
<form name="form" action="http://localhost:9090/4Disciplinas/ServletControlador" method="post">
CPF: <br/>
<input type = "text" name = "cpf" maxlength="14" title = "
Digite no formato: XXX.XXX.XXX.xx" required/> <br/>
Senha: <br/>
<input type = "password" name="senha" title="Preencha o campo senha" required /> <br/>
<input type = "submit" value="Entrar"/>
</form>
</body>
</html>
ServletAutenticador:
Summary
package unidade2;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class ServletAutenticador
*/
@WebServlet("/ServletAutenticador")
public class ServletAutenticador extends HttpServlet {
private static final long serialVersionUID = 1L;
static Connection conexao;public ServletAutenticador() {
super();
}public void init() throws ServletException {
try{System.out.println("Tentando"); Class.forName("com.mysql.jdbc.Driver"); conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/cursojava","root",""); conexao.setAutoCommit(false); } catch (SQLException | ClassNotFoundException e){ System.out.println("Driver não encontrado"); e.printStackTrace(); }
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cpfmascara = request.getParameter(“cpf”);
long cpf = Long.parseLong(cpfmascara);
String senha = request.getParameter(“senha”);
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
String consulta = “SELECT * FROM login where cpf = '”+cpf+"’ and senha=’"+senha+"’";
Statement statement;
try {
statement = conexao.createStatement();ResultSet rs = statement.executeQuery(consulta); if(rs.next()){ out.println("<h2>Usuario Autenticado</h2>"); }else out.println("<h2>Usuario não autenticado</h2>"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }
}
}
Seguinte, o erro é que quando clico em Submit na tela de login ele me direciona para a pagina de ERROR 500.
Eu fiz o debugging no eclipse e parece que o erro está aqui:
Summary
public void init() throws ServletException {
try{
System.out.println("Tentando");
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/cursojava","root","");
conexao.setAutoCommit(false);
} catch (SQLException | ClassNotFoundException e){
System.out.println("Driver não encontrado");
e.printStackTrace();
}
}
Quando chega em
Class.forName(“com.mysql.jdbc.Driver”);
conexao = DriverManager.getConnection(“jdbc:mysql://localhost:3306/cursojava”,“root”,"");
o debugging vai pro catch e sinaliza que nao encontrou o drive, porem está na lib…
O banco nao tem senha mesmo