auto tema2 - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki
Responde cada pregunta antes de ver la respuesta.
¿Qué es un VO (Value Object) en el contexto del patrón MVC?
- A) Un Servlet que valida los datos del formulario
- B) Un método del DAO que obtiene un registro por código
- C) Un archivo JSP que muestra los datos en una tabla
- D) Una clase Java que representa una entidad de datos con sus atributos y getters/setters
Ver respuesta
✅ D) Una clase Java que representa una entidad de datos con sus atributos y getters/setters
💡 PersonaVO tiene atributos como codigo y nombre, con sus getters y setters. Es el "molde" que representa una fila de la tabla personas. VO es parte del Modelo en MVC.
En el Mini-CRUD, ¿cómo pasa el Servlet la lista de personas al JSP?
- A) Escribe la lista directamente en el HTML de respuesta
- B) Envía la lista como parámetro en la URL
- C) Guarda la lista en la base de datos y el JSP la lee directamente
- D) Guarda la lista con
request.setAttribute("personas", lista)y haceforwardal JSP
Ver respuesta
✅ D) Guarda la lista con request.setAttribute("personas", lista) y hace forward al JSP
💡 setAttribute pone la lista "disponible" en el request. Con el forward, el JSP puede leerla con ${personas} (EL) o con request.getAttribute("personas") (scriptlet).
¿Para qué sirve JSTL <c:forEach>?
- A) Para crear una nueva conexión a la base de datos en cada iteración
- B) Para crear un bucle en el JSP que itera sobre una colección sin escribir scriptlets Java
- C) Para formatear fechas en el JSP
- D) Para importar clases Java en el JSP
Ver respuesta
✅ B) Para crear un bucle en el JSP que itera sobre una colección sin escribir scriptlets Java
💡 <c:forEach var="p" items="${personas}"> es equivalente al for (PersonaVO p : listaPersonas) en Java, pero escrito en forma de etiqueta HTML, mucho más limpia en la vista.
¿Por qué es importante la unicidad del código en el Mini-CRUD de personas?
- A) Porque el código es la clave primaria que identifica unívocamente a cada persona en la tabla
- B) Porque MySQL requiere que todos los campos sean únicos
- C) Por razones estéticas de diseño de la interfaz
- D) Porque los Servlets solo pueden manejar IDs únicos
Ver respuesta
✅ A) Porque el código es la clave primaria que identifica unívocamente a cada persona en la tabla
💡 La clave primaria (PK) garantiza que no haya dos personas con el mismo código. Intentar insertar un código duplicado genera un error de BD. Por eso hay que validar la unicidad antes o capturar la excepción.
¿Cómo se aplica el patrón PRG en el flujo de agregar una persona?
- A) El
doPostinserta la persona en la BD y luego hacesendRedirectal GET del listado - B) El JSP inserta los datos directamente en la BD y redirige al Servlet
- C) El Servlet lee los datos del formulario y hace
forwarda la lista JSP - D) El GET del Servlet hace el INSERT y el POST muestra la lista
Ver respuesta
✅ A) El doPost inserta la persona en la BD y luego hace sendRedirect al GET del listado
💡 PRG en el CRUD: POST recibe el formulario → DAO inserta en BD → sendRedirect al GET de listar → doGet obtiene la lista → forward a la vista. Evita la doble inserción al recargar.
En el JSP de lista de personas, ¿qué hace la expresión ${p.nombre}?
- A) Busca en la BD la persona con nombre igual al valor de
p - B) Imprime literalmente el texto
p.nombreen la pantalla - C) Llama al método
getNombre()del objetopy muestra el resultado en el HTML - D) Crea una variable nueva llamada
nombreen el Servlet
Ver respuesta
✅ C) Llama al método getNombre() del objeto p y muestra el resultado en el HTML
💡 Expression Language (EL) accede a las propiedades de los objetos llamando automáticamente a los getters. ${p.nombre} es equivalente a <%= p.getNombre() %> pero más limpio.
¿Cuál es la diferencia entre el formulario simple y el formulario robusto (persona-form.jsp) en el Mini-CRUD?
- A) El formulario robusto usa CSS; el simple no tiene estilos
- B) El formulario robusto se conecta directamente a la BD
- C) El formulario robusto puede usarse tanto para agregar como para editar, precargando datos cuando corresponde
- D) No hay diferencia funcional, solo estética
Ver respuesta
✅ C) El formulario robusto puede usarse tanto para agregar como para editar, precargando datos cuando corresponde
💡 Un formulario robusto verifica si hay un objeto persona en el request: si lo hay, precarga los campos (modo editar); si no lo hay, los deja vacíos (modo agregar). Un mismo JSP para dos funciones.
¿Qué es JSTL y por qué se prefiere sobre los scriptlets en los JSP?
- A) JSTL es una base de datos Java; se prefiere porque es más rápida
- B) JSTL es una librería de etiquetas HTML estándar para JSP; se prefiere porque mantiene el JSP más limpio, sin mezclar código Java con HTML
- C) JSTL es el compilador de JSP; reemplaza a Tomcat en proyectos pequeños
- D) JSTL es un framework CSS para estilizar páginas JSP
Ver respuesta
✅ B) JSTL es una librería de etiquetas HTML estándar para JSP; se prefiere porque mantiene el JSP más limpio, sin mezclar código Java con HTML
💡 JSTL (JavaServer Pages Standard Tag Library) ofrece etiquetas como <c:forEach>, <c:if>, <c:out> que reemplazan los scriptlets <% %>. Resultado: vistas más legibles y mantenibles.
