Oi pessoal! Estou com um problema no momento da autenticação, toda vez que efetuar a entrada com login e senha, ele não entra mais na tela de "ListaEmpresa". Ele efetua a autenticação pelo Tomcat, mas sempre retorna para a página de autenticação. Já verifiquei tudo e não achei nenhuma diferença. Vocês podem me ajudar?
UnicaEntradaServlet
package br.com.alura.gerenciador.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
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.acao.Acao;
@WebServlet("/entrada")
public class UnicaEntradaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String paramAcao = request.getParameter("acao");
String nomeDaClasse = "br.com.alura.gerenciador.acao." + paramAcao;
String nome;
try {
Class classe = Class.forName(nomeDaClasse);
Acao acao = (Acao) classe.newInstance();
nome = acao.executa(request, response);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | ServletException
| IOException e) {
throw new ServletException(e);
}
String[] tipoEENdereco = nome.split(":");
if (tipoEENdereco[0].equals("forward")) {
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/view/" + tipoEENdereco[1]);
rd.forward(request, response);
} else {
response.sendRedirect(tipoEENdereco[1]);
}
// String nome = null;
// if (paramAcao.equals("ListaEmpresas")) {
// ListaEmpresas acao = new ListaEmpresas();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("RemoveEmpresa")) {
// RemoveEmpresa acao = new RemoveEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("MostraEmpresa")) {
// MostraEmpresa acao = new MostraEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("AlteraEmpresa")) {
// AlteraEmpresa acao = new AlteraEmpresa();
// nome = acao.executa(request, response);
//
// } else if (paramAcao.equals("NovaEmpresa")) {
// NovaEmpresa acao = new NovaEmpresa();
// nome = acao.executa(request, response);
//
// }else if (paramAcao.equals("NovaEmpresaForm")) {
// NovaEmpresaForm acao = new NovaEmpresaForm();
// nome = acao.executa(request, response);
// }
}
}
Login
package br.com.alura.gerenciador.acao;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Usuario;
public class Login implements Acao {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String login = request.getParameter("login");
String senha = request.getParameter("senha");
System.out.println("Logando " + login);
Banco banco = new Banco();
Usuario usuario = banco.existeUsuario(login, senha);
if (usuario != null) {
System.out.println("Usuario existe");
HttpSession sessao = request.getSession();
sessao.setAttribute("usuarioLogado", usuario);
return "redirect:entrada?acao=ListaEmpresas";
} else {
return "redirect:entrada?acao=LoginForm";
}
}
}
Usuário
package br.com.alura.gerenciador.modelo;
public class Usuario {
private String login;
private String senha;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public boolean ehIgual(String login, String senha) {
if(!this.login.equals(login)) {
return false;
}
if(!this.senha.equals(senha)) {
return false;
}
return true;
}
}