Necesito llamar a un servlet POST desde otro servlet y pasar un blob en los parámetros de los servlets. ¿Es esto posible? Si es así, ¿cómo puede hacerse? PD: No puedo usar Apache HttpClientLlamando al Servlet Post desde otro Servlet
Respuesta
Debe crear y enviar una solicitud HTTP usted mismo. No puede hacer uso de reenviar/redireccionar/incluir porque quiere cambiar el método de GET a POST y desea enviar una solicitud de multipart/form-data
.
Como HttpClient (¿y otra biblioteca de terceros?) Aparentemente no es una opción, su mejor opción es utilizar la API Java SE estándar provista java.net.URLConnection
. Larga historia corta: Using java.net.URLConnection to fire and handle HTTP requests En la parte inferior se puede encontrar un ejemplo de multipart/form-data
.
Tenga en cuenta que este problema no es específico de los servlets. En otras palabras, debe poder ejecutar este código en una aplicación Java estándar simple con un método main()
. Esto permite una prueba más sencilla y ajustes finos. Una vez que lo haga funcionar, simplemente deje que el servlet ejecute la misma pieza de código.
Sin relación al problema, tengo la impresión de que hay un fallo de diseño importante en algún lugar, desde luego, si los servlets ambos se ejecuta en el mismo contexto de aplicación web. El otro servlet al que desea enviar la solicitud POST aparentemente está demasiado ajustado y debe refactorizarse.
¿Quiere decir llamar desde su aplicación a otro servicio web? Si es así, entonces algo como HttpClient es lo que quiere. Si quiere decir que desea invocar de forma programática otro servlet en su aplicación, entonces está buscando forward to it o include it.
Estoy buscando llamar a otro servlet dentro de mi aplicación, pero debe ser a través del método POST. Lo que normalmente haría es response.redirect (...) pero eso llama al método GET ... ¿Cómo puedo llamar al POST? – fernandohur
Lo que dije: reenvía o incluye, dependiendo de lo que trates de hacer. Consulte ["Invocar otros recursos web" en el tutorial de JEE] (http://download.oracle.com/javaee/6/tutorial/doc/bnagi.html) para obtener más detalles. –
Puede obtener un despachador a otro servlet en su aplicación y reenviarlo o incluirlo como lo sugiere @Ryan. El código debe ser algo así dentro de su primer servlet:
ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/otherurltoservlet");
// change your request and response accordingly
dispatcher.forward(request, response);
Lo que necesito es llamar al método POST en otro servlet en mi aplicación. ¿Llamará eso al método POST de "otherurltoservlet"? – fernandohur
Creo que si se llamó al primer servlet por correo, se llamará al segundo a través de una publicación en la cadena dispatcher.forward. – rmarimon
Mire aquí la pregunta sobre GET para POST http://stackoverflow.com/questions/4374548/does-jspforward-or-requestdispatcher-forward-use-get-or-post – rmarimon
- 1. llamando a un servlet java desde javascript
- 2. Llamar al servlet Java desde Android
- 3. Pasar datos del servlet a otro servlet usando RequestDispatcher
- 4. Acceso desde servlet Java
- 5. Tomcat: cómo acceder al administrador (sesión) desde el servlet
- 6. Procesamiento asíncrono en Java desde un servlet
- 7. Acceder al archivo en la carpeta WebContent desde un servlet
- 8. ¿es posible llamar al servlet java desde ring/compojure?
- 9. Escribiendo datos de entrada de un servlet java a otro
- 10. Llamar servlet desde GWT con datos de publicación y descargar archivo generado por el servlet
- 11. cómo actualizar filtros para apoyar Servlet 3.0 servlet asíncrono
- 12. Cómo enviar parámetros desde un servlet
- 13. JQuery $ .ajax() post - data en un servlet java
- 14. ¿Servlet es el singleton?
- 15. Raíz URl del servlet
- 16. Servlet Filter vs. ServletRequestListener
- 17. JSP excepción servlet
- 18. ExecutorService en Java Servlet
- 19. HTTP Tunnel Servlet (Java)
- 20. threadlocal variables en un servlet
- 21. servlet doGet and doPost methods
- 22. Applet v/s Servlet
- 23. java-servlet request.getParameterValues ()
- 24. System.exit en el servlet
- 25. Servlet: java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
- 26. dependencia inyectar servlet oyente
- 27. parámetros Servlet y doPut
- 28. Servlet 3.0 asíncrono
- 29. SSE y Servlet 3.0
- 30. servlet set cookie secure?
Well Apache HttpClient es de código abierto ... ¿copiar y pegar? –
No puedo usar porque utilizo Google App Engine e impone limitaciones en algunas clases que se pueden usar – fernandohur