Código Fuente busqueda.jsp
Debido a la longitud del JSP, éste se encuentra dividido en seis secciones seguido de una descripción para cada fragmento.
|
En la parte inicial de esta página se importan las librerías ("packages") que serán utilizadas en el JSP; las librerías ("packages")
java.sql
representan aquellas utilizadas para interactuar con una Base de Datos,java.util
contiene clases auxiliares para programas Java (comoHashtable
) y las librerías ("packages")com.osmosislatina.basesdedatos
contienen las Clases del "Pool" para Bases de Datos definido anteriormente.Posteriormente se extraen los diversos valores de entrada del objeto
request
los cuales son asignados a sus respectivas variables, así como también es definida la primer secuencia de búsqueda para la Base de Datos:"select * from CURSOJSP_ENCUESTA"
.
<TABLE align=center border=3> <TR> <TH>Nombre</TH> <TH>Ciudad</TH> <TH>Servicio</TH> <TH>Area </TH>
|
Esta sección del JSP contiene en su mayoría lenguaje HTML, sin embargo, nótese que existe una sección de código Java que representa una condicional. Esta condicional revisa el valor de la variable correo
y en base al resultado obtenido, se agrega una columna adicional a la tabla HTML o se omite.
|
La parte anterior del JSP termina de definir la secuencia de búsqueda para la Base de Datos, esto es, a la secuencia inicial (
sql_busca
) le son agregados parámetros adicionales que permiten una búsqueda refinada basada en los parámetros proporcionados por el usuario.Además son definidos tres arreglos del tipo
String
los cuales contienen nombres comunes, la generación de estos arreglos se debe a que los valores residentes en la Base de Datos se encuentran representados por dígitos o caracteres individuales, a través de estos arreglos podrán ser impresos resultados más descriptivos al usuario.
|
La sección anterior representa la parte central del JSP ya que en ella se realiza la búsqueda en la Base de datos y se generan los resultados en lenguaje HTML; dichos pasos son descritos a continuación:
Primeramente es generado un objeto del tipo
Connection
el cual representará la conexión hacia la Base de Datos.Se inicia un bloque try/catch/finally que incluirá el proceso de búsqueda en la Base de Datos.
Es invocado el método
extraerConexion
del Objetopool
, dicha función representa una conexión de "Pool" la cual es asignada a la referenciaconn
definida anteriormente. (NOTA: La creación del Objetopool
es llevado acabo al inicializarse el JSP mediante el métodojspInit
, esta función se describe posteriormente).Es generado un Objeto del tipo
Statement
, a través del cual se define la secuencia de búsqueda para la Base de Datos; dicho Objeto es asociado con la conexión definida anteriormente.Se genera un Objeto del tipo
ResultSet
que representará los resultados de nuestra búsqueda; el inicio de la búsqueda es iniciado por medio del métodoexecuteQuery
perteneciente a la ClaseStatement
, nótese que dicho método toma como parámetro inicialsql_busca
que representa nuestra secuencia de búsqueda SQL.Una vez obtenidos los resultados de la búsqueda se inicia un ciclo
while
, su terminación depende del resultado del métodonext()
perteneciente a la ClaseResultSet
, este método retornará un resultado falso una vez que se haya terminado el juego de datos de búsqueda.Mientras el ciclo anterior sea verdadero se inicia la extracción de datos en
ResultSet
(renglón por renglón) asociándose cada valor con sus respectivas variables.Una vez definidas estas variables se genera un renglón en lenguaje HTML donde son colocados los valores de cada iteración a través de los elementos
<%= %>
.Ya impresos todos los resultados de la búsqueda (terminado el ciclo
while
), se invoca el métodoclose
de la ClaseStatement
para indicar el cierre de la búsqueda.Se define la sección catch del bloque, la cual será llamada en caso de ocurrir un error en la búsqueda.
Dentro de finally se manda llamar el método
liberarConexion
del Objetopool
. Al definir esta secuencia dentro de finally se garantiza que independientemente del resultado de la búsqueda (exitoso o erróneo) sea liberada cualquier tipo de conexión.(NOTA: El métodoliberarConexion
forma parte del "Pool" de conexión hacia la Base de Datos).
</TABLE> </UL> <HR> <TABLE width="100%"> <TR><TD align="left"></td> <TD align="right"> ©2000-2003 Osmosis Latina </TD> </TR></TABLE> </BODY> </HTML>
|
Esta última sección del JSP representa el cierre de contenido en HTML así como el método de inicialización jspInit
. Mediante los elementos <!% %>
utilizados para definir métodos/clases es declarado el método jspInit()
, dicho método es invocado automáticamente al ser procesado el JSP , esto lo hace idóneo para extraer una conexión de un "Pool" para Base de Datos.
Primeramente se define la referencia
pool
para que esta sea accesible a todos los elementos del JSP.Es definido un Bloque try/catch donde se revisa la existencia de la Clase
com.mysql.jdbc.Driver
, esta Clase es la que permite la conexión hacia una Base de Datos MySql, si esta Clase no se encuentra presente en el sistema (CLASSPATH
) es generado un error.Posteriormente se genera una instancia de la Clase principal del "Pool", la cual toma como parámetros la información necesaria para conectarse a la Base de Datos MySql.