Caros colegas, a poucos dias atrás eu postei no forum uma pergunta sobre Session, eu até disponibilizei meu fonte com problemas de Session, e por incrivel que pareça não entendi o seguinte:
 
Eu criei um código que a pessoa ao entrar na página em JSP, erá verificado se ele havia efetuado login, caso contrário ele seria redirecionado para página de login. Meu código era este:
 
<%
 //
    if (session.getAttribute("EstaLogado") == null)
        response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    else
    {
         String logado = session.getAttribute("EstaLogado").toString();
        if (!(logado == "true"))
            response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    }
 // Verifica direitos de Usuário e cria um link de atalho para módulo administrativo
 String link = "";
 String admin = session.getAttribute("eAdmin").toString(); 
 if ((session.getAttribute("eAdmin") != null) && (admin == "true"))
  link = "<a href="" Administrativo</a>";
 //
%>
 
Só que estava dando erro na hora que a pessoa tentava acessar a página sem efetuar login. Dava
um JasperException, mas depois eu troquei o código, e coloquei desta forma:
 
<%
 String EstaLogado = (String) session.getAttribute("EstaLogado");
    if (EstaLogado == null)
        response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    else
    {
        String logado = (String) session.getAttribute("EstaLogado");
        if (!(logado == "true"))
            response.sendRedirect("index.jsp?msg=Por%20%20favor,%20efetue%20seu%20login.");
    }
 // Verifica direitos de Usuário e cria um link de atalho para módulo administrativo
 String links = "";
 String admin = (String) session.getAttribute("eAdmin"); 
 if ((admin != null) && (admin == "true"))
  links = "<a href="" Administrativo</a>";
%>
 
Na realidade a única coisa que mudei foi,
 
Isto fazia dar o erro:
String logado = session.getAttribute("EstaLogado").toString();
Este solucionou meu problema:
String logado = (String) session.getAttribute("EstaLogado");
Qual a diferença entre eu utilizar (String) e utilizar (toString();)?
 
Obrigado a todos.
 
Halex Maciel

Responder a