Oie Diogo, tudo bem contigo?
O fluxo funciona da seguinte forma:
LoginForm.java -> formLogin.jsp -> Login.java -> ListaEmpresas.java -> listaEmpresas.jsp
Os códigos importantes para o funcionamento desse fluxo são:
formLogin.jsp -> Login.java
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:url value="/entrada" var="linkServletNovaEmpresa" />
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="${linkServletNovaEmpresa}" method="post">
Login: <input type="text" name="login" /> Senha: <input
type="password" name="senha"> <input type="submit" /> <input
type="hidden" name="acao" value="Login"> // aqui é definido o valor do parametro "acao", que nesse caso é Login. A partir dessa linha o nosso sistema saberá encaminhar o fluxo para a classe "Login".
</form>
</body>
</html>
Login.java -> ListaEmpresas.java
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 extends 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);
System.out.println(senha);
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:ListaEmpresas"; // indica para o "UnicoEntradaServlet.java" que queremos direcionar a requisição para a classe "ListaEmpresas.java"
} else {
return "redirect:LoginForm";
}
}
}
ListaEmpresas.java -> listaEmpresas.jsp
package br.com.alura.gerenciador.acao;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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.Empresa;
public class ListaEmpresas extends Acao{
public String executa(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("acao listando empresa");
Banco banco = new Banco();
List<Empresa> lista = banco.getEmpresas();
request.setAttribute("empresas", lista);
return "forward:listaEmpresas.jsp"; // indica para o "UnicoEntradaServlet.java" que queremos direcionar a requisição para o jsp "listaEmpresas.jsp"
}
}
Espero que eu tenha te ajudado, se tiver qualquer outra dúvida fico a disposição :)
Bons estudos!