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

correcto manejo de servlets

Estas en el tema de correcto manejo de servlets en el foro de Java en Foros del Web. Hola amigos! Les planteo lo que estoy desarrollando y luego les hago algunas preguntas sobre el manejo de servlets: Tengo un servlet donde puedo ver ...
  #1 (permalink)  
Antiguo 03/05/2009, 08:05
adg
 
Fecha de Ingreso: enero-2009
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 1
correcto manejo de servlets

Hola amigos! Les planteo lo que estoy desarrollando y luego les hago algunas preguntas sobre el manejo de servlets:

Tengo un servlet donde puedo ver alumnos: ver todos, o ver alumnos por curso..luego, tengo un boton de agregar alumno .. luego, despues de mostrar los alumnos para cada uno me va a mostrar un boton que diga eliminar, y otro que diga editar...

entonces cuando se seleccione nuevo o editar voy a enviar los datos por post a otro servlet que se encargue de recibirlos y mostrarlos en pantalla para poder editarlo o crear uno nuevo... se entiende?

a todo esto mi pregunta es: para eliminar quien tendría que recibir los datos? sería el mismo servlet que muestra por pantalla los controles para editar o eliminar??

por favor les pido solamente que me ayuden a entender la logica de esto...como me conviene armar esto...que servlet sería el encargado de recibir los datos cuando elimine, edite o actualize?? conviene hacer un servlet para cada accion??

gracias de antemano....
  #2 (permalink)  
Antiguo 04/05/2009, 12:17
adg
 
Fecha de Ingreso: enero-2009
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: correcto manejo de servlets

hay alguien??
  #3 (permalink)  
Antiguo 06/05/2009, 10:36
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: correcto manejo de servlets

Dónde tendr{as el botón que diga nuevo? Aquí sólo explicas que cuando cargue a un alumno se verá editar o eliminar. si vas a eliminar a un ealumno sería conveniente que crearas un servlet a parte para ese tipo de acciones.
  #4 (permalink)  
Antiguo 06/05/2009, 22:08
adg
 
Fecha de Ingreso: enero-2009
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: correcto manejo de servlets

el boton 'nuevo' esta en la misma pagina que muestra el listado de alumnos en donde por cada uno tengo el boton 'editar' y 'eliminar'...

Cita:
si vas a eliminar a un ealumno sería conveniente que crearas un servlet a parte para ese tipo de acciones
si dices esto, entonces podria armar los servlets de la siguiente manera:

servlets para las vistas: 'alumnos.java', 'agregarEditarAlu.java' (estos son las vistas para listar los alumnos, y mostrar los controles para agregar o editar)

servlets para recibir las acciones: 'alumnosAcciones.java' (ejecutaría las acciones correspondientes, recibiendo los datos de las vistas)

esta forma esta bien?? o podría hacerse de otra forma?? que me recomiendas??
  #5 (permalink)  
Antiguo 07/05/2009, 02:00
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: correcto manejo de servlets

Wenas

No deberia ser un servlet el que se encargase de eliminar ni insertar. Un servlet o una jsp (lo mismo da) deberia recibir los datos y presentarlos en panatalla. Le puedes pasar un atributo "modo" para cada accion A-lta, M-odificacion, E-liminar.

Este servlet 'conocera' a una clase alumnoBean, con metodos publicos del tipo consultar(alumno), insertar(alumno), modificar(alumno), eliminar(alumno) que conectara con la base de datos y ejecutara la accion de turno.

NINGUN SERVLET DEBE CONECTARSE A LA BASE DE DATOS. JAMAS.

Creo que es identico a lo que estuvimos hablando aquella vez adg. Sabes hacerlo mas que de sobra.

Saludos.
  #6 (permalink)  
Antiguo 07/05/2009, 09:31
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: correcto manejo de servlets

Tienes razón elAntonie. adg como dicen arriba, el servlet que te comentaba recibiría los datos de tu JSP en la que recibas los datos para eliminar, y los enviaría a una de estas clases javaBeans para que haga lo que tenga que hacer con la base de datos. Sería entonces que crearás tus JSP's en donde recibas parámetros, después enviarlos a servlets y éstos a su vez a tus clases de acceso a datos, o sea, podrás dividir tus clases y JSP en los de entrada-salida de datos, las de recepción de datos, los de encapsulación de datos y de acceso a datos. Podrías ser así.
  #7 (permalink)  
Antiguo 07/05/2009, 15:17
adg
 
Fecha de Ingreso: enero-2009
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: correcto manejo de servlets

Perfecto, gracias a los 2.. este tipo de comentario es lo que necesito…con esto pretendo ir encontrando la forma correcta.
Elantonie lo que me habías explicado aquella vez me ha quedado bien claro...

Les voy a mostrar las partes mas importantes del código de las clases:

Cita:
//servlet “mostrarAlumnos”: muestra la lista de alumnos
ArrayList lista = alumnosBD.listaAlumnos();
for (int i = 0; i < lista.size(); i++)
{
alumnos alu = (alumnos) lista.get(i);
out.println("ID:" + alu.getIdAlumno());
out.println("nombre:" + alu.getNombre());
out.println("apellido:" + alu.getApellido());
out.println("<br /><a href=AMalumnos?accion=editar&id=" + alu.getIdAlumno() + ">editar</a>");
out.println("<br /><a href=accionesAlumnos?accion=eliminar&id=" + alu.getIdAlumno() + ">eliminar</a>");
}
luego cuando se presiona en el enlace “editar”, por get se llama al servlet AMalumnos
que genera la pagina para las Altas o Modificiones de alumnos
Cita:
//servlet AMalumnos
//DENTRO DEL METODO “doget”

alumnos alu = null;
String accion = request.getParameter("accion");
int id;
out.println("<form action='accionesAlumnos' method='post'>");
out.println("Nombre: <br />");

if (accion.equals("editar"))
{
out.println("<input name='accion' type='hidden' value='editar'>");
id = Integer.parseInt(request.getParameter("id"));
alu = bd.obtenerAlumno(id);
out.println("<input name='txtIdAlumno' type='hidden' value=" + alu.getIdAlumno() + ">");
out.println("<input name='txtNombre' type='text' value='" + alu.getNombre() + "'><br />");
out.println("Apellido: <br />");
out.println("<input name='txtApellido' type='text' value='" + alu.getApellido() + "'>");
}
else
{
if (accion.equals("agregar"))
{
out.println("<input name='accion' type='hidden' value='agregar'>");
out.println("<input name='txtNombre' type='text' value=''><br />");
out.println("Apellido: <br />");
out.println("<input name='txtApellido' type='text' value=''");
}

}
out.println("<br /><input name='btnGuardar' type='submit' value='Guardar' />");
}

}
en el código de arriba del servlet “AMalumnos” cuando se presiona el botón “guardar” se envían los datos por post al servlet “accionesAlumnos” que recibe los datos de AMalumnos…luego llama a la clase alumnosBD, para ejecutar en la BD la accion que corresponda
Cita:
//servlet “accionesAlumnos”
//DENTRO DEL METODO “donet”
String accion = request.getParameter("accion");
int id;
if (accion.equals("eliminar"))
{
id = Integer.parseInt(request.getParameter("id"));
alumnosBD.eliminarAlumno(id);
}

