Filtros JSP

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;
}