Quero consultar apenas os dados do usuario logado em java web

estou usando postgreSQL segue o crud:

CREATE TABLE Aluno (
	PRIMARY KEY (cpf),
	cpf 			varchar (14) NOT NULL,
    nome 			varchar (80) NOT NULL,
    email 			varchar (60) NOT NULL,
    senha 			varchar (40) NOT NULL,
    sexo 			varchar (9)  NOT NULL,
    rg 				varchar (9)  NOT NULL,
    nomeResponsavel varchar (80) NOT NULL,
    fone 			varchar (15) NOT NULL,
    cep				varchar (9)  NULL,
    numeroCasa		int          NULL,
    complemento		varchar (30) NULL,
    rua				varchar (80) NULL,
    bairro			varchar (80) NULL,
    cidade			varchar (30) NULL,
    estado			varchar (30) NULL,
    escola 			varchar (80) NULL,
    ensino 			varchar (40) NULL,
    turma 			varchar (10) NULL,
    turno 			varchar (10) NULL,
    dataNascimento  Date		 NOT NULL,
    dataEfetivada	Date		 NOT NULL

	);

CREATE TABLE Escolas (
	PRIMARY KEY (codigo),
	codigo   int          NOT NULL,
	escola   varchar (80) NOT NULL,
	endereco varchar (80) NOT NULL
	);

INSERT INTO escolas (codigo, escola, endereco) values ('1', 'Hercilio Deeke', 'Rua do Caralho');
INSERT INTO escolas (codigo, escola, endereco) values ('2', 'Adolpho Konder', 'Rua do Carvalho');
INSERT INTO escolas (codigo, escola, endereco) values ('3', 'Escola Legal', 'Rua do Canario');
INSERT INTO escolas (codigo, escola, endereco) values ('4', 'Escola ruim', 'Rua do Carro');
INSERT INTO escolas (codigo, escola, endereco) values ('5', 'Escola Mais ou Menos', 'Rua do Cabeçalho');

INSERT INTO aluno (nome, cpf, email, dataNascimento, sexo, rg, nomeResponsavel, senha, fone, cep, dataEfetivada) 
values ('Eduardo', '111.111.111-11', 'admin@gmail.com', '27/11/2003', 'masculino', '1.111.111', 'Leticia Ribeiro', '1234', '(11)11111-1111', '11111-111', '05/08/2021');
INSERT INTO aluno (nome, cpf, email, dataNascimento, sexo, rg, nomeResponsavel, senha, fone, cep, dataEfetivada) 
values ('Julia', '222.222.222-22', 'admin2@gmail.com', '02/02/2002', 'feminino', '2.222.222', 'Lurdes Ribeiro', '123', '(22)22222-2222', '22222-222', '17/08/2021');


select * from aluno;
select * from escolas;

drop table aluno;
drop table escolas;
///////////////////////////////////

Usando esse metodo para validar o login:

    public boolean validarLogin (String email, String cpf){
    // Manda como parametro para ele duas variaveis para ele procurar no banco de dados!
            String sql = "select email, cpf from Aluno where email = ? and cpf = ?";
            Connection con = Conexao.Conectar();
            
            try {
            PreparedStatement stm = con.prepareStatement(sql);
            stm.setString(1, email);
            stm.setString(2, cpf);
            ResultSet rs = stm.executeQuery();
            return rs.next();

            
            } catch (SQLException ex) {
          System.out.println("Erro:" + ex.getMessage());
        }
 
            return true;
    }

Usando esse metodo para consultar:

    public List<Aluno> consultarAluno(String cpf) {
        
        List<Aluno> lista = new ArrayList<>();  
        Aluno aluno = new Aluno();
        // conectando no banco de dados
        Connection con = Conexao.Conectar();
        // comandos banco de dados
        String sql = "select * from Aluno ";
               if (cpf != "") {
                    sql += "where cpf = ? ";
               }
                sql += "order by cpf";
        try {
            PreparedStatement stm = con.prepareStatement(sql);
            if (cpf != "") {
                    sql += "where cpf = ?";
               }
            stm.setString(1, cpf);
            ResultSet rs = stm.executeQuery();
            
            while(rs.next()){
                   Aluno aluno1 = new Aluno();
                   aluno1.setNome(rs.getString("nome"));
                   aluno1.setCpf(rs.getString("cpf"));
                   aluno1.setEmail(rs.getString("email"));
                   aluno1.setDataNascimento(rs.getDate("dataNascimento"));
                   aluno1.setSexo(rs.getString("sexo"));
                   aluno1.setRg(rs.getString("rg"));
                   aluno1.setNomeResponsavel(rs.getString("nomeResponsavel"));
                   aluno1.setSenha(rs.getString("senha"));
                   aluno1.setFone(rs.getString("fone"));
                   aluno1.setCep(rs.getString("cep"));
                   aluno1.setDataEfetivada(rs.getDate("dataEfetivada"));
                   aluno1.setEscola(rs.getString("escola"));
                   aluno1.setEnsino(rs.getString("ensino"));
                   aluno1.setTurma(rs.getString("turma"));
                   aluno1.setTurno(rs.getString("turno"));
                   aluno1.setNumeroCasa(rs.getInt("numeroCasa"));
                   aluno1.setComplemento(rs.getString("complemento"));
                   aluno1.setRua(rs.getString("rua"));
                   aluno1.setBairro(rs.getString("bairro"));
                   aluno1.setCidade(rs.getString("cidade"));
                   lista.add(aluno1);
            }
            
        } catch (SQLException ex) {
          System.out.println("Erro:" + ex.getMessage());
        }
        return lista;
    }

