Fco. Javier García Castellano


Ejemplos de Servlets
 


Introducción

En esta sección del tutorial se presentarán unos cuantos ejemplos de servlets, más o menos, avanzados tal y como se hizo en el tutorial de Oracle Developer con el objetivo de que puedan servir como punto de partida para la realización de las prácticas.

También se puede acceder a al código fuente de todos los ejemplos usados en el tutorial

1 Informe Asignaturas

En este servlet implementamos el informe Asignaturas (documentación de la clase Asignaturas.java), el cual muestra una página HTML con las distintas asignaturas que hay en la tabla Asignatura de la base de datos. La consulta SQL utilizada ha sido:

	SELECT nombre,tipo,cuatrimestre,
	       creditosPracticos, creditosTeoricos 
	FROM asignatura;

En este ejemplo se tienen los siguientes métodos:

  • cabeceraHTML: Este método escribe la cabecera HTML de la página web.
  • doGet: Aquí se implementa el método doGet que se encargará de conectarse a la base de datos extraer los datos y mostrar el informe
  • doPost: El método doPost, simplemente hace una rellamada a doGet.
  • init: Método init por defecto
  • pieHTML: Este método escribe el pie de la página.
  • tablaAsignaturas: Escribe una tabla HTML a partir del conjunto de resultados de una consulta
  • tituloHTML: Aquí se escribe el titulo de la página HTML aunque también sirve para mostrar un posible error de la BD.

El aspecto final en ejecución del servlet Asignaturas.java será el siguiente:


2 Informe Matrícula

En este servlet implementamos el informe Matriculas (documentación de la clase Matriculas.java), el cual muestra una página HTML donde, para cada alumno, nos muestre las matrículas que ha realizado y para cada matrícula los pagos de la misma. La consulta SQL utilizada ha sido:
  SELECT  matricula.idmatricula, tipo, numeroplazos, fechaexpedicion, curso,
          cantidad, abonado, fechapago,
          persona.nombre, persona.apellido1, persona.apellido2
  FROM pago, matricula, persona
  WHERE (pago.idmatricula=matricula.idmatricula) and
        (matricula.idalumno=persona.pid);

En este ejemplo se tienen los mismo métodos que en el anterior informe, pero tengamos en cuenta que la consulta realizada en el método doGet no es la misma, es la mostrada justo en el párrafo anterior. Y que en lugar de tablaAsignaturas se tiene un método llamado tablaMatriculas.

El método tablaMatriculas va mostrando los distintos elementos de la consulta y comprueba los casos en los que hay atributos repetidos: mismo alumno para diferentes matrículas y misma matrícula para diferentes pagos.

El aspecto final en ejecución del servlet Matriculas.java será el siguiente:


3 Formulario Persona

En este servlet implementamos el formulario Persona (documentación de la clase Persona.java), el cual crea un formulario HTML donde nos mostrará las personas que hay dentro de nuestra base de datos, habiendo un botón de anterior y otro de siguiente para poder ir visualizando los distintos registros de la tabla persona. También nos permite modificar y borrar el registro visualizado, así como añadir uno nuevo.

En este ejemplo se tienen los mismo métodos que en el informe Asignaturas, pero hay nuevos métodos y mostraremos los métodos que presentan diferencias sustanciales:

  • muestraFormulario: Este método escribe una tabla HTML con un formulario que muestra la tupla en memoria, para consultar/crear/introducir/modificar los datos de la tabla Persona
  • barraHerramientas: En este método se añade a la página la barra de herramientas, es decir, el botón de Anterior, Siguiente, Modificar, Borrar y Nuevo.
  • barraHerramientasNuevo En este método se añade a la página la barra de herramientas cuando se va a añadir un nuevo registro, sólo hay dos acciones Crear y Cancelar.
  • cogeParametros: En este método se recogen los parámetro que recibe el servlet desde el formulario HTML. Además de los datos de la Persona correspondientes de la base de datos hay dos más de interés: accion, que nos indica la acción a realizar sobre los datos (por ejemplo, modificar o borrar) y num, que nos dice el número de registro actual con el que estamos trabajando.
  • cogeRegistro: En este método se obtiene de la base de datos mediante una consulta el registro que se quiere mostrar en el formulario HTML
  • doGet: Este método implementa el método doGet que se encargará de conectarse a la base de datos, mostrar el formulario e interpretar la acción a ejecutar. Si es sólo mostrar (botones Anterior y Siguiente) mostrará el registro correspondiente en el formulario. Si es crear uno nuevo, mostrará el formulario vacío con un nuevo PID (que no existe en la base de datos). Si la acción es Añadir, se guardará en la base de datos y se visualizará el registro que se le ha pasado como parámetro al servlet. Si es borrar o modificar, ejecutará la opción pertinente sobre el registro actual.

El aspecto final en ejecución del servlet Persona.java será el siguiente:


4 Formulario Persona-Alumno

En este servlet implementamos el formulario Persona-Alumno (documentación de la clase Alumno.java), el cual crea un formulario HTML donde nos mostrará los alumnos que hay dentro de nuestra base de datos, habiendo un botón de anterior y otro de siguiente para poder ir visualizando los distintos registros de la tabla persona. También nos permite modificar y borrar el registro visualizado, así como añadir uno nuevo.

En este servlet se muestran tanto los datos de la tabla Persona como los datos de la tabla Alumno. En su implementación es casi igual al formulario Persona, pero cambian las operaciones de la base de datos si se hace una consulta a Persona se tiene que hacer también a Alumno, si se borra se tienen que borrar en ambas tablas. También tendremos que crear un formulario que visualice además los datos de la tabla Persona y tener en cuenta que son nuevos parámetros del servlet.

El aspecto final en ejecución del servlet Alumno.java será el siguiente: