Dúvida ao enviar variáveis de uma página para outra

11 respostas
D

Pessoal, estou com um problema ao enviar dados de uma página para outra. Acontece que tenho uma aplicação em JSP na qual eu preciso enviar alguns atributos de uma página para outra. Estou utilizando o seguinte comando: <form name="form1" align="center" method="post" action="teste.jsp?usuario=<%=usuario%>"> <input type="submit" align="center" name="Submit2" value="Voltar">Para que ao retornar a página anterior eu possa retornar o valor de “usuario”, só que este valor aparece na aba de endereços. Ocorre que preciso mandar este valor praticamente em todas as telas que tenho, para que com o request.getParameter de outra tela eu recupere o seu valor. Gostaria de ver se alguém poderia me ajudar com algum comando ou alguma maneira de enviar uma variável de uma página para outra sem que a mesma aparecesse na barra de endereços e nem ao clicar com o botão direito em exibir código fonte.

11 Respostas

Rafael_Nunes

session.setAttribute()?

debersom

Eu conheço duas opções:

<input type="hidden" value="<%usuario%>"/>

mas desta forma irá aparecer se o usuario olhar o código fonte, ou então colocar essa variável na sessão e recuperar depois.

request.getSession().setAttribute("USUARIO", usuario);
request.getSession().getAttribute("USUARIO");

Se alguém tiver alguma outra dica :smiley:

D

Valeu pessoal, funcionou. Estou utilizando o <form name="form1" method="post" action="cadsat.jsp"> <%session.putValue("usuario",usuario); %>Para enviar de uma página para outra e oString usuario = ""; usuario = String.valueOf(session.getValue("usuario"));para recuperar na outra página.
Só que testei a mesma coisa com uma variável que está da seguinte maneira:&lt;form name="form1" method="post" action="teste.jsp?consulta=aberto"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Abertos"&gt;&lt;td&gt; Tentei fazer com &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Abertos"&gt;&lt;td&gt; <%session.putValue("consulta","aberto");, mas não consegui fazer funcionar. Agradeço se alguém puder me indicar onde estou errando ou se existe alguma outra maneira de enviar esta string.

D

Valeu pessoal, funcionou. Estou utilizando o &lt;form name="form1" method="post" action="cadsat.jsp"&gt; &lt;%session.putValue("usuario",usuario); %&gt;Para enviar de uma página para outra e oString usuario = ""; usuario = String.valueOf(session.getValue("usuario"));para recuperar na outra página.
Só que testei a mesma coisa com uma variável que está da seguinte maneira:&lt;form name="form1" method="post" action="teste.jsp?consulta=aberto"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Abertos"&gt;&lt;td&gt; Tentei fazer com &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Abertos"&gt;&lt;td&gt; <%session.putValue("consulta","aberto");, mas não consegui fazer funcionar. Agradeço se alguém puder me indicar onde estou errando ou se existe alguma outra maneira de enviar esta string.

D

Desculpe sem querer apertei duas vezes no enviar.

Rafael_Nunes

Tenta com session.setAttribute(), e session.getAttribute()

D

Tentei fazer com:&lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Em atendimento"&gt;&lt;/td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "atendimento"); %&gt; &lt;/form&gt;E na outra página capturar com:String consulta = ""; consulta = String.valueOf(session.getAttribute("consulta")); Mas não funcionou. agradeço se alguém puder me dar um exemplo de como fazer isto ou me indicar onde estou errando.

debersom

Você não pode acessar o session diretamente, você deve usar pegar o request e depois o session, assim:

request.getSession().setAttribute("OBJETO", objeto);
Rafael_Nunes

debersom:
Você não pode acessar o session diretamente, você deve usar pegar o request e depois o session, assim:

request.getSession().setAttribute("OBJETO", objeto);

Em JSP você tem uma variável implícita chamada ‘session’ que é associada a sessão do request. Ela equivale a uma instância de HttpSession. E só não é permitida caso você declare explicitamente ‘session=false’ na sua diretiva @page.

Quando você faz:

consulta = String.valueOf(session.getAttribute("consulta"));

O que retorna para essa String?

D

Quando você faz:

consulta = String.valueOf(session.getAttribute("consulta"));

O que retorna para essa String?

Ela está retornando sempre o valor “todos”. Não sei por qual motivo, pois tenho o código da seguinte maneira:

&lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Abertos"&gt;&lt;td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "aberto"); %&gt; &lt;/form&gt; &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Em atendimento"&gt;&lt;/td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "atendimento"); %&gt; &lt;/form&gt; &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Solucionados"&gt;&lt;td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "solucionado"); %&gt; &lt;/form&gt; &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Fechados"&gt;&lt;td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "fechado"); %&gt; &lt;/form&gt; &lt;form name="form1" method="post" action="teste.jsp"&gt; &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Todos"&gt;&lt;td&gt; &lt;%session.putValue("usuario",usuario); session.setAttribute("consulta", "todos"); %&gt; &lt;/form&gt;
E para recuperar o valor:String consulta = ""; consulta = String.valueOf(session.getAttribute("consulta")); out.println(consulta);
Agradeço se alguém tiver alguma dica.

Rafael_Nunes

hehe…você está sobrepondo a chave. Todos os valores que você está colocando na session estão com a chave ‘consulta’, ele sempre vai assumir o último. Imagine a session como um array, você precisa de chaves e valores, se colocar uma chave igual a outra, o valor será sobreposto.

Criado 12 de julho de 2005
Ultima resposta 13 de jul. de 2005
Respostas 11
Participantes 3