Pessoal tava lendo sobre Session (Sessoes) em Java e surgiu uma pequena duvida.
Por exemplo: eu entro na pagina inicial (index.jsp) da minha loja virtual, neste jsp eu dou o “session = request.getSession(true)”
Dai eu vo colocando meus itens no “carrinho de compras” no meu objeto Session e tals.
Entao eu entro em outro jsp (exemplo: outros_produtos.jsp) atraves de 1 link.
A minha duvida?!?
Para eu manter esse meu objeto “session” com os itens q eu tava inserindo no carrinho de compras, sem zerá-lo (perder os itens), ao entrar em outro .jsp, eu terei:
De dar SEMPRE “dispatcher.forward(request, response)”, p manter o objeto “session” ja q o mesmo objeto “resquest” eh enviado p o outro jsp???
NAO precisa dar “forward(request, response)” p/ entrar em outro .jsp, ja q o objeto “session” eh mantido com os itens msm SEM o “forward”, ou seja, so precisa acessar o .jsp normalmente e dps dar um “request.getSession()” q ele irá pegar o objeto “Session” passado com os itens inalterados???
Bem eu acho q vc pode ir pela opcao 2, mas a 1 tb pega, porem a 2 pega e eh menos complicada, eh isso msm?
Nao cheguei a testar na pratica pq to sem tempo, mas terminando aki vo testar, se alguem ja o fez, me ajude, vlw…
cara eu acredito que uma session não precisa de request e response…ela estará na memória enquanto a vida da session for válida…se vc trocar de página por um link a session continuará viva…agora quanto ao carrinho de compras…vc precisa persistir os dados para algum lugar…
se vc vai sair da jsp então salve os dados em algum lugar que te habilite mostra-los depois…
não tenho muito tempo com web…mas acredito que seja assim o melhor jeito…
Fala hlds ! Vou tentar te ajudar…
a primeira coisa que ia citar é que : session = request.getSession(true) é exatamente igual a session = request.getSession(), ou seja, caso ainda não exista uma sessão p/ esse usuário atual crie uma, caso já exista apenas me de a referência dessa sessão e muito diferente de session = request.getSession(false), que só retorna a sessão se ela já existir ! vc já deve saber, mas fica aí p constar \o/
e sobre o seu objeto session, ele é mantido independentemente da forma como vc está navegando, ou seja, tanto com ou sem o despacho do RequestDispatcher a sua sessão será mantida.
abusando da boa vontade de vcs, me confirmem so 1 coisa:
qnd eu (como cliente) acesso uma pagina JSP qualquer (index.jsp, por exemplo), pela primeira vez, dai mesmo que NAO tenha no codigo do JSP “session = request.getSession(true)”, uma sessao eh criada automaticamente ne, por default?? O pessoal coloca “session = request.getSession(true)” p ficar explicito a criacao, eh isso mesmo?