oi, tava tentando fazer um login mas nao axo maniera de o conseguir… será que ninguem tem ja um exemplo feito pra que eu possa ver, para eu por na minha aplicação… ah estou a trabalhar com o netbeans e a base de dados e a mysql…
Login
4 Respostas
Dektop ou Web?
Você tem dúvida em qual parte?
Você esta fazendo seu sistema em camadas? Se sim fale um pouco que eu te ajudo.
oi…
a aplicação será web, agora não tenho nenhuma ideia de como fazer, se você tiver algum exemplo que eu posso ver, sei lá algum projecto k voce tenha feito um login em alguma aplicaçao
pessoal ninguem tem um exemplo de login que eu possa ver??? um login local
Olá 56630,
me desculpe a demora, mas estou meio apertado como tempo.
Bem vamos lá, vou tentar resumir aqui baseado em JSP.
Você terá de passar por três camadas, eu costumo usar mais uma que é o Facade, mas coloquei o Servlet que seria meu Facade como Controle para resumir.
Veja as camadas:
Passo os dados a partir do index.jsp -> Pego os dados com o Servlet ControleApl -> Chamo o UsuarioDao para pegar as informações do banco.
Aqui você irá passar os dados com os nomes do campo de "usuario" e "senha"<%@ page contentType="text/html" pageEncoding="ISO-8859-1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${sessionScope.usuario != null}"> // Se o usuário já estiver na sessão já jogo ele pra dentro do site.
<jsp:forward page="home.jsp"/>
</c:if>
<html>
<head/>
<body>
<form action="ControleApl?cmd=autenticar" method="post">
<input type="text" name="usuario"/>
<input type="password" name="senha"/>
<input type="submit" value="Logar"/>
</form>
</body>
<servlet>
<servlet-name>ControleApl</servlet-name>
<servlet-class>br.com.SEUDOMINIO.controller.ControleApl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControleApl</servlet-name>
<url-pattern>/ControleApl</url-pattern>
</servlet-mapping>
package br.com.SEUDOMINIO.controller;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PessoalFacade extends HttpServlet {
private String cmd;
private String url;
private UsuarioDao usuarioDao = new UsuarioDao();
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
cmd = request.getParameter("cmd");
if (cmd.equalsIgnoreCase("auth")) {
try {
url = "home";
Usuario usuario = usuarioDao.autenticar(request.getParameter("usuario"), request.getParameter("senha"));
if (usuario != null) {
request.getSession(true).setAttribute("usuario", usuario);
} else {
request.setAttribute("resultado", "Usuário ou senha inválida!"); // Como não existe sessão, redireciono com o resultado no request.
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
Conexao.commit(true);
} catch (SQLException ex) {
Conexao.commit(false);
ex.printStackTrace();
request.setAttribute("resultado", "Ocorreu um erro na atualização de sua visita!");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
if (request.getSession().getAttribute("usuario") != null) {
response.sendRedirect(url + ".jsp");
}
}
}
public Usuario autenticar(String user, String senha) throws SQLException {
try {
ps = conn.prepareStatement("SELECT * FROM usuario WHERE binary l.usuario = ? AND binary l.senha = ?"); // binary == Case Sensitive
ps.setString(1, user);
ps.setString(2, senha);
rs = ps.executeQuery();
Usuario usuario = null;
if (rs.next()) {
usuario = new Usuario(rs.getInt("codUsuario"), rs.getString("usuario"), rs.getString("senha"));
}
return usuario;
} catch (SQLException e) {
throw e;
} finally {
Conexao.release(ps, rs);
}
}
<c:if test="${sessionScope.usuario == null}">
<jsp:forward page="index.html"/>
</c:if>
Assim se o usuário tentar acessar sua página direto e não tiver o usuário na sessão ele será redirecionado novamente para o index.
Existe maneiras melhores de controlar acesso atravéz de filters, porém este é um exemplo simples e funcional.
Resumindo é isto amigo, qualquer dúvida só postar. :)
Abraço.