1
resposta

Porque o F5 causa aquilo quando usa forward?

nao consegui entender pq da problema ao fazer f5 quando usamos encaminhamento (forward), alguem poderia me explicar como o sendRedirect corrige esse probleminha e pq o forward causa isso?

1 resposta

Oii Jade, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

A diferença de comportamento entre esses dois métodos ocorre porque o forward() mantém a requisição original, enquanto o sendRedirect() inicia uma nova requisição.

Quando usamos o forward() ele transfere a requisição e a resposta para a nova página, sem que o navegador do cliente saiba que uma página diferente está sendo exibida. A requisição original ainda está "ativa" no navegador do cliente, e se a página for atualizada, o navegador simplesmente reenvia a mesma requisição, incluindo os dados do formulário. Isso resulta no reenvio do formulário e pode causar problemas caso esteja realizando uma ação que não deve ser repetida, como inserir dados em um banco de dados.

Já o sendRedirect() envia uma resposta ao navegador com um código de redirecionamento e uma nova URL. O navegador, ao receber essa resposta, faz uma nova solicitação para a URL especificada, iniciando uma nova requisição. Portanto, quando atualizamos a página após um redirecionamento, o navegador solicita diretamente a nova página, sem reenviar o formulário.

Em resumo, o sendRedirect() resolve o problema de reenvio de formulário após a atualização da página, pois inicia uma nova requisição no navegador do cliente, enquanto o forward() mantém a mesma requisição original.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!