evitar que o reload da página grave 2x a mesma informação  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
javinha2004
JavaTeenager

Membro desde: 30/04/2004 09:00:53
Mensagens: 169
Offline

Pessoal,
tenho uma página jsp onde há uma textarea. O usuário escreve nela e submete, sendo que ele volta para a mesma pagina, que agora tem o que ele digitou aparecendo em outro local, em html. Acontece que se ele der um reload na página com o navegador, a mesma informação é gravada duas vezes, e fica repetida na página. Tem como evitar isso, sem ter que percorrer e comparar todos os textos que o usuário já digitou toda vez que for carregar a página?
Valeu.
kina
JavaEvangelist
[Avatar]

Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline

use a session para saber isso
[MSN] [ICQ]
javinha2004
JavaTeenager

Membro desde: 30/04/2004 09:00:53
Mensagens: 169
Offline

kina wrote:use a session para saber isso

Desculpe, não entendi...
dark.wizzard
Thread.start()
[Avatar]

Membro desde: 31/08/2004 11:54:30
Mensagens: 46
Localização: Porto Alegre/Brasil
Offline

Pelo que entendi seria o seguinte... Quando você submete o texto, grave na session algo do tipo "new"; vá para o componete/página de processamento da requisição e compare se existe na session o "new". Se existir grave, senão existir não grave.

Depois de gravar o texto, apague da session o "new"... Acho que isso deve te dar uma luz.

Cheers,

Existem 2 tipos de programadores:
Aqueles que usam JAVA e aqueles que não usam...


generated by sloganizer.net

I love it! :: Azureus - Java Bittorrent Client
[MSN] [ICQ]
kina
JavaEvangelist
[Avatar]

Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline

Se vc ficar com esse negócio de new não vai dar certo, mas poderia fazer algo parecido com isso.
Salve o tempo da requisisão(Metodo existente no HttpSession), assim vc conseguirá validar.
Falou
[MSN] [ICQ]
psevestre
JavaEvangelist

Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline

Complementando:

A técnica sugerida combina um "token" armazenado na sessão juntamente com um campo "hidden" do formulário. A lógica é a seguinte:

1. No controller que recebe a requisição da página que _apresenta_ o formulário, gere um número aleatório (em sites de baixo tráfego, pode até ser o System.currentTimeMillis() ). Salve este valor na sessão sob um nome conhecido, tal como "nomedoform.token". Na página em si, use um input hidden cujo valor será preenchido com o valor do atributo "nomedoform.token". Dê ao mesmo um nome que faça sentido, "token", p.ex.

2. No controller que recebe o POST do formulário, compare o valor da variável "token" recebida no request ao valor do atributo "nomedoform.token". Se o atributo não existir ou seu valor for diferente do submetido, redirecione para a mensagem de erro "formulário já enviado". Caso contrário prossiga no processamento do mesmo.

http://justaphilpicks.blogspot.com/
[MSN]
javinha2004
JavaTeenager

Membro desde: 30/04/2004 09:00:53
Mensagens: 169
Offline

Valeu, galera.
Vou tentar implementar o que vcs estão sugerindo.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team