Váriavel de Sessão

10 respostas
W

Pessoal, gostaria de saber se tem como destruir uma variável de sessão sem destruir toda a sessão.

10 Respostas

R

Eu não tenho certeza waterman, mas acho que como a sessão é uma só, todas as “variáveis de sessão” são a mesma sessão. Não é uma questão de destruir uma variável sem destruir a sessão, porque a sessão é uma coisa só, e todas as variáveis apontam para o mesmo lugar.

Você pode sim, utilizar JPS´s que não mexam com sessão (são mais leves e rápidas), e para isso basta adicionar a seguinte linha ao começo do código:
<%@page session=“false”%>

No caso dos servlets, eles não criam uma sessão automaticamente. Quando vc chama o método getSession() do objeto de requisição, duas coisas podem acontecer:

(1) se não houver uma sessão, ela é criada e retornada.
(2) se houver uma sessão, ela é retornada.

Porém uma vez que uma sessão é criada, ela fica lá até expirar ou até você destruí-la, seja através de uma ou de outra variável a que se tenha atribuído aquela sessão.

Espero que tenha ajudado… Abs!

W

Valeu vou tentar contornar sem precisar utilizar a sessão.

B

Neste caso qual é o padrão?

Imagine um site de emprego.
_login da empresa >> Criada a secao
_agora eu quero por exemplo cadastrar uma vaga >> Mais uma variavel na seção. Ok criei a minha nova vaga, agora quero inserir uma nova vaga.
O que eu faço se o meu SESSION VagaBean ja tem valores?

R

Brito,

Uma vaga não pode ser uma variável de sessão. Este é um problema de escopo.

O login por exemplo, tem o escopo de uma sessão, e é por isso que se mantem informações no objeto de sessao sobre como alguem logou, se esta ou nao autorizado, por ai vai.

Porém alguem pode cadastrar mais de uma vaga durante uma sessão (durante o uso do sistema a partir do browser) de tal forma que o objeto VagaBean não pode ficar na sessão…

Talvez ele pudesse vir pelo objeto de requisição do usuário (HttpServletRequest), para ser processado e armazenado em um banco de dados.

Abraços!

B

Você quer dizer enviar a chave de navegação da vaga pela url ou campo oculto?

R

Fala! =))

Quando vc diz pela url, diz como parâmetro?? Se for isso… é o que eu quis dizer sim…

Eu creio que o usuário indique a chave através de uma form em um jsp, certo? Desta forma, é só vc fazer um form de método post que os parâmetros não aparecem na requisição url.

Eu normalmente uso os servlets para receberem as requisições, e depois faço com que eles redirecionem para a JSP adequada. Desta forma, se vc tivesse um servlet que recebesse essa requisição, poderia pegar o parâmetro com a chave de navegação, e criar o registro no banco de dados, para depois redirecionar o usuário para uma jsp que mostre uma mensagem de sucesso.

Abs!

B

Quer dizer q é errado eu ter um bean (acessoBean) na seção controlando o login do usuario, e ter tambem na seção o bean (produtosBean)?
Nao posso fazer isto então?
Mas como é q eu mando um bean ir para o parametro ao inves de ir para a secao, pra pegar ele como outro escopo q nao seja o session?

T

WWatermann,

acho q a resposta para sua pergunta eh sim…

dê uma olhadinha na API na interface HttSession nos métodos:

getAttribute(String)

setAttribute(String, Object) e

removeAttribute(String)

eh isso…

Abraço

G

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=110

:wink:

B

Ok JavaPlayer.
Ja tinha visto este tuto aqui no pj, mas nao tem oq preciso la.

Criado 11 de março de 2005
Ultima resposta 29 de mar. de 2005
Respostas 10
Participantes 5