Session não é persistido de um página para outra

Pessoal estou com o seguinte problema:
tenho uma jsp chamda “nav.jsp” ao clicar em um hyperlink invoco a função setSession e altero o valor de um atributo na sessão, no entanto o mesmo atributo não é refletido em uma outra jsp chamada “conteudo.jsp” sendo que o mesmo foi alterado em “nav.jsp” vejam o código:

-------->>>>>>> em nav.jsp tem esse código:

function setSession(index){
<%
String codConteudo = (String)session.getAttribute(“idconteudo”);
int idconteudo = Integer.parseInt(codConteudo);
%>
if (index == 0)
{
alert(<%=codConteudo%>);
<%
idconteudo = idconteudo + 1;
codConteudo = String.valueOf(idconteudo);
session.setAttribute(“idconteudo”,codConteudo);
%>
alert(<%=codConteudo%>);
}

-------->>>>>>> em conteudo.jsp tenho esse código:

codProduto = (String)session.getAttribute(“codproduto”);
codContrato = (String)session.getAttribute(“codcontrato”);
codConteudo= (String)session.getAttribute(“idconteudo”);

out.println(codConteudo);

aki, eu recupero o que está na sessão. Neste momento ele não reflete o atributo da sessão que foi alterado lá em nav.jsp… Me ajudem por favor!!!

:shock: :shock: :shock:

Antes de mais nada, não use páginas JSP para processar nada além de criar HTML, faça o que você está fazendo em um Servlet.

Depois coloque seu código entre as tags [ code ], apra facilitar.

Aí me diga direitinho como você está fazendo e se uma página desvia para a outra. Aliás, uma página desvia pra um servlet se você fizer o que eu disse :wink:

[]s

pcalcado vc está dizendo para mim criar uma servlet que gere conteúdo dinâmico não é isso… e não processar nada no jsp ? não é isso? Já que disse isso existe queda de perfomance se processar assim?

Não exatemente.

Primeiro, queda de performance não pdoe existir simplesmente proque seu cotnainer Web transforma sua JSP num, tcham tcham nananm… servlet. Ou seja: 6 por meia dúzia.

O fato é que uma JSP existe única e exclusivamente para gerar um HTML. Ela não tem que colcoar nem tirar cosia sdesessão ou qualquer outro lugar, ela apenas deve ler informações (preferencialmente em escopo de request) e formatar uma saída pro muchacho que está lendo a página.

Faça com que todos os seus formulários (ou cosias do tipo) apontem para servlets. os servlets sim devem manipular session e essas coisas.

[]s

Obrigado pela informação… o pessoal do GUJ é muito profissional… é isso… este grupo de usuário java é muito bom… 8) :lol:

E como fica o controle de páginas jsp?
Imagine uma página que só deve ser acessada por gerentes, se eu não controlar o acesso dela via session na jsp se o cara abrir o browser a digitar diretamente para a jsp, ele vai abrir não vai?
tipo:

[code]http://www.minhaempresa.com.br/gerentes.jsp

Ele vai abrir e mostrar o conteudo da página

Duas coisas ai.

:arrow: Eu disse que a JSP não deve colocar nem tirar nada de session ou outro lugar, não disse que ele não podia ler :wink:

:arrow: Para esse tipo de coisa, você deveria usar ferramentas corretas: JAAS Ferramenta 2: ServletFilter

(eu sei que eram só duas, mas considere um overflow :slight_smile: )

:arrow: Você pdoe muito bem fazer seu servlet barrar uma pessoa não autorizada antes de desviar para a JSP, basta mapear *.jsp para um servlet e ninguém acessa suas JSPs de fora :wink:

[]s