Login em página JSF

2 respostas
rapha.java

Pessoal seguinte, estou montando um pequeno projeto com banco de dados e primeiro estou fazendo uma tela de login, nessa tela preciso autenticar se o usuário esta cadastrado no banco, se sim o usuário é direcionado para outra página ( ate ai tudo bem, estou pesquisando uma forma de deixar a aplicação bem segura! ), gostaria de saber se o meu código esta bom, ainda estou fazendo a validação de usuário sem usar o Hibernate pra treinar SQl mesmo.

public boolean verificaLogin(String user, String senha) {
		System.out.println("Metodo DAO");
		// site favorito no chrome que aborda login com JBOSS ???? pesquisar e
		// perguntar
		sql = "select * from logins where usuario=? and senha =?";
		try {
			ps = this.getcon.prepareStatement(sql);
			ps.setString(1, user);
			ps.setString(2, senha);

			set = ps.executeQuery();

			if (set.next()) {
				return true;

			} else {
				return false;
			}
		} catch (SQLException e) {
			e.printStackTrace();

		}
		return false;
	}

Outra dúvida também e na hora de cadastrar um novo funcionário no banco, como posso fazer a verificação se ja existe o usuario no banco e caso não houver cadastrar ?

2 Respostas

alias
rapha.java:
Pessoal seguinte, estou montando um pequeno projeto com banco de dados e primeiro estou fazendo uma tela de login, nessa tela preciso autenticar se o usuário esta cadastrado no banco, se sim o usuário é direcionado para outra página ( ate ai tudo bem, estou pesquisando uma forma de deixar a aplicação bem segura! ), gostaria de saber se o meu código esta bom, ainda estou fazendo a validação de usuário sem usar o Hibernate pra treinar SQl mesmo.
public boolean verificaLogin(String user, String senha) {
		System.out.println("Metodo DAO");
		// site favorito no chrome que aborda login com JBOSS ???? pesquisar e
		// perguntar
		sql = "select * from logins where usuario=? and senha =?";
		try {
			ps = this.getcon.prepareStatement(sql);
			ps.setString(1, user);
			ps.setString(2, senha);

			set = ps.executeQuery();

			if (set.next()) {
				return true;

			} else {
				return false;
			}
		} catch (SQLException e) {
			e.printStackTrace();

		}
		return false;
	}

Outra dúvida também e na hora de cadastrar um novo funcionário no banco, como posso fazer a verificação se ja existe o usuario no banco e caso não houver cadastrar ?

a principio, como a coisa toda é pra fins didáticos :lol: , está ok...voce está usando o PreparedStatement e os "?" para a consulta no banco, o que é o adequado. Repare que voce nao está fechando nem o Statement nem o ResultSet, o que é um problema, visto que a sua aplicação continua segurando a conexão com o banco quando ela nao é mais necessaria. Aliás repare que voce está consultando todas as colunas da sua tabela de login, quando talvez isso nao seja necessario. Como o que voce quer é validar se esses dados existem na tabela, talvez um select count seja mais adequado.

Ah, sem querer ser chato hehe, mas o nome das tabelas, costumamos usar nomes no singular, o que no seu caso seria "login" ao invés de "logins"

Sobre a segunda questão, vai depender da regra de negocio que voce quer implementar. Você poderia, por exemplo, dado um email, verificar se tal email já existe no banco e avisar ao usuário. Também é possivel barrar esse tipo de coisa no próprio banco, o que é bom, mas tambem é bom tratar na aplicação.

Boa sorte aí com os estudos.

W

queria esse lance pra ve se ja existe no banco um email tbm

Criado 6 de fevereiro de 2012
Ultima resposta 2 de set. de 2012
Respostas 2
Participantes 3