| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 10:19:06
|
mickknoxrs
Entusiasta Java
Membro desde: 24/01/2004 11:17:38
Mensagens: 17
Offline
|
Tudo bem?
Estou pesquisando sobre padrões que possibilitem o controle de sessão do usuário de forma mais robusta do que simplesmente utilizar o objeto implícito session do JSP. Se possível gostaria de algo que me permita fornecer visões de menu de acordo com a sessão.
Postei essa mensagem no fórum em paralelo a minha busca na bibliografia especializada.
Desde já agradeço as sugestões.
Abração,
Mick Knox.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 10:26:32
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Como seria algo mais robusto que session (Session faz parte da API de Servlets, que é independente de JSP)?
'Fornecer visões de menu' seria ter um menu personalizado para cada usuário? Se for isso, dá pra utilizar Session como é tranquilamente...
Antes de prosseguirmos, lembre-se que HTTP é um protocolo sem estado [stateless], logo muita coisa qeu se faz com Session é pura gambiarra.
Outra coisa: existe uma seção para JSP e Servlets no fórum, sua dúvida deveria ser postada lá
[]s
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 10:32:01
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Ola
Você pode usar campos hidden nos forms válidos para cada página. Algo que vá mudando a cada página navegada mais ou menos assim: campo01, campo02, ...., campo999, etc. Assim tb impede o usuário de usar a tecla Back, pois se ele o fizer o campo hiden da página anterior não vai bater com aquele que o servido espera receber.
É claro que este link está em sua busca, certo?
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 13:11:08
|
mickknoxrs
Entusiasta Java
Membro desde: 24/01/2004 11:17:38
Mensagens: 17
Offline
|
Tudo bem, pessoal?
Antes de mais nada, obrigado pela atenção.
Estava lendo a minha mensagem anterior e percebi que não havia ficado clara minha intenção. Favor desculpar.
Como o próprio Calçado disse, o protocolo HTTP é stateless e por causa disso fica um tanto quanto difícil fugir das famosas gambiarras com o Session.
Quando submetemos uma pesquisa em um banco e ela retorna uma Collection com o resultado, normalmente esse objeto é inserido como um atributo na sessão e fica vagando pra lá e pra cá. Certamente isso causa uma série de transtornos que não vejo necessidade de relatar aqui.
Uma das soluções que pensei para esse problema seria a criação de um singleton no servidor. Nesse singleton existiria um Map vinculando uma sessão a um bean onde seria guardada a Collection. De tempos em tempos o Singleton excluiria as entradas que tivessem o seu prazo de validade expirado (algo como último_acesso + 2 minutos).
Como esse problema é bastante comum, imagino que já exista algum padrão relacionado.
Grande abraço,
Mick Knox.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 13:13:11
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
mickknoxrs wrote:
Quando submetemos uma pesquisa em um banco e ela retorna uma Collection com o resultado, normalmente esse objeto é inserido como um atributo na sessão e fica vagando pra lá e pra cá. Certamente isso causa uma série de transtornos que não vejo necessidade de relatar aqui.
Faz isso não, rapaz...
Coloque sua collection em request, e dê um forward para a JSP. Assim, o garbage collector vai limar ela, e você não tem mais que se preocupar
[]s
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/08/2004 15:50:35
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Coloque na session somente o indispensavel e aquilo que deve sobreviver a mais de 1 request.
Se você está colocando dados que são inuteis ao final de 1 requisição na session, pare um pouco e estude os varios escopos para variaveis existentes com servlets: page, request, session e application.
Não use singletons e sim uma variavel no escopo de aplicação.
Singletons em J2EE não devem ser usados.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
|
|