Problemas com Sessão no IE

4 respostas
M

Primeiramente queria informar que eu sou iniciante em JSP, JAVA ..

Bom... eu to com problemas na sessão com o Internet Explorer....somente com o IE.. no FF funciona normal.

Faço o login e na hora que vou redirecionar para a pagina de acesso restrito que possui um controle de sessão... a sessão não vem (vem null)..

Arquivo de Login
<%@page contentType="text/html" pageEncoding="ISO-8859-1" session="true"%>
<%
    Usuario usuario;
     String username = request.getParameter("username").toLowerCase().toString();
        String password = request.getParameter("password").toLowerCase().toString();
        try {
            usuario = usuarios.login(p_username, p_password);
            if (usuario.getIdUsuario() != -1) {
                session.setAttribute("idUsuario", usuario.getIdUsuario());
                session.setAttribute("username", usuario.getUsername());
               response.sendRedirect("home.jsp");
            }
} catch (Exception e) {
/*...............*/
}
%>
Arquivo home
<%@page contentType="text/html" pageEncoding="ISO-8859-1" session="true"%>
<%
        response.setHeader("Cache-Control", "no-cache"); 
        response.setHeader("Pragma", "no-cache"); 
        response.setDateHeader("Expires", 0); 
        if ((session.getAttribute("idUsuario") == null) && (session.getAttribute("username") == null)) {
               response.sendRedirect("index.jsp");
        } else {
%>
<html>
..............
</html>
<%

} 
%>

Obrigado!

4 Respostas

H

Aparentemente o processo esta correto (eu faria um pouco diferente mas isso é outro assunto), porém o que pode estar acontecendo é que o objeto usuario que é retornado do método usuarios.login(p_username, p_password) pode estar vindo com o username null. Tem como vc verificar isso ?

Comento isso pois como voce esta comparando as duas variaveis da sessão, precisava garantir que a username realmente tem um valor.

Só um dica. Em Java (e em algumas outras linguagens) voce pode colocar o objeto todo na sessão. Seu codigo ficaria assim:

#             usuario = usuarios.login(p_username, p_password);  
#             if (usuario.getIdUsuario() != -1) {  
#                 session.setAttribute("usuario", usuario);  
#                response.sendRedirect("home.jsp");  
#             }

E na hora de recuperar :

# if (session.getAttribute("usuario") == null) {  
#                response.sendRedirect("index.jsp");  
#         } else {

Abraços

Hildebrando

M

O objeto vem cheio sim…
E depois que eu seto a sessão eu consigo ver os dados… mas quando a página é redirecionada perde-se toda a sessão… (Somente no IE)

M

uo!!

M

up again!

Criado 10 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 4
Participantes 2