JSP - Como verificar se uma variável de sessão está vazia ou não existe?

Olá galera, estou fazendo um sistema usando o NetBeans + GlassFish e preciso impor restrições de acesso ao meu sistema por meio de login, senha e perfis de acesso, um problema que estou enfrentando é quando um usuário não logado tenta acessar uma página do sistema só digitando o endereço na barra de tarefas, meu código no momento está assim:

<%
    request.getSession().getAttribute("idperfil");
    int perfil = (Integer) session.getAttribute("idperfil");
    if (perfil == 0){
        out.print ("<script language='javascript'>");
        out.print ("alert ('Você não está logado!!! Efetue login e tente novamente');");
        out.print ("location.href='index.jsp';");
        out.print ("</script>");
    }
    else{
        if (perfil == 3){
            out.print ("<script language='javascript'>");
            out.print ("alert ('A página requisitada só está disponível para usuários com privilégios administrativos!');");
            out.print ("location.href='index2.jsp';");
            out.print ("</script>");
        }
    }
%>
<html>
    <head>
        <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
	<title>ETB - Escola Técnica de Brasília</title>
        <link rel="stylesheet" type="text/css" href="layout1.css" />
    </head>
    <body>
        <div id="geral">
            <div id="banner">
                <%@ include file="banner.html"%>
            </div>
            <div id="menu">
                <%@ include file="menu.jsp"%>
            </div>
            <div id="conteudo">
                Conteúdo da página
            </div>
            <div id="rodape">
                <%@include file="rodape.html"%>
            </div>
        </div>
    </body>
</html>

Quero que assim que o usuário entrar na página já valide se ele está logado ou não, e caso esteja logado e tentar acessar uma página que não pode ser vista por ele, o sistema verifique se ele é pertencente ao perfil 3 que é o perfil limitado e emita a mensagem “Página acessível somente para usuários com privilégios administrativos”.
Só que quando tento acessar a página sem logar para fazer o teste e ver se a verificação está funcionando, ao invés de dar a mensagem “Você não está logado”, tá dando um erro no servidor GlassFish, mais precisamente este erro:

Estou achando que esse erro é por que a variável de sessão que estou tentando verificar no primeiro IF ainda não existe pois ela só é criada na pagina valida login, caso o usuário efetue login. E como estou testando sem efetuar login ela não foi criada ainda.
Diante disso o que devo alterar para fazer essa verificação para não permitir que usuários não logados acessem quaisquer páginas do sistema??

Se, no caso de pegar o atributo da sessão estar nulo e der erro por causa disso, tu pode tentar usar o shorthand if, desse jeito:

int perfil = session.getAttribute("idperfil") == null ? 0 : (Integer) session.getAttribute("idperfil");