Como eu faço para caso o usuário dê um refresh na página não gerar um novo processamento, e sim apenas mostrar a própria página.
Obrigado.
Como eu faço para caso o usuário dê um refresh na página não gerar um novo processamento, e sim apenas mostrar a própria página.
Obrigado.
Hummm … porque dar um refresh se não vai mudar nada?!?
Não existe um motivo … se nao muda nada nao tem porque!
De qq jeito não dá … qq refresh vai requisitar novamente a página … não é possivel conficar que o cache do browser, proxy ou qq coisa mais vá servir a página pois isso foge do seu controle.
[]s
A questão é que o usuário pode mandar atualizar a página por um motivo qualquer( vc sabe como é usuário, né ), e no meu processo, essa atualização significa alterar informações no meu banco de dados e é isso que eu quero evitar.
Qual é a solução ?
Expira a página (meta tag => content-expires) … isso é HTML mesmo …
ao tentar dar o refresh ou o back ou coisa assim o browser vai avisar ao usuário que a página expirou … ai ele tem q voltar até chegar na página q nao expirou (geralmente a do inicio do processo).
Você pode tentar controlar se é a primeira vez que o usuário entra na página através da sessão ou utilizando diretamente cookies, e aí colocar dentro de um if essa parte do seu código que você não quer que seja executada.
Vc pode me dar um exemplo de utilização de cookie ?
Eu nunca tentei manipular cookies diretamente, então não dá para eu colocar o exemplo, mas por que você não usa a sessão?
Não sei como está montada a sua aplicação, mas basta fazer algo mais ou menos assim:
if(session.getAttribute("refresh")==null) {
//processamento que quer que aconteça apenas uma vez
session.setAttribute("refresh", new Boolean(true));
}
Lembrando que o objeto session você pode pegar através do request.getSession()
Eu pus o teste da variável de sessão e funcionou em parte.
Para o refresh na página funcionou perfeitamente, isto é, eu verifico a sessão e caso esteja preenchida eu redireciono para outra página.
Porém no botão back( “voltar” ) isso não funcionou.
PS: O meu server.xml está com:
<Context path="" docBase=“ROOT” debug=“0” reloadable=“true” crossContext=“true”/>