Erro ao Validar Login! está errado o jeito q to fazendo?
11 respostas
Jaison
Olá pessoal estou com um problema eu tenhu uma página index.jsp e nela tem dois campos codigo do aluno e o outro campo senha e um botão que envia os dados pelo método get até um sevlet chama ValidaUsers, esse servlet faz uma conexão com o banco e verifica se é o mesmo codigo do usuario e senha o o internauta digitou no index.jsp. O problema é que quando eu rodo a aplicação (digitanto codigo e senha) ele da um java.lang.NullPointerException, eu ainda não encontrei o erro, até porque ta tudo certo (acho) alguém pode me ajudar!!!
Dica crie uma classe somente para conexão, e suas classes de negócios instanciam essa conexão, caso sua aplicação cresça vc não irá reptir toda hora a conexão, e seria bakana também tirar essa lógica da servlet deixando em uma outra classe de negócio.
Pesquise sobre MVC.
Jaison
continua dando o erro java.lang.NullPointerException rodson
Mais alguém pode me ajuda???
Jaison
Pedrosa:
Dica crie uma classe somente para conexão, e suas classes de negócios instanciam essa conexão, caso sua aplicação cresça vc não irá reptir toda hora a conexão, e seria bakana também tirar essa lógica da servlet deixando em uma outra classe de negócio.
Pesquise sobre MVC.
Realmente sua dica, foi de muita importancia Pedrosa, mas o meu erro ainda continua
publicclassLoginDAO{privateConnectionconnection;privateStringstrSQL;publicLoginDAO(Connectioncon){this.connection=con;}publicLoginDAO()throwsException{this.connection=ConnectionFactory.getConnection();}publicbooleanvalidaLogin(LoginBeanlogin)throwsSQLException{Stringsql="SELECT * FROM USUARIO WHERE USUARIO = ? AND SENHA = ?";PreparedStatementstmt=this.connection.prepareStatement(sql);stmt.setString(1,login.getUsuario().trim());stmt.setString(2,login.getSenha().trim());ResultSetrs=stmt.executeQuery();if(rs.next()){returntrue;}else{returnfalse;}}}
valeu pedrosa, valeu eu não consegui adaptar a sua solução no meu problema
caramba e como eu preciso conectar esse troço!!!
num entendo pq ta dando nullPointerException nesse troço!!!
pra mim está tudo certo!
mesmo assim valeu! abraço!!!
alguém tem algo a manifestar, sobre esse problema?
Pedrosa
Alguma variável esta chegando com valor null, vai printando para saber qual, quanto a minha solução é bem tranquilo a adptar ao seu caso, só mudar senha por código, mas em logins validamos com usuario e senha mesmo.
Qual foi a dificuldade para usar do jeito que eu falei?
Jaison
Pedrosa:
Alguma variável esta chegando com valor null, vai printando para saber qual, quanto a minha solução é bem tranquilo a adptar ao seu caso, só mudar senha por código, mas em logins validamos com usuario e senha mesmo.
Qual foi a dificuldade para usar do jeito que eu falei?
valeu sua ajuda Pedrosa, mas essa é a minha primeira conexão em banco. Por isso não estou conseguindo adaptar, mas valeu mesmo assim
eu quero mesmo era saber pq oq eu fiz tah dando nullPointException, não intendi onde errei…
mas valeu!
R
robsonsan
Pedrosa esse seu exmplo acho que se enquadra no que estou fazendo o que eu mudo no seu exemplo da classe “ControlerAction”
no meu caso usando cookies ou o que muda na minha aplicação para usar session
R
robsonsan
Pedrosa esse seu exmplo acho que se enquadra no que estou fazendo o que eu mudo no seu exemplo da classe “ControlerAction”
no meu caso usando cookies ou o que muda na minha aplicação para usar session
Felagund
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//processRequest(request, response);intcodigoAluno=Integer.parseInt(request.getParameter("campoCodAluno"));StringsenhaAluno=request.getParameter("campoSenha");//valida(codigoAluno,senhaAluno); try{Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql://localhost/progweb","java","senha");}catch(Exceptione){e.printStackTrace();}try{PreparedStatmentsmt=con.prepareStatment("SELECT * FROM Valida Where Login = ? and Senha = ?");//Utilize sempre o preparedStatment ele é mais seguro e evita injection no seu codigosmt.setString(1,codigoAluno);smt.setString(2,senhaAluno);ResultSetrs=smt.executeQuery();if(rs.next()){System.out.println("Senha Correta");}else{System.out.println("Senha Incorreta");}}catch(SQLExceptionsqle){sqle.printStackTrace();}}
Experimento usar esse codigo, as vezes pode ser necessaria alguma correçao caso tenha digitado algo errado, mais deve funcionar.