Em jsp tenho o login e logar:

<%@page  import="Model.Aluno"%>
<%@page  import="DAO.AlunoDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%
    String email = request.getParameter("email");
    String cpf   = request.getParameter("cpf");
    
    Aluno aluno = new Aluno();
    aluno.setEmail(email);
    aluno.setCpf(cpf);
    
    AlunoDAO alunoDAO = new AlunoDAO();
    if(alunoDAO.validarLogin(email, cpf) == true){
    session.getAttribute("cpf");
    response.sendRedirect("index.html");
    }else{
        response.sendRedirect("login.jsp?msg=loginIncorreto");
    }
%>
<%@page import="Model.Aluno"%>
<%@page import="DAO.AlunoDAO"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="./style/login.css">
        <link rel="shortcut icon" type="image/x-icon" href="./favico.ico/logo1.ico"/>
        <title>Login | Matrícula Virtual</title>
    </head>
    <body>
            <div class="box-login">
                <form class="box" action="logar.jsp">
                    <div class="title">
                        <h1>Bem-Vindo</h1> 
                        <p>Matrícula Virtual</p>
                    </div>
                    <input type="text" name="email" placeholder="E-mail" required="required">
                    <input type="password" name="cpf" placeholder="Password" required="required">
                    <input type="submit" name="entrar" value="Sign in">
                    <a class="cadastro" href="cadastrar.jsp?">Cadastre-se</a>
                </form>
            </div>
    </body>
</html>

E por fim nos dados pessoas que é onde não estou conseguindo fazer aparecer apenas os dados de quem esta logado:

 <label for="infoP" class="tab_label">Informações Pessoais</label>
                                                <div class="tab-content">
                                                    <article>
                                                        <div class="info">
                                                        <%     
                                                            String cpf = (String) session.getAttribute("cpf");
                                                              

                                                            AlunoDAO alunoDAO = new AlunoDAO();
                                                            Aluno a = new Aluno();
                                                            List<Aluno> lista = alunoDAO.consultarAluno(cpf);
                                                            for (Aluno aluno: lista) {
                                                       %>
                                                            <div class="information">
                                                                <label>Nome</label>
                                                                <div>
                                                                    <input class="input" value="<% out.write(aluno.getNome()); %>" disabled="disabled"> 
                                                                </div>
                                                            </div>
                                                             
                                                            <div class="information">
                                                                <label>CPF</label>
                                                                <div>
                                                                    <input class="input" value="<% out.write(aluno.getCpf()); %>" disabled="disabled"> 
                                                                </div>
                                                            </div>
                                                            <div class="information">
                                                                <label>RG</label>
                                                                <div>
                                                                    <input class="input" value="<% out.write(aluno.getRg()); %>" disabled="disabled"> 
                                                                </div>
                                                            </div>
                                                            <div class="information">
                                                                <label>Nascimento</label>
                                                                <div>
                                                                    <input class="input" value="<% out.write(String.valueOf(aluno.getDataNascimento())); %>" disabled="disabled"> 
                                                                </div>
                                                            </div>  
                                                        </div>  
                                                    </article>
                                                </div>
                                            </li>
                                            <li>
                                                <input type="radio" name="tabs" class="rd_tab" id="contato">
                                                <label for="contato" class="tab_label">Contato</label>
                                                <div class="tab-content">
                                                    <article>
                                                        <div class="information">
                                                            <label>E-mail</label>
                                                            <div>
                                                                <input class="input" value="<% out.write(aluno.getEmail()); %>" disabled="disabled"> 
                                                            </div>
                                                        </div>
                                                        <div class="information">
                                                            <label>Telefone</label>
                                                            <div>
                                                                <input class="input" value="<% out.write(aluno.getFone()); %>" disabled="disabled"> 
                                                            </div>

Por favor se puderem me ajudar ficarei muito grato

Dá algum erro?

No site se há mais de um aluno cadastrado ele mostra todos os cadastros ao invés de mostrar apenas o que está logado

Onde você está setando o atributo cpf na session?

1 curtida

Eu estava setando no jsp errado, seu comentario me fez ver melhor obrigado