Listar variaveis de sessao

Boas pessoal,

A minha duvida é simples, eu estou a fazer um forum (é verdade!) e crio uma variavel de sessão para cada pessoa que faz login, como posso fazer para listar todas as variaveis de sessao existentes? ou existe algum truque manhoso para ver as pessoas que estao online no forum?

Obrigado

Usando o método

getValueNames()

da classe HttpSession você terá o nome de todas as variáveis da sessão.

:slight_smile:

Lamento mas não é isso… se fosse isso era muito facil… esse metodo… alias… esse metodo já está deprecated, agora existe o getAttributesNames()… mas não é isso que quero, isso apenas me dá todos os atributos de uma variavel de sessao… o que eu quero é as variaveis de sessao de todos os utilizados… alguem sabe como fazer?

Vc quer poder enumerar todas sessões ativas? Ai sim seria possivel listar todas variaveis.

Ate onde eu sei, isso não é possivel via servlet 2.2 (não sei quanto ao 2.3)

Oque voce pode fazer é usar uma variavel com escopo de aplicação para guardar isso.

Aqui no forum do guj por exemplo aparece todos os utilizadores ligados ao forum, como posso fazer uma coisa dessas? involve variaveis de sessao quase de certeza…

O que o louds quis dizer era pra vc criar um bean com uma Collection da vida para manter todos os que estivessem logados e colocar esse bean com escopo de aplicação:

<jsp:useBean id="usuarios" class="BeanUsuariosLogados" scope="application" />

Assim, o bean usuarios seria o mesmo para todos os usuarios logados já que faz parte da aplicação e não de uma session em particular.

Dessa maneira, toda vez que alguem entrar vc coloca esse cara na Collection desse bean e pode controlar quem está online. Acho que é por aí.

Até mais.

concordo com o cancao
faca uma collection com escopo de aplicação
ai vc faz akeles listener de sessao
quando uma sessao for criada vc adiciona o login ao collection
quando uma sessao for destruida vc tira o referido login da collection