Ir ao conteúdo
  • Cadastre-se
Ana Grossi

Java Problemas no login - JavaWeb

Recommended Posts

Oi, gente! Espero que possam me ajudar. Estou fazendo um sistema Web, e pra resumir, tenho uma classe super (Usuários) e duas filhas (empresa e funcionário). A ideia é que o cadastro, listagem e etc. dos funcionários seja feito exclusivamente pela empresa. Estava tudo indo bem, mas quando implementei o login, na hora de listar os funcionários (estando logado como empresa) ele lista apenas o funcionário de id. 1, e não mostra os outros. Vocês podem me ajudar a encontrar o erro? 
Segue o código:

DAO Usuário - método Logar

 public Usuario logarUsuario(String loginUsuario, String senhaUsuario){
        PreparedStatement stmt = null;
        ResultSet rs = null;
        Usuario usuario = null;
        Funcionario func = null;
        String sql = "select u.*from usuario u  "
                + "where u.login_usuario = ? and u.senha_usuario = ?;";
        try {

            stmt = conn.prepareStatement(sql);
            stmt.setString(1, loginUsuario);
            stmt.setString(2, senhaUsuario);
            rs = stmt.executeQuery();

            if (rs.next()) {
                usuario = new Usuario();
                usuario.setIdUsuario(rs.getInt("id_usuario"));
                usuario.setLoginUsuario(rs.getString("login_usuario"));
                usuario.setSenhaUsuario(rs.getString("senha_usuario"));
                usuario.setTipoUsuario(rs.getString("tipo_usuario"));
                usuario.setEnderecoUsuario(rs.getString("endereco_usuario"));
                usuario.setCidadeUsuario(rs.getString("cidade_usuario"));
                              
               
            }

        } catch (SQLException ex) {
            System.out.println("Problemas ao fazer login! Erro:" + ex.getMessage());
            ex.printStackTrace();
        } finally {
            try {
                ConnectionFactory.closeConnection(conn, stmt, rs);
            } catch (Exception ex) {
                System.out.println("Problemas ao fechar os parametros! Erro: " + ex.getMessage());
                ex.printStackTrace();
            }
        }
        return usuario;
    }}

Servlet LogarUsuario

 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
               if (request.getParameter("acao").equals("logar")) {

            String loginUsuario = request.getParameter("loginUsuario");
            String senhaUsuario = request.getParameter("senhaUsuario");
            String mensagem = null;
            Usuario usuario = null;

            if (!loginUsuario.equals("") || !senhaUsuario.equals("")) {

                try {
                    UsuarioDAOImpl dao = new UsuarioDAOImpl();
                    usuario = dao.logarUsuario(loginUsuario, senhaUsuario);
                    if (usuario != null) {

                        HttpSession sessao = request.getSession();
                        sessao.setAttribute("usuario", usuario);
                        mensagem = "Seja bem-vindo!";

                        if (usuario.getTipoUsuario().equals("Funcionário")) {                            
                            sessao.setAttribute("saudacao", mensagem);
                            Funcionario func = new Funcionario();
                            request.getRequestDispatcher("index_func.jsp").forward(request, response);
                        } else if (usuario.getTipoUsuario().equals("empresa")) {
                            sessao.setAttribute("saudacao", mensagem);
                            request.getRequestDispatcher("index_empresa.html").forward(request, response);
                        } else {
                            mensagem = "Usuário/Senha inválidos!";
                            sessao.setAttribute("saudacao", mensagem);
                            request.getRequestDispatcher("login.jsp").forward(request, response);
                        }
                    } else {
                        mensagem = "Usuario/Senha inválidos!";
                        request.setAttribute("mensagem", mensagem);
                        request.getRequestDispatcher("login.jsp").forward(request, response);
                    }
                } catch (Exception ex) {
                    System.out.println("Problemas ao logar Usuário! Erro: " + ex.getMessage());
                    ex.printStackTrace();
                }
            } else {
                mensagem = "Usuario/Senha inválidos!";
                request.setAttribute("mensagem", mensagem);
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }
        } else if (request.getParameter("acao").equals("logout")) {
            HttpSession sessao = request.getSession(true);
            sessao.invalidate();
            response.sendRedirect("login.jsp");
        }

    }

Muitíssimo obrigada a quem puder me socorrer!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Ana, tudo certo?

 

Vamos lá vou tentar lhe ajudar.

 

1 - Você possui o método logarUsuario, que basicamente faz uma comparação no banco se o usuário e senha digitados pela pessoa são idênticos. Show acredito que vamos ter apenas 1 resultado nesse caso, pois seria estranho 2 usuários iguais com as mesmas senhas.

 

2 - No processRequest, onde você chama o logarUsuario, você faz algumas verificações e dependendo do tipo do usuário você usa o forward para responder com outro servelt.

Citação

Estava tudo indo bem, mas quando implementei o login, na hora de listar os funcionários (estando logado como empresa) ele lista apenas o funcionário de id. 1, e não mostra os outros. Vocês podem me ajudar a encontrar o erro? 

 

Gostaria de entender onde se encaixa sua pergunta, pois não consegui compreender.

Você acessa com um usuário "Empresa", cai na forward "index_empresa.html", mais até agora não entendi de que lista estamos falando.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi! Obrigada por responder! Sabe quando você pede pra mostrar uma lista com todos os funcionários que tem cadastrados no sistema? Daí ele deveria mostrar tipo uma tabela com ID - Nome - Função - Setor, por exemplo... Ficaria algo tipo:

ID |       Nome          |    Setor          |    Função
1   |  Funcionário 1   |     Compras   |     Telefonista
2   |  Funcionário 2   |     Corte         |     Desenho de molde
3   |  Funcionário 3   |     Costura     |      Costureiro (a)

Certo? Isso em um outro link da página index_empresa.html, que chama um ListarFuncionario... Mas aí, depois que implementei o login, ele parou de me mostrar os três funcionários, e me mostra só o de Id 1.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×