| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:21:17
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Oi gente,
Há uma tela (caso de uso) que saem vários itens (sub casos de uso) tais como Rejeitar Proposta, Formalizar Proposta e Imprimir Proposta, todavia
só um usuário pode acessar a tela por vez... Como você faria para controlar isso? Nos foi sugerido fazer o seguinte: Quando o usuário seleciona um item
como Rejeitar Proposta, por de trás aciona um método chamado isBloqueio que é um tipo boolean se não tiver bloqueado vai chamar o método insertBloqueio
e depois que o usuário sai ele chama o método deleteBloqueio. Só que há que pequenas falhas pois no mundo real se o usuário sair via botão voltar ou clique
no x do navegador para fechar a janela acabará não acionando o método deleteBloqueio e simplemente o item ficará travado pois não foi destravado com o deleteBloqueio. Foram
comentados o onunload no brownser mas vímos que dará pau futuramente e o lock de tabela que é uma solução a pensar com mais cuidado.
Valeu pela atenção!
Abs,
André AS
O que vc sugere com base nesta estrutura?
abs,
André AS
This message was edited 1 time. Last update was at 26/03/2010 10:30:31
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:22:14
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
O post anterior sobre este assunto está dando pau... Não dá pra responder... Isso até o momento que testei...
abs,
André AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:28:35
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Andre, tudo bem, cara o que exatamente voce esta usando de framework e na camada de persistência e SGBD?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:30:47
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
o cenário é o seguinte:
Struts 1
EJB 2
e JDBC
Sem possibilidade de usar outro framework pois está tudo engessado.
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:35:48
|
fvslistas
JavaGuru
Membro desde: 26/08/2009 17:31:26
Mensagens: 231
Offline
|
Que questão difícil Andre.
Bem, como o usuário pode simplesmente fefchar o browser, perder a conexão com o servidor e a sua aplicação nunca vai ficar sabendo se o usuário saiu da tela, no mínimo, você precisará de um timeout para o bloqueio. Se o usuário estiver mais de 30m por exemplo, dentro da área exclusiva do site, ele pode perder o acesso e ser redirecionado para uma área de acesso irrestrito.
Bem, tirando estes casos nos quais o usuário simplesmente some do site (perdendo conexão, ou fechando browser, ou...) sobram os casos nos quais o usuário navega de uma página para outra saindo da área restrita para a área não restrita. Para pegar estes casos, eu sugiro o uso de filters, ou servlets que sejam associados às páginas *.jsp ou outras que vc ahar melhor. E este filter ou servlet pode tratar as mudanças fazendo os testes que você deseja, mantendo ou removendo o bloqueio.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 10:43:05
|
fabiocsilva
JavaEvangelist
![[Avatar]](/images/avatar/2c75cf2681788adaca63aa95ae028b22.jpg)
Membro desde: 19/07/2006 18:53:36
Mensagens: 319
Offline
|
Você pode fazer esse controle usando Ajax, daí pode verificar quando o usuário entrou ou saiu da página via javascript e chamar um método java que altera sua variável booleana. Quando eu mexia com struts 1 usava DWR pra Ajax, podia tentar com ele.
|
"The only place where success comes before work is in the dictionary."
_____________________
Sun Certified Java Programmer
Sun Certified Business Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 11:12:02
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Legal... É sempre bom discutir opiniões... Estou adora todas a idéias...
fabiocsilva vc tem algum exemplo da utilização do DWR? Aqui usamos o DWR com o AJAX...
abs,
André AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 11:19:17
|
fabiocsilva
JavaEvangelist
![[Avatar]](/images/avatar/2c75cf2681788adaca63aa95ae028b22.jpg)
Membro desde: 19/07/2006 18:53:36
Mensagens: 319
Offline
|
Não tenho nenhum código porque já faz um tempo que não trabalho com DWR, mas eles tem uma documentação boa, tem até em português:
http://directwebremoting.org/dwr/files/languages/tutorial_DWR-PR.pdf
This message was edited 1 time. Last update was at 26/03/2010 11:20:30
|
"The only place where success comes before work is in the dictionary."
_____________________
Sun Certified Java Programmer
Sun Certified Business Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 11:33:51
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Deixa eu ler...
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 13:10:44
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Tive pesquisando... Acho que uma solução server-side parece melhor...
Qual sua opinião?
AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/03/2010 15:27:00
|
fabiocsilva
JavaEvangelist
![[Avatar]](/images/avatar/2c75cf2681788adaca63aa95ae028b22.jpg)
Membro desde: 19/07/2006 18:53:36
Mensagens: 319
Offline
|
andredecotia wrote:Tive pesquisando... Acho que uma solução server-side parece melhor...
Qual sua opinião?
AS
Se a solução parece melhor, posta aí pra galera saber...
|
"The only place where success comes before work is in the dictionary."
_____________________
Sun Certified Java Programmer
Sun Certified Business Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2010 21:00:54
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Não é que eu já tenha a solução é que eu acho que Java é melhor do que o Java Script... Entendeu?
O que você pensa sobre?
abs,
André AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/03/2010 12:25:15
|
fabiocsilva
JavaEvangelist
![[Avatar]](/images/avatar/2c75cf2681788adaca63aa95ae028b22.jpg)
Membro desde: 19/07/2006 18:53:36
Mensagens: 319
Offline
|
Na verdade você tem que explicar porque precisa desse mecanismo para que seja sugerida a melhor solução. Eu nunca vi uma aplicação web com esse requisito. Talvez o que você precise seja um lock pessimista, que dá pra fazer tanto pela aplicação quanto pelo banco de dados.
|
"The only place where success comes before work is in the dictionary."
_____________________
Sun Certified Java Programmer
Sun Certified Business Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2010 09:39:11
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Hmmm...
A verdade é que estou como poucas idéias por ser novato em Java... Quais as formas possíveis que vc poderia fazer se tivesse de fazer isto?
Valeu mesmo...
André AS
This message was edited 1 time. Last update was at 29/03/2010 09:41:42
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2010 18:24:48
|
fabiocsilva
JavaEvangelist
![[Avatar]](/images/avatar/2c75cf2681788adaca63aa95ae028b22.jpg)
Membro desde: 19/07/2006 18:53:36
Mensagens: 319
Offline
|
Cara, tem várias formas de resolver esse problema. A mais trivial seria ter apenas um usuário responsável por essas telas. Mas também seu problema pode ser de fluxo(por exemplo: a proposta inicia com o status "iniciada" e pode mudar para "formalizada" ou "rejeitada", sendo permitido imprimir apenas propostas formalizadas). Não sei se não permitir que um usuário acesse a tela porque outro já está acessando é um requisito do seu sistema, isso que queria entender.
|
"The only place where success comes before work is in the dictionary."
_____________________
Sun Certified Java Programmer
Sun Certified Business Component Developer |
|
|
 |
|
|