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

JSP+Servlet+HTML

Estas en el tema de JSP+Servlet+HTML en el foro de Java en Foros del Web. Hola a todos. Vereis , me han puesto un trabajo de clase en el que supuestamente debemos crear un servlet , pero lo curioso es ...
  #1 (permalink)  
Antiguo 29/09/2012, 12:27
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
JSP+Servlet+HTML

Hola a todos.

Vereis , me han puesto un trabajo de clase en el que supuestamente debemos crear un servlet , pero lo curioso es que ni nos han dado temario sobre servlets , ni ejemplos ni nada , una vez mas nos dejan buscandonos la vida.

El trabajo:

Crear una pagina html con un iframe y un formulario con 3 campos de texto : nombre_articulo,precio,linea y 2 botones de tipo submit : añadir , borrar.

Crear una pagina jsp que es la que se mostrara en el iframe y debe listar los articulos que se iran añadiendo atravez del formulario.

Servlet que recibira los datos del formulario por metodo post en el getPost.

Funcionamiento : Cuando añadimos un articulo y le damos al boton añadir , se mostrara una tabla con 3 columnas : Num.Linea , Nom. Articulo , Precio , en el iframe. Tambien a pie de la tabla se mostrara el Total , que sera la suma de todos los precios de los articulos añadidos (tipo ticket ) , cuando ponemos un numero de linea en el TextBox "linea" y le damos al boton borrar , la linea que corresponde a ese numero se borrara.

Esta es la explicacion que nos dan.

Rebanandome los sesos y buscando por internet hasta el momento he conseguido llegar a una teoria.

No tengo problema con el formulario , y con el envio de los datos del formulario al servlet por metodo post , tampoco tengo problema en el iframe para que muestre la pagina jsp. Supongo que los datos que ire enviando por medio del formulario al servlet , los deberia almacenar en un array de 2 columnas para luego poder tener la numeracion y poder borrar la linea que quiera.

Mi problema es que no se como almacenarlos en un array , y como luego enviarselos a la pagina JSP y que esta los muestre en el iframe cada vez que se añada una nueva linea.

Agradeceria cualquier ayuda o aclaracion , para que pueda tomar el rumbo correcto.

Gracias
  #2 (permalink)  
Antiguo 29/09/2012, 13:32
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: JSP+Servlet+HTML

Hola:

En cualquier aplicación web con jsp y servlets tienes posibilidad de guardar variables de tipo application, de tipo session o de tipo page (se conoce como application scope, session scope y page scope).

Las de page scope son las variables normales que usas en tu jsp, son variables que sólo se ven desde el jsp y no guardan su valor de una llamada al jsp a otra.

las de session son variables que guardan su valor mientras un usuario concreto esté navegando por las páginas jsp de tu aplicación. Es un sitio típico donde guardar las cosas que compras en un carrito de la compra mientras el usuario navega de una página a otra para elegir los productos, o en tu caso, podrías guardar tu array. Eso sí, cada usuario tendría su propio array y vería elementos ditintos.

Las de application scope permanecen mientras tu servidor web está arrancado y son compartidas por todos los usuarios. Ahí podrías guardar tu array si quieres que todos los usuarios vean los mismos datos.

Desde un jsp puedes acceder a session sin más que nombrarlo, está definido por defecto. Ahí puedes meter lo que quieras y se mantendrá.

<% session.setAttribute("un nombre que quieras", tuArray);
tuArray = session.getAttribute("un nombre que quieras") %>

Idem con application, compartido por todos los usuarios

<% application.setAttribute("un nombre que quieras", tuArray);
tuArray = application.getAttribute("un nombre que quieras"); %>

El nombre que pasas como parametro sirve para poder meter varias cosas y luego distinguir unas de otras por su nombre.

Desde el Servlet, a partir del HttpRequest, puedes obtener la Session con httprequest.getSession() y al application se le llama ServletContext en el servlet, así que puedes obtnerlo con httprequest.getServletContext(). Así que la idea sería que tu servlet guardara el array en el httpRequest.getServletContext().addAttribute(...) y así estará diponible en el jsp.

Bueno, esta es la idea básica, suongo que tendrás que googlear un poco más.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 29/09/2012, 13:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: JSP+Servlet+HTML

Muchas gracias , ya estoy empezando a formarme una idea en la cabeza sobre como almacenar los valores y luego pasarselos al JSP.

Solo un par de preguntas, cuando haga el submit desde el html , mandando los valores al servlet , es ahi donde los tengo que almacenar en la sesion supongo verdad ? Y luego en la propia pagina jsp lanzar el request sobre esa sesion no ? La question es , como hago que basicamente el usuario sin tener que actualizar de forma manual el iframe del html , pueda visualizar las nuevas lineas del ticket que se han ido añadiendo en la sesion ?

Gracias
  #4 (permalink)  
Antiguo 29/09/2012, 16:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: JSP+Servlet+HTML

En el servlet, después de guardar los datos en la sesión (o en la application), tienes que redirigir al navegador nuevamente a la página jsp. En el servlet, después de hacer todo lo que tengas que hacer con tus datos, echa un ojo al método redirect() de este servlet de ejemplo http://www.javapractices.com/topic/T...tion.do?Id=181

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, jsp
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 03:19.