Problemas com o IE e dados na Session

5 respostas
U

Pessoal, construi uma aplicação com JSP que ao logar armazena os dados do usuário na session. Porém durante a navegação esses dados são perdidos, o problema só acontece no IE, funciona perfeitamente no Chrome, Firefox e Safari. Preciso de uma solução que não necessite ao usuário alterar nenhuma config do IE.

O sistema tem uma página index.jsp com uma table de 2 colunas, a da esquerda é um menu e a da direita é onde abrirei dinamicamente as outras páginas, sempre na mesma janela e utilizando a index.jsp

5 Respostas

Felagund

Vou lhe dar uma dica:

http://www.wedontsupportie.com/page/buttons#html

e seja feliz :slight_smile:

KWill

Hmm, isso que você chama de “session” é algo que fica apenas no lado servidor.
Esse “IE” que está sendo utilizado deve estar com cookies desabilitados, o que faz com que o servidor http não consiga manter isso que você chama de “session” sem que você adapte as suas páginas para funcionarem sem cookies.
Estou assumindo que você está utilizando JSP/servlets.
Algumas dicas:
http://bytes.com/groups/java/17681-jsp-java-cookieless-sessions
http://www.jguru.com/faq/view.jsp?EID=1045

Inté.

KWill

Felagund:
Vou lhe dar uma dica:

http://www.wedontsupportie.com/page/buttons#html

e seja feliz :)


Acho que uma saída melhor é colocar avisos do tipo: “Habilite cookies e mantenha o suporte para scripts habilitado para utilizar estas páginas”.

Inté.

U

KWill, é necessário fazer o encoding nos servlets também? Saca só a função de redirecionar da servlet de login:

private void redirecionar(HttpServletRequest request,
			HttpServletResponse response, Usuario usuario, String pagina)
			throws ServletException, IOException {		
		session.setAttribute("usuario", usuario);				
		RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp?page="+pagina);
		dispatcher.forward(request, response);
	}
KWill

ununes:
KWill, é necessário fazer o encoding nos servlets também? Saca só a função de redirecionar da servlet de login:

private void redirecionar(HttpServletRequest request,
			HttpServletResponse response, Usuario usuario, String pagina)
			throws ServletException, IOException {		
		session.setAttribute("usuario", usuario);				
		RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp?page="+pagina);
		dispatcher.forward(request, response);
	}


Ao que parece, todas as referências a URLs da própria aplicação precisam ser adaptadas para que a página funcione sem o suporte a cookies.
Se você realmente leu e entendeu o segundo link que te passei, provavelmente acabará por perceber que a mágica está nos métodos “encodeURL()” e “encodeRedirectedURL()”, disponíveis na classe HttpServletResponse.
E como sugeri anteriormente, não me parece tão absurdo assim obrigar o usuário a habilitar cookies…

Inté.

Criado 14 de maio de 2009
Ultima resposta 14 de mai. de 2009
Respostas 5
Participantes 3