sendRediret con post
Necesito desde un servlet llamar a una URL (externa, que no puedo modificar) con el método post.
Uso sendRedirect, y todo va bien pero el método que usa por defecto es get.
¿álguna idea sobre lo que puedo hacer?
Uso sendRedirect, y todo va bien pero el método que usa por defecto es get.
¿álguna idea sobre lo que puedo hacer?
yo te recomiendo que uses un RequestDispatcher.
La diferencia entre response.sendRedirect() y request.getRequestDispatcher es que de la segunda manera aún conservas las variables y datos de request.
Si redirigimos la petición (con sendRedirect) realmente le estamos diciendo al servlet que comunique al navegador que debe pedir otra dirección. El navegador obedece y la pide, pero claro, con otra petición distinta. La única manera de pasar parámetros en con GET, componiendo una URL del tipo pagina.jsp?var=valor&var2=valor2...
Con RequestDispatcher es el propio Servlet el que delega en alguien la petición original que le llegó, y que devuelve el resultado de la misma. De este modo, los parámetros originales en la petición HTTP SE CONSERVAN.
Si habÃa parámetros POST, los seguirá habiendo.
Para despachar de esta manera:
request.getRequestDispatcher("URL_SERVLET_DESTINO").forward(request, response);
Vemos que al método forward del RequestDispatcher le pasamos las instancias de los request y response para que, precisamente, conserve cualquier parámetro que tuviese.
Espero que te sirva. MÃrate la API de los HttpServlet.
Salu2
Ken
La diferencia entre response.sendRedirect() y request.getRequestDispatcher es que de la segunda manera aún conservas las variables y datos de request.
Si redirigimos la petición (con sendRedirect) realmente le estamos diciendo al servlet que comunique al navegador que debe pedir otra dirección. El navegador obedece y la pide, pero claro, con otra petición distinta. La única manera de pasar parámetros en con GET, componiendo una URL del tipo pagina.jsp?var=valor&var2=valor2...
Con RequestDispatcher es el propio Servlet el que delega en alguien la petición original que le llegó, y que devuelve el resultado de la misma. De este modo, los parámetros originales en la petición HTTP SE CONSERVAN.
Si habÃa parámetros POST, los seguirá habiendo.
Para despachar de esta manera:
request.getRequestDispatcher("URL_SERVLET_DESTINO").forward(request, response);
Vemos que al método forward del RequestDispatcher le pasamos las instancias de los request y response para que, precisamente, conserve cualquier parámetro que tuviese.
Espero que te sirva. MÃrate la API de los HttpServlet.
Salu2
Ken
