Bom galera, quero implementar um login para minha aplicação.
Coisa simples, não uso nenhum framework (sou leigo no assunto, até gostaria de alguma dica pra aumentar a eficiência).
Tenho as classes:
ClienteDAO
- Só a parte de comparar com o banco
public Cliente verificarLogin(Cliente cliente) throws Exception {
abrirDB();
String SQL = "SELECT id_cliente, nome, login, senha"
+ "FROM cliente WHERE login = ? AND senha = ?";
pstm = con.prepareStatement(SQL);
pstm.setString(1, cliente.getLogin());
pstm.setString(2, cliente.getSenha());
rs = pstm.executeQuery();
if(rs.next()){
cliente.setId(rs.getInt("id_cliente"));
cliente.setLogin(rs.getString("login"));
cliente.setSenha(rs.getString("senha"));
}
fecharDB();
return cliente;
}
A classe Cliente tem apenas os getters e setters (id, nome, endereço, telefone, login e senha).
Tenho um servlet chamado controle. Gostaria de concentrar toda ou quase parte da parte de programação nele. Todos os exemplos que vi, faz a programação na própria página de login. Gostaria de saber como fazer nessa outra parte.
Aqui, também, segue um trecho do controle, que eu tentei fazer:
if (action.equalsIgnoreCase("entrar")) {
Cliente cliente = new Cliente();
cliente.setLogin(request.getParameter("txtLogin"));
cliente.setSenha(request.getParameter("txtSenha"));
ClienteDAO cd = new ClienteDAO();
try {
cd.login(cliente);
request.getRequestDispatcher("main.jsp").forward(request, response);
JOptionPane.showMessageDialog(null, "Logado com sucesso!");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro ao logar: " + e.getMessage());
}
}
Gostaria de saber o que tá errado, qual o jeito certo.
Desde já, obrigado.
