Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/12/2015, 17:14
Avatar de Andreslrz
Andreslrz
 
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Paso de datos de Servlet a JSP

Hola.

Devolver un array como tal de poderce se puede, pero te recomiendo que retornes un JSON, lo que necesitas es un poco de Ajax. puedes usar JQuery. Yo generalmente utilizo el


Código Javascript:
Ver original
  1. $.post('url del servllet', {dato1:valor, dato2:valor2... daton:valorn}, function(response){//el response es un string generalmente pero puede ser un objeto json}};
te explico, lo que va despues de la url del servlet es un arreglo que recibes en el servlet y la parte del function es lo que retorna el servlet, asi a grandes razgos.

en el servlet para resivir harias lo siguiente en el processRequest

Código Java:
Ver original
  1. String dato1 = request.getParameter("dato1");//sacas el dato1 que enviaste por el $.post y asi mismo todos los datos.
para el retorno es lo igual de facil, en el processRequest generalmente te pone esto al crearlo:

Código Java:
Ver original
  1. response.setContentType("text/html;charset=UTF-8");
  2.         try (PrintWriter out = response.getWriter()) {
  3.             /* TODO output your page here. You may use following sample code. */
  4.             out.println("<!DOCTYPE html>");
  5.             out.println("<html>");
  6.             out.println("<head>");
  7.             out.println("<title>Servlet NewServlet</title>");            
  8.             out.println("</head>");
  9.             out.println("<body>");
  10.             out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");
  11.             out.println("</body>");
  12.             out.println("</html>");
  13.         }

con eto puedes retornar una pagina entera para mostrar en un submit o retornar datos en una consullta asincrona con ajax.

para retornar datos simplemente quitas todo el html y en el out.println() pones lo que vas a restornar, ya sea una cadena, un numero, un boolean o un objeto JSON, recuerda que siempre llegara a la pagina como un string, para los JSON en el $.post haces el parsin y te quedara un objeto js.
Ej.
Código Java:
Ver original
  1. response.setContentType("text/html;charset=UTF-8");
  2.         try (PrintWriter out = response.getWriter()) {
  3.             out.println("mensaje de respuesta");
  4.         }

tambien puedes enviar un objeto html si escribes el codigo html en la respuesta
ej:
Código Java:
Ver original
  1. response.setContentType("text/html;charset=UTF-8");
  2.         try (PrintWriter out = response.getWriter()) {
  3.             out.println("<option value="+objeto.atributo1+">"+objeto.atributo2+"</option>");//retornar un option para un select html
  4.         }

al retornar objetos html los eventos js debes ponerlos en $.post al recibirlos de otra manera no podras obtener los eventos con js.

iguamente si quieres recibir un JSON o un string y quieres crear dinamicamente un objeto directamente con js puedes hacerlo.

te dejo un ejemplo de el parser Json de java, es bastante facil de usar.

https://docs.oracle.com/javaee/7/api...erFactory.html