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