Caso de uso SendRedirect vs. Forward en Servlets de Java

Tengo una página html simple con el propósito de realizar cambios en una entidad que está escrita en la base de datos. La página tiene dos formas:

  • OBTENER: selecciona la entidad a cambiar
  • POST: procesa los cambios en la entidad y los escribe en la base de datos

Cuando se realiza la acción POST, quiero volver a mostrar la misma página, además, quiero mantener el parámetro de entidad establecido por la acción GET. Actualmente estoy haciendo lo siguiente al final del hacerPublicar método:

response.sendRedirect(path + "?entity=" + entityValue);

Que funciona perfectamente bien, pero después de leer las diferencias entre reenviar y enviarRedireccionar Pensé que tenía que usar adelante, pero eso no funcionará ya que el método doGet no se ejecutará como con sendRedirect. Entonces, ¿mi enfoque es correcto o debería resolverse de otra manera?

preguntado el 22 de mayo de 12 a las 18:05

¿Por qué exactamente pensaste que tenías que usar un delantero? La respuesta principal en la pregunta vinculada ya recomienda usar la redirección después de una POST exitosa. -

1 Respuestas

Tu enfoque es excelente. utiliza el post-redireccionamiento-obtener patrón, que tiene varias ventajas:

  • URL limpia que se puede marcar y enviar por correo electrónico, por ejemplo
  • no hay riesgo de volver a enviar la modificación presionando el botón Actualizar
  • navegación limpia a través del historial del navegador
  • separación de responsabilidades entre las URL de obtención y publicación

Así que mantén todo como está. Un reenvío es una solución menos óptima que una redirección en este caso.

contestado el 22 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.