Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Nao encontra usuario e senha

Pessoal, O usuário e senha sempre estão inválidos. Não identifiquei nenhuma divergência no código. Poderiam me ajudar:

ublic class UsuarioDAO {

    private final static Map<String, Usuario> USUARIOS = new HashMap<>();
    static {
        USUARIOS.put("guilherme.silveira@alura.com.br", new Usuario("guilherme.silveira@alura.com.br","silveira"));
        USUARIOS.put("rodrigo.turini@alura.com.br", new Usuario("rodrigo.turini@alura.com.br","turini"));
    }

    public Usuario buscaPorEmailESenha(String email, String senha) {
        if (!USUARIOS.containsKey(email))
            return null;

        Usuario usuario = USUARIOS.get(email);
        if (usuario.getSenha().equals(senha))
            return usuario;

        return null;
    }

}
package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Usuario;
import br.com.alura.gerenciador.dao.UsuarioDAO;

@WebServlet(urlPatterns = "/login")
public class Login extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {


        String email = req.getParameter("email");
        String senha = req.getParameter("senha");

        Usuario usuario = new UsuarioDAO().buscaPorEmailESenha(email, senha);
        PrintWriter writer = resp.getWriter();
        if (usuario == null) {
            writer.println("<html><body>Usuário ou senha inválida</body></html>");
        } else {
            writer.println("<html><body>Usuário logado: " + email
                    + "</body></html>");
        }

    }

}
<html>
<body>
    <h1>Bem vindo ao nosso gerenciador de empresas!</h1>
    <br/>

    <h2>Incluir uma nova empresa</h2>
    <form action="novaEmpresa" method="post">
        <p>    Nome: <input type="text" name="nome" />    </p>
        <input type="submit" value="Enviar"/>
    </form>
    <h2>Login</h2>
    <form action="login" method="POST">
        <p>    Usuario: <input type="text" name="usuario" />    </p>
        <p>    Senha: <input type="password" name="senha" />    </p>
        <input type="submit" value="Login"/>
    </form>
</body>
</html>
3 respostas
solução!

Oi Leandro,

Dá uma olhada nos nomes dos parâmetros que você está enviando para a url /login pelo form no HTML e nos nomes dos parâmetros que está pegando através do método getParameter. Uma dica: no método buscaPorEmailESenha, ele tá entrando no primeiro if e retornando null.

Ana, obrigado pela ajuda. Realmente tinha um problema no formulário do arquivo index.html na linha<input type="text" name="usuario"/> Mudei para o parâmetro <input type="text" name="email"/> e funcionou corretamente.

Boa! :)