Caro Halex,
 
    O erro ocorria pq a variavel de sess�o que vc estava tentando utilizar ainda nao existia.
    A unica coisa que vc fez foi realizar uma conversao explicita de um objeto inesistente para um objeto do tipo String.
    Assim, o objeto do tipo String pode ser comparado como null.
   
    Mas achei estranho vc utilizar valores como (null, "true") em uma variavel do tipo String. Para um melhor entendimento, vc poderia padronizar esses valores, utilizando um objeto String ou Boolean(true/false).
 
    Ate +
 
    Andrew Betencourt
    Analista de Sistemas
    SCP for Java 2 Platform 1.4
 
   
   
-----Mensagem original-----
De: Halex Maciel [mailto:[EMAIL PROTECTED]
Enviada em: Wednesday, June 11, 2003 11:41 AM
Para: Egen; Java Br; Java Campinas; Sou Java
Assunto: [java-list] O que est� acontecendo? Qual a diferen�a?

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