Como usar session

Saudações!

Estou construindo uma aplicação de exemplo para estudar o struts 2. Nesta aplicação
eu vou ter dois tipos de usuários: usuário comum e administrador. Como eu faço para
usar as sessions para controlar isso? Se tiverem algum exemplo.

c pode criar uma classe de tipos de usuário e colocar o tipo de usuário ao logar na session, ou pode fazer autenticação via web.xml , se eu fosse vc iria mapar uma classe para uma entidade no banco de dados, uma classe com os tipos de usuário e assim q logasse vc iria verificar o tipo de usuário e coloca-lo na sessão, vc poderia criar uma table de USUARIOS e uma TIPOUSUARIO e criar uma associação entre elas ou fazer só uma table mesmo contendo tudo…ai vai de vc.

Bem… para fazer a validação eu te aconselho a utilizar o recurso Filter do Java. Dá uma estudada sobre isto depois! =)

Agora para colocar manipular objetos na sessão utilizando Struts2, basta você colocar uma variável do tipo java.util.Map no seu action com o nome “session”, criar os métodos get e set para ela e fazer a classe implementar SessionAware. Veja:

[code]public class ActionTeste extends ActionSupport implements SessionAware {
protected Map<String, Object> session;

@SuppressWarnings("unchecked")
public void setSession(Map map) {
    this.map = map;
}
@SuppressWarnings("unchecked")
public Map getSession() {
    return map;
}

}[/code]

O Struts colocará os atributos da Sessão dentro deste Map, entende?! =]

Espero ter ajudado. Até.

dmarcosm, se eu entendi eu crio esta action. Cada página que o usuário acessar eu chamo esta action
para verificar se a session é válida. E esta session é mapeada pelo meu web.xml? Ainda estou com dúvidas,
pois vc falou do recurso filter do java para validar e eu naum encontrei mta coisa. Em algumas pesquisas que
eu fiz eu encontrei um pattern do j2ee e códigos em xml, mas não entendi como é feita a validação.

Action é um conceito do Struts/Struts2. No caso pensei que sua dúvida fosse como acessar a sessão utilizando Struts2, por este motivo expliquei como é este acesso atravéz das Actions do Struts.

Por favor, não confunda isto com alguma configuração do Web.xml, ok? =]

Quanto a validação de acesso, não tente procurar por “validação utilizando filter” por exemplo. Realmente não vai ser produtivo. Procure somente por “filter servlet” e entenda o conceito de funcionamento do mesmo. Depois que você estiver sabendo o que é e como funciona um filter, validar não vai precisar mais do que alguns ifs! =]

Alguns links para filter:
http://java.sun.com/products/servlet/Filters.html


http://javaboutique.internet.com/tutorials/Servlet_Filters/

Espero ter ajudado. Até.

dmarcosm,

Acho que me expressei mal. Na correrria isso acontece. Desculpa ae.
Mas realmente o que eu quero é saber como acessar a session com o struts 2.
Eu entendi um pouco do exemplo que vc postou antes. Mas como eu ainda sou meio verde
nessa área da web, será que teria como vc me explicar um pouco mais como funciona aquele post anterior.
Assim, além de fazer a validação do usuário, perfil, etc como eu faço para manter a session de uma página para
outra? Quero dizer onde e como eu chamo trecho de código que vai fazer a validação da session?

E mto obrigado pela ajuda até agora! Valeu mesmo!

simples, faça sua action implementar sessionAware… para o filtro, em ambientes Struts2 aconselho a não usar o filtro e dar preferência aos interceptor, que são mais facilmente desenvolvidos, acoplados e empacotados. Melhora sua manutenção tb…

Tambem estou com o mesmo problema, isso quer dizer q toda action que dispachará para uma pagina JSP que precise estar numa sessao terá q implementar sessionAware? e como o nosso amigo falou como fazemos para amnter a sessao nas outra paginas, tipo verificar se a sessao esta true?

Sei que to muito atrasado pra responder, mas como não foi dado como resolvido…

A apostila da Caelum explica perfeitamento como fazer o acesso e controlar o acesso às Actions usando Interceptors
no Struts 2.

http://www.caelum.com.br/download/caelum-java-web-fj21.pdf