Usuário e Senha Simples

4 respostas
T

Olá, sou iniciante no java e estava tentando fazer uma tela de usuário e senha que autentica pelo banco de dados mysql.

Criei uma página html que recebe o formulario e fiz uma outra que interage com uma classe do java… e ai é o que tá o problema, tá dando erro… não consigo fazer ele autenticar…

<%@ page import="java.util.*,br.com.thiago.jdbc.*,br.com.thiago.jdbc.dao.*,br.com.thiago.jdbc.modelo.*" %>
<html>
	<head>
		<title>Pagina Teste</title>
	</head>
	<body>
<%

	//UsuarioDAO dao = new UsuarioDAO();
	
	
	//for (int i = 0; i < usuarios.size(); i++)
	//{
		Usuario usuario = new Usuario;
		
		String login = request.getParameter("user");
		String senha = request.getParameter("pass");
		
		if(login.equals(usuario.getUsuario()) && senha.equals(usuario.getSenha())
		{
			out.println("Login executado com sucesso!!!");
			session.putValue("loginUsuario", login_test);
			session.putValue("senhaUsuario", senha_test);
			out.println("<script>document.location.href='logado.jsp';</script>");
		}
		
		else
		{
			out.println("Usuário e/ou Senha inválidos. <a href='teste.jsp'>Voltar</a>");
		}
%>

Essa é a segunda página que recebe os parametros da pagina de login… e aqui embaixo segue minha classe do java…

public boolean verificaUsuario (Usuario usuario) throws SQLException
	{
		PreparedStatement stmt = this.connection.prepareStatement("select * from usuarios where usuario=? and senha=?");
		stmt.setString(1, usuario.getUsuario());
		stmt.setString(2, usuario.getSenha());
		
		ResultSet rs = stmt.executeQuery();
		
		try
		{
			if(!rs.next())
			{
				return false;
			}
			return !rs.next();
		}
		finally
		{
			rs.close();
			stmt.close();
		}
	}

Alguém poderia me dar uma luz para fazer algo mais simples ou simplesmente arrumar isto que estou tentando fazer?

Obrigado.

4 Respostas

juniormaverick

Cara já que você está iniciando e consequentemente já comece a aprender a coisa de forma mais correta, ou seja, sei que você é iniciante mas não coloca código java na pagina não isto é horrivel. Utilize JSP + Servlet.

Por isto estou deixando três links de tutoriais para você, da uma olhada que você irá fazer este exemplo seu fácil fácil.

http://www.web4u.eti.br/?p=117
http://www.javafree.org/javabb/viewtopic.jbb?t=10956
http://www.guj.com.br/java.tutorial.artigo.9.1.guj

Você lendo estes tutoriais você consiguirá melhorar seu exemplo.

T

Muito obrigado pela dica, irei seguir seus exemplos mencionados.

Abraços

caiomacedor

tandrade86 o Junior te total razão, eu tb sou meio que iniciante em JAVA tenho muito que aprender tb. E ja ouvi o mesmo conselho de todos os profissionais que eu conheço. Por coicidencia eu acabei de fazer um sistema de Login que atende as nescessidades pra um problema como o teu. Se vc tiver interesse me fale que eu posto os códigos aqui. Ou então passe um endereço de email que eu te encaminho.
OBS: Estou usando JSP, Servlet, Struts 1.3, e javaScript pra validações.

C

Oi caiomacedor,

estou tendo este mesmo problema. Inclusive postei um topico aqui com o titulo: "Problema na autenticação de usuário com senha criptografada na base "

Estou usando JSP, Struts e Hibernate. Além de base Mysql.

O meu codigo está funcionando, ou seja, preencho o formulario de login(email) e senha, submeto o form mandando para um servlet, tenho uma query HQL (utilizando etHibernateTemplate().getSessionFactory()
.getCurrentSession().getNamedQuery("")) que está declarada no hibernate atraves do código:

<![CDATA[
    SELECT usuario.chavePrimaria FROM UsuarioImpl usuario WHERE usuario.email = :email and usuario.senha = :senha	
  ]]>

Se ele achar submete para o index senao devolta para a tela de login com a mensagem de login nao encontrado. Mas o problema é o seguinte:

No meu campo SENHA da base do Mysql, está criptografado com a funcao PASSWORD(’’) e o hibernate simplesmente nao consegue fazer essa comparacao retornando a mesnagem que o usuario nao existe. Mas caso eu coloque uma senha q NAO esteja criptografada, o hibernate acha numa boa!!

Como indico ao hibernate q aquele campo esta guardando uma senha???

Poderia me ajudar??

Criado 18 de março de 2008
Ultima resposta 9 de abr. de 2008
Respostas 4
Participantes 4