Skip to content

auto tema3

Elizabeth Izquierdo edited this page Oct 17, 2026 · 7 revisions

🧠 Autoevaluación — Arquitectura completa BD + Web

Responde cada pregunta antes de ver la respuesta.


Pregunta 1

¿Qué componentes forman la arquitectura completa de un CRUD con base de datos en Java Web?

  • A) Solo el Servlet y la base de datos
  • B) Solo el JSP y MySQL
  • C) Solo Maven y Tomcat
  • D) Conexion + PersonaDAO + PersonaControladorServlet + JSPs integrados
Ver respuesta

✅ D) Conexion + PersonaDAO + PersonaControladorServlet + JSPs integrados

💡 La arquitectura completa integra: Conexion (gestiona la conexión JDBC), PersonaDAO (operaciones CRUD en BD), PersonaControladorServlet (controlador MVC) y los JSPs (vistas). Todas las capas trabajan juntas.


Pregunta 2

¿Cuál es el flujo completo de una petición para listar personas desde el navegador hasta la pantalla?

  • A) Navegador → JSP → MySQL → Servlet → Navegador
  • B) Navegador → GET /persona → Servlet.doGet() → PersonaDAO.getLista() → Conexion.obtener() → MySQL → lista → request.setAttribute → forward → JSP genera HTML → Navegador
  • C) Navegador → MySQL → DAO → JSP → Navegador
  • D) Navegador → Conexion → Servlet → JSP → MySQL → Navegador
Ver respuesta

✅ B) Navegador → GET /persona → Servlet.doGet() → PersonaDAO.getLista() → Conexion.obtener() → MySQL → lista → request.setAttribute → forward → JSP genera HTML → Navegador

💡 Este es el flujo completo. Cada capa tiene su rol: el Servlet coordina, el DAO accede a la BD via Conexion, los datos vuelven al Servlet, que los pone en el request y hace forward al JSP para la presentación.


Pregunta 3

¿Cómo se agrega la dependencia del conector MySQL en el proyecto Maven?

  • A) Declarando la dependencia mysql-connector-j en el pom.xml
  • B) Copiando el archivo .jar en la carpeta /lib del proyecto
  • C) Instalando MySQL Workbench en el servidor
  • D) Configurando el archivo web.xml con el driver JDBC
Ver respuesta

✅ A) Declarando la dependencia mysql-connector-j en el pom.xml

💡 Maven descarga automáticamente el conector al compilar. Sin esta dependencia, el driver JDBC de MySQL no está disponible y se lanzará ClassNotFoundException: com.mysql.cj.jdbc.Driver al intentar conectarse.


Pregunta 4

¿Qué pasa si MySQL no está corriendo cuando la aplicación intenta conectarse?

  • A) La aplicación espera indefinidamente hasta que MySQL se inicie
  • B) Tomcat se reinicia automáticamente
  • C) Se lanza una SQLException con un mensaje de "Communications link failure" o similar
  • D) El Servlet devuelve un resultado vacío sin error
Ver respuesta

✅ C) Se lanza una SQLException con un mensaje de "Communications link failure" o similar

💡 Es uno de los errores más comunes. La solución es verificar que MySQL esté corriendo antes de intentar la conexión. El stack trace en el log de Tomcat mostrará el SQLException con la causa.


Pregunta 5

¿Cuál es la responsabilidad de la clase Conexion en la arquitectura completa?

  • A) Gestionar las sesiones HTTP de los usuarios
  • B) Proveer una nueva conexión JDBC a la BD leyendo las credenciales desde db.properties
  • C) Traducir los objetos Java a SQL automáticamente
  • D) Compilar el proyecto y generar el archivo .war
Ver respuesta

✅ B) Proveer una nueva conexión JDBC a la BD leyendo las credenciales desde db.properties

💡 La clase Conexion tiene un único método: obtener(), que lee la URL, usuario y contraseña de db.properties y devuelve un objeto Connection listo para usar en el DAO.


Pregunta 6

¿Por qué el Servlet (PersonaControladorServlet) no necesita cambios cuando se migra de almacenamiento en memoria a base de datos?

  • A) Porque el Servlet siempre ignora dónde están los datos
  • B) Porque JSP maneja la migración de datos transparentemente
  • C) Porque Maven actualiza el Servlet automáticamente
  • D) Porque la interfaz del DAO (sus métodos públicos) se mantiene igual; el Servlet solo llama a dao.getLista(), dao.agregar(), etc.
Ver respuesta

✅ D) Porque la interfaz del DAO (sus métodos públicos) se mantiene igual; el Servlet solo llama a dao.getLista(), dao.agregar(), etc.

💡 Este es uno de los grandes beneficios de MVC: el Servlet no sabe si los datos vienen de un ArrayList en memoria o de MySQL. Solo llama a los métodos del DAO, que son la misma "interfaz" independientemente de la implementación.


Pregunta 7

¿Qué error ocurre si el nombre de la base de datos en la URL JDBC es incorrecto?

  • A) Se lanza una SQLException: Unknown database 'nombre_incorrecto'
  • B) El Servlet compila correctamente pero no arranca Tomcat
  • C) El DAO devuelve una lista vacía sin error
  • D) Maven descarga una versión diferente del conector
Ver respuesta

✅ A) Se lanza una SQLException: Unknown database 'nombre_incorrecto'

💡 MySQL lanza este error cuando la BD especificada en la URL no existe. La solución es verificar que el nombre de la BD en db.properties coincida exactamente con el nombre creado en MySQL (incluyendo mayúsculas).


🏠 Volver al índice


← Volver a Resumen Tema 3 · 🏠 Inicio

Clone this wiki locally