Dúvidas sobre Session no Servlet

Galera :cool:
como posso criar uma sessão no sistema onde todos os outros usuários que logarem possa ver o que tem nela ?

estou já tentei req.getSession() - mas ela se refere a sessão para Cada usuário que usa seu Request e REsponse.
mas estou precisando de algo que seja Global.

Podem me ajudar por favor ?
:grin:

Ola,

Algo que todos que estão no site possam ver seria o contexto, que é representado pelo ServletContext, que vc recupera de dentro do servlet invokando o :this.getServletContext();, nele tem a situação de atributos, como numa session.

Esqueci de mencionar que, no teu caso, vc deve trabalhar em conjunto com a session, para verificar se o usuário está logado.

Legal bruno Obrigado !! fiz aqui e funcionou está com os objetos armazenados assim:
this.getServletContext().setAttribute(“usuario1”, usuarioBean);
this.getServletContext().setAttribute(“usuario2”,usuarioBean);

só que para remover ele não remove definitivamente !
estou usando :
this.getServletContext().removeAttribute(“usuario1”);

mas na verdade ainda fica lá !!

eu postei novamente a mensagem e com mais detalhes:
http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&p=156758#156758

Põ, mas questões relacionadas ao usuário, que deve ser um cliente do site, ou algo do etilo, é melhor ser tratado pela session, pois ae a estrutura garante que vc não ira tratar um achando que é outro…

Sim eu concordo mas é que o sistema tem um meio pelo Swing de verificar quem está online… se eu visitar o site pelo URLConnection do Java (via Desktop ) eu precisaria ver quem esta lá em tempo real…
e pela sessão não consigo ver pq ao visitar a pagina via URLConnection estou tendo o meu Request e naõ visualizaria a Sessão de outras pessoas.

por isso que usei esse getServletContext()

mas quanto a minha duvida de removeAttribute naõ tem como então remover definitivamente ?

ou vc tem outra alternativa ?

será bem vinda !

Em relação ao removeAttribute, eu fiz umas paradas e ele funcionou legal, sem problemas… dá uma conferida no nome do atributo… pode que ser que tenha algo diferente…

Mas em relação a saber quem está on-line vc pode criar um “repositorio” de suário, que poderia ser gerenciado por um HttpSessionListener… acho que ficaria mais “elegante”.

Legal Bruno vou fazer essa de Repositório de Usuario gostei !

como ficaria para adicionar esses usuarios ?
vc quer dizer assim ?
req.getSession().setAttribute(“usuario1”, usuariobean);

mas se for assim o da aplicação swing naõ consegueria enxergar essa sessão certo ?

Ola,

Seguinte, crie uma classe que implemente o HttpSessionListener, esta classe tem que ter um construtor default, sem argumentos, esta interface define dois metodos,

void sessionCreated(HttpSessionEvent se)
Notification that a session was created.
void sessionDestroyed(HttpSessionEvent se)
Notification that a session is about to be invalidated.

Como vc pode ver na descrição, vc será notificado quando uma sessão for criada e quando uma sessão for destruida, ache um modo desta tua classe ficar disponivel para o resto da aplicação, e crie os metodos de acesso desejado… pronto, vc criou um repositorio…

Só esqueci, acho que vc tem que declarar este listener no seu DD, assim:

[code]
<web-app…

<listener>
<listener-class>my.path.to.listener.class</listener-class>
</listener>[/code]