Repository navigation
auto tema3
Responde cada pregunta antes de ver la respuesta.
¿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.
¿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.
¿Cómo se agrega la dependencia del conector MySQL en el proyecto Maven?
- A) Declarando la dependencia
mysql-connector-jen elpom.xml - B) Copiando el archivo
.jaren la carpeta/libdel proyecto - C) Instalando MySQL Workbench en el servidor
- D) Configurando el archivo
web.xmlcon 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.
¿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
SQLExceptioncon 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.
¿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.
¿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.
¿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).
- Introducción a VS Code
- Primeros pasos en VS Code
- Preparación del entorno Java Web
- ☁️ Cómo usar GitHub Codespace
Tema 1: Manejo básico de Java Web
- Introducción a Maven
- Ciclo de una petición web
- JSP con Scriptlets
- ¿Qué es un archivo JSP?
- Comparativa JSP Scriptlets vs ELJSTL
- ¿Qué es un Servlet?
- Mi primer formulario con Servlet
- HTTP Sessions
Tema 2: Modelo Vista Controlador (MVC)
- ¿Qué es el MVC?
-
Ejemplo básico MVC (MINI-CRUD)
- VISTA-index
- VISTA- Agregar Persona
- VISTA- Listar Personas
- CONTROLADOR- PersonaControladorServlet
- MODELO- DAO/VO
- CONTROLADOR- PersonaControladorServlet2
- VISTA- Editar Persona
- VISTA- Listar Persona
- Validación de unicidad de código
- Validación de campos obligatorios
- Comparativa persona-form.jsp
- Comparativa JSP puro vs MVC
Tema 3: Conexión a Base de Datos
Tema 4: Base de Datos con herencia