//DENTRO DEL METODO “dopost”
String accion = request.getParameter("accion");
alumnos alu;
if(accion.equals("agregar"))
{
alu = new alumnos(request.getParameter("txtApellido"), request.getParameter("txtNombre"));
alumnosBD.guardarAlumno(alu);
}
else
{
if(accion.equals("editar"))
{
int id = Integer.parseInt(request.getParameter("txtIdAlumno "));
alu = new alumnos(id, request.getParameter("txtNombre"), request.getParameter("txtApellido"));
alumnosBD.editarAlumno(alu);
}
}
Esta bien desarrollado o hay algo que puedo corregir de esto??…
  #8 (permalink)  
Antiguo 07/05/2009, 23:34
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: correcto manejo de servlets

Pues según lo que leo ya has implementado el manejo de capas en tu aplicación, esto está bien. Espero que tengas claro que esto se hace por seguridad y no sólo por tener bien organizado todo, que además es un plus, pues a la hora de modififcar una clase o un módulo ya no te enfrentas a miles de líneas de código entre conexión a base de datos y recepción de parámetros, eso es algo que he ido aprendiendo en lo que llevo en la API JDBC. Lo que creo que debes de evitar es poner inputs en tu servlet. Lo que debes hacer es crear una JSP con tu formulario y ahí en el value del input ponerle value = "out.print(request.getParameter("name_de_mi_input" );". Bueno así es como yo me he manejado. Así te evitas tantos out.println en tu servlet pues en la JSP las etiquetas como <html>, <head>, <title> y todo eso es html puro sin ponerantes out.print("<head>"); como lo manejas en los servlets, se supone que para eso se crearon las JSP: para evitar tanto código repetitivo en los servlets, entre muchas otras cosas. ¨Primero prueba con servlets y poco a poco introdúcete a JSP si es que aún no lo manejas, prácticamente es lo mismo, sólo que en lugar de que te lo compile el javac lo hace el servidor, en mi caso, tomcat. No pretendo parecer experto, realmente llevo poco en esto pero a mí me hubiera gustado contar con esta información que ahora comprendo

Saludos

Última edición por Gguer; 08/05/2009 a las 03:48
  #9 (permalink)  
Antiguo 08/05/2009, 03:26
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: correcto manejo de servlets

Ves como sabes hacerlo??

100% de acuerdo con kipersonic0

Solo una apreciacion. En jsp

out.print(request.getParameter("name_de_mi_input" );

Es identico a:

<%=request.getParameter("name_de_mi_input" )%>

Saludos.
  #10 (permalink)  
Antiguo 08/05/2009, 03:45
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: correcto manejo de servlets

Jeje a eso me refería, me faltaron los <% y %> :D
Eso es para el JSP ok, adg
  #11 (permalink)  
Antiguo 08/05/2009, 09:04
adg
 
Fecha de Ingreso: enero-2009
Mensajes: 60
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: correcto manejo de servlets

Bueno gracias a los dos por sus aportes...

kipersonic con lo que has mencionado hacerca de que es mas cómodo utilizar JSP para las vistas, te cuento que no lo manejo aún, pero me voy a ir introduciendo de a poco en eso...

Realmente sus aportes me han sido de gran utilidad!

saludos.
  #12 (permalink)  
Antiguo 08/05/2009, 09:58
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: correcto manejo de servlets

Qué bueno! Cuando sepas bien qué onda con los servlets ya no se te dificultarán las JSP y descubrirás la comodidad dela que te hablo. Bueno suerte con tu proyecto.

Saludos
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 15:42.