Olá! Me chamo Gina e estou tentando resolver um erro sem sucesso. No curso de Java Servlet: autenticação, estou no vídeo "verificando o login" no capítulo 3. Estou no minuto 5:52 onde o Nico testa as alterações feitas no projeto para ver se o usuário existe. Quando coloco o login e senha que criei, apresenta um erro, que está em anexo.
Meus códigos são:
- Classe 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;
}
}
- Classe Banco:
package br.com.alura.gerenciador.modelo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.apache.taglibs.standard.tag.common.core.ForEachSupport;
public class Banco {
private static List<Empresa> lista = new ArrayList<>();
private static List<Usuario> listaUsuarios = new ArrayList<>();
private static Integer chaveSequencial = 1;
static {
Empresa empresa = new Empresa();
empresa.setId(chaveSequencial++);
empresa.setNome("Alura");
Empresa empresa2 = new Empresa();
empresa2.setId(chaveSequencial++);
empresa2.setNome("Compass.uol");
lista.add(empresa);
lista.add(empresa2);
Usuario u1 = new Usuario();
u1.setLogin("gina");
u1.setSenha("1234");
Usuario u2 = new Usuario();
u1.setLogin("nina");
u1.setSenha("4321");
listaUsuarios.add(u1);
listaUsuarios.add(u2);
}
public void adiciona(Empresa empresa) {
empresa.setId(Banco.chaveSequencial++);
Banco.lista.add(empresa);
}
public List<Empresa> getEmpresas() {
return Banco.lista;
}
public void removeEmpresa(Integer id) {
Iterator<Empresa> it = lista.iterator();
while (it.hasNext()) {
Empresa emp = it.next();
if (emp.getId() == id) {
it.remove();
}
}
}
public Empresa buscaEmpresaPeloId(Integer id) {
for (Empresa empresa : lista) {
if (empresa.getId()==id) {
return empresa;
}
}
return null;
}
public Usuario existeUsuario(String login, String senha) {
for(Usuario usuario : listaUsuarios) {
if(usuario.ehIgual(login, senha)) {
return usuario;
}
}
return null;
}
}
- Ação 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 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("Usuário existe!");
}
return "redirect:entrada?acao=ListaEmpresas";
}
}
- Ação LoginForm:
package br.com.alura.gerenciador.acao;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginForm implements Acao {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
return "forward:formLogin.jsp";
}
}
- View formLogin
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:url value="/entrada" var="linkEntradaServlet"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="${linkEntradaServlet}" method="post">
Login: <input type="text" name="login" />
Senha: <input type="password" name="senha" />
<input type="hidden" name="acao" value="Login">
<input type="submit">
</form>
</body>
</html>