Tenho uma tela de cadastro simples que chama uma servlet através de um método post. Na servlet
o método doPost faz o seu trabalho e termino o método com esse carinha abaixo:
Nada surpreendente ate aqui… porem quando atualizo a pagina “contato-adicionado.jsp” no browser o form da pagina de cadastro é reenviado e cadastro é feito novamente.
É possível modificar este comportamento?
Porque o Browser não sabe que aconteceu esse redirecionamento, então se você atualiza a pagina o Browser vai realizar o ultimo request que no caso foi o POST.
Para contornar a situação utilize o comando abaixo, basicamente a diferença entre eles é que no comando abaixo o Browser que faz o redirecionamento e não o servidor conforme dito anteriormente.
Se você reparar a url do seu Browser essa modificação será observada, pois do modo que você esta fazendo a url não será alterada, já no modo que te passe a URL será alterada.
response.sendRedirect("/contato-adicionado.jsp");
Espero que tenha ajudado !
Att,
F
freakazoid
magnocosta:
freakazoid,
Esse é o comportamento esperado quando você utiliza o comando:
Porque o Browser não sabe que aconteceu esse redirecionamento, então se você atualiza a pagina o Browser vai realizar o ultimo request que no caso foi o POST.
Para contornar a situação utilize o comando abaixo, basicamente a diferença entre eles é que no comando abaixo o Browser que faz o redirecionamento e não o servidor conforme dito anteriormente.
Se você reparar a url do seu Browser essa modificação será observada, pois do modo que você esta fazendo a url não será alterada, já no modo que te passe a URL será alterada.
response.sendRedirect("/contato-adicionado.jsp");
Espero que tenha ajudado !
Att,
magnocosta obrigado pela resposta!
substitui o ResquestDispatcher por response.sendRedirect("/contato-adicionado.jsp"), porem a agora recebo 404 na pagina contato-adicionado.jsp javascript:emoticon(’:?’);
Na pagina “contato-adicionado.jsp” deixei apenas uma mensagem de “sucesso” e mesmo assim não funciona.
Alguma ideia?
Segue abaixo o código:
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//monta objeto e chama as regras de negocio........response.sendRedirect("/contato-adicionado.jsp");}
A pagina “contato-adicionado.jsp” está dentro de alguma pasta ou está da pasta raiz da aplicação ?
Se ela estiver dentro de alguma pasta essa pasta deve ser adicionada no caminho, como o exemplo abaixo: