Foros del Web » Programación para mayores de 30 ;) » Java »

enviar datos a un servlet sin perderlos

Estas en el tema de enviar datos a un servlet sin perderlos en el foro de Java en Foros del Web. Hola a todos los del foro , estoy trabajando en un proyecto de universidad de servlets ( nada aun de jsp) uso eclispe y tomcat ...
  #1 (permalink)  
Antiguo 20/10/2012, 21:03
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
enviar datos a un servlet sin perderlos

Hola a todos los del foro , estoy trabajando en un proyecto de universidad de servlets ( nada aun de jsp) uso eclispe y tomcat , y necesito enviar datos de un formulario a u servlets como por ejemplo seleccionar un producto, pero quiero despues al volver atras poder elejir otro producto sin que desaparesca el primer porducto , es decir que se muestren los 2 despues al llamar el servlet. y asi sucesivamente, ojala me haya explicado y me puedan indicar mas o menos como lo puedo hacer , gracias
  #2 (permalink)  
Antiguo 21/10/2012, 04:30
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: enviar datos a un servlet sin perderlos

Hola:

Pues el servlet sólo tiene que devolver los datos que recibe además de los nuevos. Si quieres mantenerlos más tiempo, puedes guardarlos desde el servlet en una base de datos, en fichero o simplemente en atributos que definas de la misma clase servlet. Si los datos son específicos de cada usuario, puedes guardarlos en variables de sesión http://www.exampledepot.com/egs/java...let/State.html

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 22/10/2012, 18:06
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

Hola, gracias por responder ,solo uso variables , aun nada de base de datos, y no son sessiones, solo por ejemplo elijo en un combobox un pais, y que luego me muestre como un listado de todos los paises que ya e elejido anteriormente,.

hasta ahora solo cuando elijo pais solo me va mostrando de a uno y no se como solucionarlo

ojala me ayudes con algun ejemplo gracias desde ya
  #4 (permalink)  
Antiguo 22/10/2012, 22:42
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: enviar datos a un servlet sin perderlos

Crea un atributo en el servlet que sea la lista de paises elegido, añade uno a la lista cada vez que el usuario elija uno y devuelve todos en la respuesta.

Código java:
Ver original
  1. public class MiServlet extends HttpServlet {
  2.  
  3.     privete List<String> paises = new LinkedList<Srtring>();
  4.  
  5.     public void doPost (... request, ... response) {
  6.             String pais = request.recoge el pais elegido
  7.             paises.add(pais);
  8.             response. escribe el html con los paises elegidos en la lista.
  9.     }
  10. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 23/10/2012, 19:27
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

hola gracias por tu respuesta , estaba pensando en usar una especie de arraylist o arreglo lo implemente pero igual pasa lo mismo, deberia colocar un for each o un has.next asi como en java pero en servlet no se como usarlo lo implemente pero me nada ....use tu mismo codigo de ejemplo ....como puedo hacerlo?

gracias por tu ayuda
  #6 (permalink)  
Antiguo 24/10/2012, 02:16
 
Fecha de Ingreso: octubre-2012
Mensajes: 11
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

El ejemplo que te ha puesto chuidiang sería correcto. Te lo intento aclarar un poquito más:

Código:
public class MiServlet extends HttpServlet {
 
    privete List<String> paises = new LinkedList<Srtring>(); 
 
    public void doPost (... request, ... response) {
            String pais = request.getParameter("tucomboxdepaises");
            paises.add(pais);  //aquí estás añadiendo a la siguiente posición de la lista el país
            response.sendRedirect( "tupaginahtml.html" );
}
Los datos los estás pasando con el método GET o POST? Fíjate que en este ejemplo se está utilizando la función doPost lo que indica que se pretende recoger los datos con el método POST, si tú vas a usar el método GET tendrás que utilizar la función doGet del servlet
  #7 (permalink)  
Antiguo 24/10/2012, 08:52
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

hola gracias por la respuesta, estoy pasando los datos por doPost, el ejemplo estaria bien , pongo mi pagina html en el sendirect y efectivamente me manda a la pagina pero no muestra los datos del servlets, no se que estoy hacieno mal. si sigo el ejmplo tal cual....

debe faltar algo

gracias de todas formas por la ayuda
  #8 (permalink)  
Antiguo 24/10/2012, 14:45
 
Fecha de Ingreso: octubre-2012
Mensajes: 11
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

Perdona, se me había pasado que quieres mostrar lo que has seleccionado anteriormente cuando rediriges.

Tendrías que crear una variable de sesión a la que asignarías la variable "paises". Luego en el html recuperas esa variable de sesión y muestras lo que tiene. Si quieres hacerlo así tendrías que aprender cómo se crea y se recupera una variable de sesión (es muy fácil).

También se podría hacer creando un atributo en el servlet, que sería la lista de países:

Código:
request.setAttribute(paises, "paises");
Y luego, si en vez de html utilizases JSP, que creo que sería lo lógico si quieres hacer estas cosas, recuperas el atributo en tupagina.jsp:

Código:
List listapaises=(List)request.getAttribute("paises");
y ya podrías mostrar la lista de países seleccionados. (te lo he puesto más o menos para que lo entiendas, pero no recuerdo si para convertir el atributo en lista sería así exactamente)
  #9 (permalink)  
Antiguo 24/10/2012, 14:57
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

gracias por responder , tendira que investigar entonces sobre sesiones haber si resulta

solo puedo usar servlet asi me dijo el profe , pero el atributo lo puedo usar solo en jsp? no en html ?

bueno gracias por la ayuda segire codificando
  #10 (permalink)  
Antiguo 24/10/2012, 21:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: enviar datos a un servlet sin perderlos

Hola:

html es fijo, no puedes mostrar nada que no hayas escrito directamente en el html y dentro del html no hay nada de java.

En el servlet, en vez de un redirect hacia otro sitio, genera y devuelve directamente el código html que quieres mostrar (esa era la intención del primer ejemplo que te puse). Algo así

Código java:
Ver original
  1. public class MiServlet extends HttpServlet {
  2.  
  3.     privete List<String> paises = new LinkedList<Srtring>();
  4.  
  5.     public void doPost (... request, ... response) {
  6.             String pais = request.getParameter("tucomboxdepaises");
  7.             paises.add(pais);
  8.             response.setContentType("text/html");
  9.             PrintWriter writer = resp.getWriter();
  10.             writer.println("<html>");
  11.             writer.println("<head><title>El titulo</title></head>");
  12.             writer.println("<body>")
  13.             ... a base de writer.printl() y con paises, escribe el html que necesites
  14.             writer.flush();

Por supuesto, esta no es la mejor forma de hacerlo, es mejor usar un jsp y variables de sesión, pero si sólo puedes usar un servlet, es la única forma. Una mejora sería tener la parte fija de html (todo el <head>, inicio del <body>) en un fichero, hacer que el servlet lo lea y lo vaya enviando por el writer y luego añadir en el servlet la parte de los datos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #11 (permalink)  
Antiguo 25/10/2012, 17:46
 
Fecha de Ingreso: noviembre-2011
Mensajes: 44
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

ok gracias por tu ayuda ...lo codificare y si me surge algo lo publicare graciasss!!!
  #12 (permalink)  
Antiguo 26/10/2012, 02:49
 
Fecha de Ingreso: octubre-2012
Mensajes: 11
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: enviar datos a un servlet sin perderlos

Cita:
Iniciado por chuidiang Ver Mensaje

En el servlet, en vez de un redirect hacia otro sitio, genera y devuelve directamente el código html que quieres mostrar (esa era la intención del primer ejemplo que te puse)
Cierto, se me fue la olla con el sendRedirect, ya que al ser una página html no vas a poder mostrar la variable de sesión... me dejé llevar por la costumbre.

Yo creo que hay algo que falla en el enunciado del ejercicio o del proyecto, hacer esto en HTML no tiene sentido, es complicarse mucho la vida y sobre todo no es nada práctico. Estás seguro que sólo puedes utilizar HTML?

Si es así solo te queda hacer algo como lo que ha propuesto chuidiang

Etiquetas: jsp, servlet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:24.