Problema com Visualizacao do nome do Usuario ao deslogar (controle de acesso)

4 respostas
M

Boa noite Galera! Seguinte:

Estou querendo trazer, na minha pagina JSP, o nome do usuário logado. A parte de login, controle de acesso está tudo certo. Porem, adiciono na minha index.jsp a seguinte linha:

<%= ((br.com.marcelo.modelo.Usuario)session.getAttribute(“usuario”)).getNome() %>

Quando eu entro direto na página de login.jsp e adiciono o meu usuario e senha corretamente, eu vou para a página de index.jsp e lá me aparace o nome do usuário logado. Até aí perfeitamente. Só que, quando eu deslogo do meu index.jsp o sistema me retorna um erro:

[i]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 210

207:   }

208:   %>

209:

210: <%=  ((br.com.marcelo.modelo.Usuario)session.getAttribute(usuario)).getNome() %>

211:

212:       

213:
Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NullPointerException

org.apache.jsp.index_jsp._jspService(index_jsp.java:263)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

[/i]

Como, ao deslogar, eu seto o usuário para null, então ele me retorna esse erro.

Qual a melhor forma para que eu possa tratar esse meu problema???

Grato pela colaboração de todos e tenham um bom final de semana :wink:

4 Respostas

B

Marcelo,

antes de acessar o .getNome() você deverá verificar se o “usuario” está diferente de null.

<%= (session.getAttribute("usuario") != null) : ((br.com.marcelo.modelo.Usuario)session.getAttribute("usuario")).getNome() ? "Não logado!" %>

Mero_Aprendiz

Isso acontece porque o usuário está nulo.

((br.com.marcelo.modelo.Usuario)session.getAttribute("usuario")).getNome()

Uma solução é fazer o que bhfaria disse, verificar se existe um usuário logado na sessão.

[]'s
JL

M

Valeu pessoal! Obrigadão pela ajuda.

M

Pessoal fiz dessa forma e deu certo:

<% if ((session.getAttribute("usuario") != null)) {
{out.println( ((br.com.marcelo.modelo.Usuario)session.getAttribute("usuario")).getNome()); }
    } else {
      System.out.println("Não está logado");
      }
%>

Agora eu posso logar e deslogar sem dar erro.

Criado 30 de maio de 2009
Ultima resposta 1 de jun. de 2009
Respostas 4
Participantes 3