Erro na página de verificação de login

6 respostas
D

Olá a todos.

Estou apanhando para um erro em uma página JSP.

Segue as excessões:

An error occurred at line: 17 in the jsp file: /verificar_login_administracao.jsp connection cannot be resolved

Agora o código:

// Envia comando de verificação de login try { java.sql.Statement stmt = connection.createStatement(); // acusa erro nesta linha java.sql.ResultSet rs = stmt.executeQuery("SELECT cod, senha, nome, FROM administrador WHERE login = '"+ sLogin + "'");

Não entendi o porque de acusar erro, já que está como deveria estar.

O que será que aconteceu?

Uma ajuda seria bem viável.

Obrigado.

6 Respostas

T

Ele nao esta conseguindo fazer a conexao com o banco… cola o a parte aonde vc faz a conexao com o banco…

abraço

D

Aqui está.

verificar_login_administracao.jsp

<%-- 
    Document   : verificar_login_administracao
    Created on : 01/09/2008, 03:58:14
    Author     : Administrador
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<% // Captura parâmetros *****
String sLogin = request.getParameter("login");
String sSenha = request.getParameter("senha");

// Envia comando de verificação de login 
try {
    java.sql.Statement stmt = connection.createStatement();
    java.sql.ResultSet rs = stmt.executeQuery("SELECT cod, senha, nome, FROM administrador WHERE login = '"+ sLogin + "'");
    
 // Verifica se o "ResultSet" retornou nenhuma linha *****
    rs.last();
    if (rs.getRow() == 0) {  //zero linhas
        %>
        <jsp:forward page="login_administracao.jsp" /> 
        <%
        return;
        }
    
    /** Este comando somente retornará no máximo um elemento, pois "login" 
          deve ser um campo UNIQUE  *****/
    rs.first();
    
    // Verifica se a senha obtida no banco confere com o parâmetro ****
    if (!rs.getString("senha").equals(sSenha))  {   //*** senha não confere
        %> <jsp:forward page="login_administracao.jsp" />
        <%
        }
        else {
        // OK! Usuário logado
        // Atualizar a data de login e depois redirecionar para a tela de administracao  ***
        stmt.executeUpdate("UPDATE administrador SET dtultimoacesso = now() WHERE login = '" + sLogin + "'");
        %> <jsp:forward page="administracao.jsp" />
        <%
        }
    } catch (java.sql.SQLException sqlex) {
        out.println("Erro realizando login: " + sqlex.toString()); 
    }
%>
T

eu nao sei qual banco q vc esta usando entao eu utilizei como exemplo o MySql

<%
 // Captura parâmetros *****   
String sLogin = request.getParameter("login");   
String sSenha = request.getParameter("senha");   
  
// Envia comando de verificação de login   
Class.forName("com.mysql.Driver");   
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/SEU_BANCO DE DADOS");   

try {   
    java.sql.Statement stmt = connection.createStatement();   
    java.sql.ResultSet rs = stmt.executeQuery("SELECT cod, senha, nome, FROM administrador WHERE login = '"+ sLogin + "'");   
       
// Verifica se o "ResultSet" retornou nenhuma linha *****   
    rs.last();   
    if (rs.getRow() == 0) {  //zero linhas   
        %>   
        <jsp:forward page="login_administracao.jsp" />   
        <%   
        return;   
        }   
       
    /** Este comando somente retornará no máximo um elemento, pois "login"  
          deve ser um campo UNIQUE  *****/   
    rs.first();   
       
    // Verifica se a senha obtida no banco confere com o parâmetro ****   
    if (!rs.getString("senha").equals(sSenha))  {   //*** senha não confere   
        %> <jsp:forward page="login_administracao.jsp" />   
        <%   
        }   
        else {   
        // OK! Usuário logado   
        // Atualizar a data de login e depois redirecionar para a tela de administracao  ***   
        stmt.executeUpdate("UPDATE administrador SET dtultimoacesso = now() WHERE login = '" + sLogin + "'");   
        %> <jsp:forward page="administracao.jsp" />   
        <%   
        }   
    } catch (java.sql.SQLException sqlex) {   
        out.println("Erro realizando login: " + sqlex.toString());   
    }   
%>
D

Eu fiz assim:

Class.forName("org.gjt.mm.mysql.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/rest_web" , "root" , "2017");

Mas novamente excessões:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 16 in the jsp file: /verificar_login_administracao.jsp
Connection cannot be resolved to a type
13: String sSenha = request.getParameter("senha");
14: 
15: Class.forName("org.gjt.mm.mysql.Driver");
16: Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/rest_web" , "root" , "2017");
17: 
18: // Envia comando de verificacao de login 
19: try {

Eu vou passar todo o código, por via das dúvidas:

login_administracao.jsp
<%-- 
    Document   : login_administracao
    Created on : 01/09/2008, 03:54:22
    Author     :  dark123
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Administração - login</title>
    </head>
    <body>
        <h2>Administração - login</h2>
        <form action="verificar_login_administracao.jsp" method="post">
            login: <input type="text" name="login">
                senha: <input type="password" name="senha">
                    <input type="submit" value="entrar">
        </form>
    </body>
</html>
verificar_login_administracao.jsp
<%-- 
    Document   : verificar_login_administracao
    Created on : 01/09/2008, 03:58:14
    Author     : dark123
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<% // Captura parâmetros *****
String sLogin = request.getParameter("login");
String sSenha = request.getParameter("senha");

Class.forName("org.gjt.mm.mysql.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/rest_web" , "root" , "2017");

// Envia comando de verificacao de login 
try {
    java.sql.Statement stmt = connection.createStatement();
    java.sql.ResultSet rs = stmt.executeQuery("SELECT cod, senha, nome, FROM administrador WHERE login = '"+ sLogin + "'");
    
 // Verifica se o "ResultSet" retornou nenhuma linha *****
    rs.last();
    if (rs.getRow() == 0) {  //zero linhas
        %>
        <jsp:forward page="login_administracao.jsp" /> 
        <%
        return;
        }
    
    /** Este comando somente retornará no máximo um elemento, pois "login" 
          deve ser um campo UNIQUE  *****/
    rs.first();
    
    // Verifica se a senha obtida no banco confere com o parâmetro ****
    if (!rs.getString("senha").equals(sSenha))  {   //*** senha não confere
        %> <jsp:forward page="login_administracao.jsp" />
        <%
        }
        else {
        // OK! Usuário logado
        // Atualizar a data de login e depois redirecionar para a tela de administracao  ***
        stmt.executeUpdate("UPDATE administrador SET dtultimoacesso = now() WHERE login = '" + sLogin + "'");
        %> <jsp:forward page="administracao.jsp" />
        <%
        }
    } catch (java.sql.SQLException sqlex) {
        out.println("Erro realizando login: " + sqlex.toString()); 
    }
%>
T

o mysql-connector-xxx.jar esta dentro de sua pasta lib?

D

Sim, está. Estou programando no NetBeans e já importei pra lá.

Veja:

Criado 1 de setembro de 2008
Ultima resposta 1 de set. de 2008
Respostas 6
Participantes 2