Valor de sessão no javascript

13 respostas
L

Olá pessoal!

Alguém sabe como posso fazer para atribuir e recuperar um valor de sessão por meio do javascript?

Obrigado

13 Respostas

F

Por javascript não tem como.

N

Cara, só é possível acessar a sessão em ambiente servidor, o javascript trabalho browser do cliente, logo não é possível colocar nada em sessão pelo javascript.

O que voçe precisa fazer? talvez possamos ajudar.

Até.

H

Então, o que poderia ser feito é o seguinte…

Se vc quer setar um valor de sua página dinamicamente através de javascript para o servidor sem dar refresh na página, vc pode usar o XMLHttpRequest…

Se for mandar no refresh fica bem mais simples, pois pode mandar pelo form…

Se quiser receber um valor qualquer do servidor para sua página sem dar refresh, o melhor mesmo é XMLHttpRequest…

Mas se for no load da página, vc pode fazer um scriplet com request.getParameter(“variável”), e usá-lo tanto direto no HTML como também atribuir o valor à uma variável em javascript, tipo:

function showVar() {
     var show = <% request.getParameter("variavel") %>;
     alert(show);
}

Dessa forma vc tem sua variável do servidor trabalhando para vc em javascript…

Bem, espero ter ajudado!!!

L

Seguinte,

Tenho uma pagina JSP que carrega um menu e uma tabela. Esta tabela é populada com um metodo ajax, e tem um refresh na tela que de tempos em tempos ele vai lá, executa a consulta e atualiza os dados da tabela.
Bem, em uma das colunas, o campo é um , ao selecionar um item eu quero que dispare um método que salve na sessão o código referente ao registro marcado, pois se o usuário decidir navegar pelo sistema, ao retornar àquela página, o mesmo registro deve permanecer selecionado.

Este é o meu problema. Dai então eu gostaria de armazenar na sessão este valor, e recuperá-lo sempre que executar o método que consulta as informações na base de dados (método Ajax)

Obrigado

N

Cara, tu pode colocar isto em um cookie.

O problema é com quem tem cookies desabilitados.
Mas fora isso vai funcionar bem.
Até por que é uma funcão para facilitar a navegação.

Que achas?

H

Poderia enviar o valor através de AJAX para o servidor, no servidor jogar esse valor na sessão e recuperá-lo quando necessário, mas…

Se o usuário sair da sessão ou perdê-la sem querer, ele perde essa funcionalidade…

Então uma outra sugestão seria vc gravar essa informação em BD e recuperá-la sempre que necessário através do controle de regra de negócios da sua aplicação…
Claro que tudo vai depender da necessidade real de sua aplicação também!

Valeu!!!

N

Bom, lembrando que quando falei em o usuário desabilitar os cookies, isto também vale para o ajax, pois o usuário pode desabilitar o javascript, dai também não funciona.

L

Valeu, mas acho que a questão do cookie não vai resolver o meu problema, seria interessante se desse certo o que o amigo postou logo acima, sobre dar um request.getParameter().
Vou ver o que consigo.

Se alguém souber de alguma coisa, fazor postem aqui…

H

O código fica feio, mas vc pode setar sua variável na sessão através de scriptlets…

<% String var = "%> variável <%";
request.setParameter("variavel", var);
%>

Existem outras formas de fazer isso através de Frameworks e seus mapeamentos, só que eu não conheço todos, mas para citar, temos o struts com suas tags <bean:write…

L

Opa, nós utilizamos struts aqui, como eu poderia fazer isso com este framework? Tens um exemplo?

Obrigado

L

Já consegui salvar na sessão, agora estou com dificuldades em recuperar o valor.

H

Se usas o Struts, na sua Action vc precisa apenas usar o método getParameter da request e atribuir a chave com o valor que vc setou na sessão:

String x = (String) request.getParameter("chave da variável");

Na página, com o struts vc pode recuperar um valor de variável da sessão da seguinte forma:

<bean:write name=“chave da variável” />

Para setar um valor de variável na sessão vc também pode usar o input hidden do html:

O valor deste input vc pode atribuir dinamicamente através de javascript...

Bem, espero que isso te ajude…

Qualquer coisa, posta aí!!!

R

Você pode usar ajax pra setar e retornar um valor da sessão…

flw

Criado 16 de março de 2007
Ultima resposta 16 de mar. de 2007
Respostas 13
Participantes 5