bom, estou iniciando estudos em Java Web, e estou vendo filtros, alguém sabe dizer aonde tem um material bom que possa me ajudar?
Preciso fazer um filtro que não permita entrar em uma página quando o usuário não esteja autenticado, eu até fiz mais está null. segue meu codigo.
public class LoginTarefaLogic implements Logica {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response) throws Exception {
Connection connection = ConnectionFactory.getConnection();
String login = request.getParameter("usuario");
String senha = request.getParameter("senha");
Usuario usuario = new Usuario(login, senha);
Usuario usuarioAutenticado = new UsuarioDAO(connection).autenticar(usuario);
if (usuarioAutenticado != null) {
pegaSessao(request,usuarioAutenticado);
return "mvc?logica=AdicionaTarefa";
} else {
return "erroLogin.jsp";
}
}
private void pegaSessao(HttpServletRequest request, Usuario usuarioAutenticado) {
request.getSession().setAttribute("usuarioAutenticado", usuarioAutenticado);
}
}
public class ListarTarefaLogic implements Logica {
@Override
public String executa(HttpServletRequest request, HttpServletResponse response) {
Connection connection = ConnectionFactory.getConnection();
try {
Usuario usuarioLogado = (Usuario) request.getAttribute("usuarioAutenticado");
request.setAttribute("tarefas",new TarefaDAO(connection).listar(usuarioLogado.getId()));
} catch (SQLException e) {
e.printStackTrace();
}
return "WEB-INF/jsp/view/listar.jsp";
}
}
DAO
public List<Tarefa> listar(int usuarioId) {
List<Tarefa> tarefas = new ArrayList<>();
try (PreparedStatement statement = connection.prepareStatement("select * from tarefa where usuarioId = ?")) {
statement.setInt(1, usuarioId);
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
Tarefa montaTarefa = populaTarefa(resultSet);
tarefas.add(montaTarefa);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return tarefas;
}