Etiqueta: programacion web

Redirect en Java conservando los parámetros POST

Si alguna vez habéis usado el método SendRedirect de un HttpServletResponse intentando respetar los parámetros de una petición POST habréis comprobado que cada navegador hace lo que le viene en gana. Esto es porque el SendRedirect envía un código HTTP 302: found, que al parecer cada navegador interpreta como quiere. Si queréis un workaround sólido para esta problemática, podemos enviar un código de respuesta HTTP 307: temporary redirect que sí respeta este tipo de peticiones. Hacerlo es muy sencillo: protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String URL = "https://www.luaces-novo.es"; response.setStatus(response.SC_TEMPORARY_REDIRECT); response.addHeader("Location", URL); } De esta forma se respetará cualquier parámetro envíado mediante un método POST. Recordad que al estar modificando los headers no podéis enviar otro tipo de información que no sean headers o status codes.

Publicado en howtos Etiquetado con: , ,