Caros, estou com uma dúvida na hora de autenticar um cliente.
O cliente para se autenticar informa e-mail e senha., faço a validação verificando se existe uma cliente com e-mail e senha igual, se sim pego o idcliente e coloco na sessão.
Trecho do código do controle.
@Override
public void execute(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String email = request.getParameter("email");
String senha = request.getParameter("senha");
if(email.equals("")||senha.equals("")){
response.sendRedirect("login.jsp?mensagem=Informe email e senha.");
}else{
int idCliente = cDao.confirmaLoginSenha(email,senha);
if(idCliente == 0){
response.sendRedirect("login.jsp?mensagem=E-mail e senha não cadastrado.");
}else{
HttpSession sessionCliente = request.getSession(true);
sessionCliente.setAttribute("sessionCliente", idCliente);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
}
}
Trecho do código do Dao.
public int confirmaLoginSenha(String email, String senha)throws SQLException {
ResultSet rs = null;
int idCliente = 0;
try{
PreparedStatement stmt = conn.prepareStatement("select idcliente from cliente " +
"where email='"+email+"' and senha='"+senha+"'");
rs = stmt.executeQuery();
while (rs.next()) {
idCliente = rs.getInt("idcliente");
}
}catch (Exception e) {
e.printStackTrace();
}
return idCliente;
}
Na jsp verifico se o id do cliente está na sessão, para exibir os links do menu do cliente.
<c:if test="${sessionScope.sessionCliente != null}"/>
//...links
Não é cadastrado clientes com e-mail igual.
Só quer ter certeza que estou fazendo certo ou que já é suficiente.