Sunteți pe pagina 1din 28

JSP y Bases de Datos *

* Tomado del curso de Francisco Moreno


03/10/201224/11/06 Lab. Bases de Datos 1

JSP: Java Server Pages es un lenguaje que permite mezclar cdigo Java dentro de lenguaje HTML Nos centraremos en el uso de JSP orientado a la interaccin con Bases de Datos, como caso particular con Oracle, pero el mtodo de trabajo con otros SGBDs es similar Permite la generacin de pginas HTML dinmicas (se construyen en tiempo de ejecucin)

03/10/201224/11/06

Lab. Bases de Datos

Existen otras alternativas a JSP: - PHP Hypertext Preprocessor (Personal Home Page) Independiente - ASP (Active Server Pages) Microsoft - PSP (PL/SQL Server Pages) Oracle Para interactuar con el navegador se requiere un software especial (Servidor Web) el cual puede ser el Tomcat, Jrun, IIS (de Microsoft) etc.

03/10/201224/11/06

Lab. Bases de Datos

Un archivo JSP puede ser creado con cualquier editor de texto La extensin es JSP Se comenzar con un ejemplo que muestra la sintaxis bsica: consiste fundamentalmente en como incorporar cdigo Java stand alone en una pgina JSP (luego se pasar a interactuar con la BD)

03/10/201224/11/06

Lab. Bases de Datos

<html> <head> <title>Pgina Ensayo JSP</title> </head> <body> <!-- Comentario HTML normal --> <%-- Esto es un comentario en JSP--%> Forma de importar <%@ page import="java.math.*" %> libreras en JSP <%-- Declaracion de variables en JSP: --%> <%! int i = 0, j = 10; double k = 3.14; %> <%! java.util.Date fecha = new java.util.Date(); %> <%-- Impresin de los valores de las variables --%> <br>

03/10/201224/11/06

Lab. Bases de Datos

Valor de la variable i, i = <%= i %><p> Impresin de una vble en JSP Valor de la variable j, j = <%= j %><p> Valor de la variable k, k = <%= k %><p> Hola, la fecha de hoy es <%= fecha %><p> Ahora veamos un ciclo <p> <% for(int z=1; z<=7; z++) { %> Cdigo Java incrustado en JSP <br> <% if (z%2 == 0){ %>
<font color="blue" size=" <%=z %> "> Voy creciendo en azul! z=<%= z %> </font>

<% } else { %>


<font color="green" size="<%=z %> "> Voy creciendo en verde! z=<%= z %> </font>

<% } %> <% } %> </body> </html>


03/10/201224/11/06 Lab. Bases de Datos 6

Procedimiento: Nombrar el archivo as: prueba.jsp Copiar el archivo en la siguiente ruta: carpeta_tomcat/webapps/ROOT/nombre_carpeta/ Iniciar el Servidor Tomcat as: Ejecutar el archivo startup ubicado en la carpeta bin del Tomcat. Invocar en el navegador : http://servidor:puerto/nombre_carpeta/prueba.jsp

03/10/201224/11/06

Lab. Bases de Datos

03/10/201224/11/06

Lab. Bases de Datos

Cdigo HTML generado:

<html> <head> <title>Pagina Ensayo JSP</title> </head> <body> <!-- Comentario HTML normal --> <br> Valor de la variable i, i = 0<p> Valor de la variable j, j = 10<p> Valor de la variable k, k = 3.14<p> Hola, la fecha de hoy es Tue Apr 18 18:02:52 COT 2006<p> Ahora veamos un ciclo <p> <br><font color="green" size="1 "> Voy creciendo en verde! z=1 </font> <br><font color="blue" size="2 "> Voy creciendo en azul! z=2 </font> <br><font color="green" size="3 "> Voy creciendo en verde! z=3 </font> <br><font color="blue" size="4 "> Voy creciendo en azul! z=4 </font> <br><font color="green" size="5 "> Voy creciendo en verde! z=5 </font> <br><font color="blue" size="6 "> Voy creciendo en azul! z=6 </font> <br><font color="green" size="7 "> Voy creciendo en verde! z=7 </font> </body> </html>

03/10/201224/11/06

Lab. Bases de Datos

Manejo de Errores
Archivo PaginaError.jsp:

<%@ page errorPage="errorPage.jsp" %> <HTML> <BODY> Hola <%= 3/0 %> </BODY> </HTML>

03/10/201224/11/06

Lab. Bases de Datos

10

Manejo de Errores
Archivo errorPage.jsp:

<%@ page isErrorPage="true" import="java.util.*" %> <HTML> <BODY> Ocurri&oacute; un error: <%= exception.toString() %> </BODY> </HTML>

03/10/201224/11/06

Lab. Bases de Datos

11

Ahora se realizar una pgina JSP que accesar a la BD. Crear la siguiente tabla: DROP TABLE emp; CREATE TABLE emp( empno NUMBER(3) PRIMARY KEY, empname VARCHAR2(10) NOT NULL ); INSERT INTO emp VALUES(100, 'Luis'); INSERT INTO emp VALUES(200, 'Juan'); INSERT INTO emp VALUES(300, 'Lucas'); COMMIT;
03/10/201224/11/06 Lab. Bases de Datos 12

Ahora bajar el archivo Conexion.zip y extraer el archivo

conexion.jsp
Colocarlo en la ruta: carpeta_tomcat/webapps/ROOT/nombre_carpeta/

Cambiarle el usuario y el password Ejecutar lo siguiente (habiendo iniciado el Tomcat): http://servidor:puerto/nombre_carpeta/conexion.jsp


Pero antes ser analizado El resultado en pantalla debe ser el siguiente:
03/10/201224/11/06 Lab. Bases de Datos 13

03/10/201224/11/06

Lab. Bases de Datos

14

Ahora se realizar una pgina JSP mediante la cual se pueden ejecutar diferentes consultas y cuyo resultado se construye dinmicamente. Bajar el archivo Consulta.zip, el cual contiene los siguientes archivos:

consulta.html consulta.jsp errorPage.jsp

No olvidar cambiar usuario y password

Se colocan en la misma ruta que los anteriores Para ejecutar:


http://servidor:puerto/nombre_carpeta/consulta.html
03/10/201224/11/06 Lab. Bases de Datos 15

Ahora construiremos un formulario HTML con validaciones en JavaScript que permitir insertar un nuevo cliente de una compaa en su tabla respectiva. Bajar el archivo: Celulares.zip, el cual contiene los archivos:
celularesinserta.jsp, celularesinserta.htm, celularesinsertafotos.zip
Cambiar usuario y password

Colocarlos en la misma ruta de los anteriores Descomprimir tambin el archivo celularesinsertafotos.zip y antes de ejecutar, crear la siguiente tabla y la siguiente secuencia:
03/10/201224/11/06 Lab. Bases de Datos 16

CREATE TABLE clientecelular( carnet NUMBER(10) PRIMARY KEY, nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, email VARCHAR(30) NOT NULL UNIQUE, sexo CHAR(1) NOT NULL CHECK(sexo IN('m','f')), tel NUMBER(10), tipoingresos NUMBER(1) CHECK(tipoingresos IN(1,2,3)), password VARCHAR(20) NOT NULL, estado_civil CHAR(1) CHECK(estado_civil IN('s','c')) ); CREATE SEQUENCE carnet;

Ahora invocar: http://servidor:puerto/nombre_carpeta/celularesinserta.htm


03/10/201224/11/06 Lab. Bases de Datos 17

Ahora se ver una aplicacin que consulta una tabla de empleados y permite recuperar su foto (formato jpg) y su hoja de vida (formato .doc ) Bajar el archivo Traer_empleados.zip el cual contiene: traer_empleado.html traer_empleado.jsp traer_todos.jsp traer_FotosyHojas.zip

Cambiar usuario y password

Colocarlos en la misma ruta que los anteriores Descomprimir tambin el archivo traer_FotosyHojas.zip Antes de ejecutar se crear la siguiente tabla:

03/10/201224/11/06

Lab. Bases de Datos

18

DROP TABLE artista; CREATE TABLE artista( codigo NUMBER(3) PRIMARY KEY, nombrereal VARCHAR2(20), nombreartistico VARCHAR2(20), foto VARCHAR2(30), hojadevida VARCHAR2(30) ); INSERT INTO artista VALUES(10,'Carlow Wright','Gigante','giant.jpg','giant.doc'); INSERT INTO artista VALUES(20,'Sharon Gmez','Gorilona','apegirlie.jpg','apegirlie.doc'); INSERT INTO artista VALUES(30,'Pedro Hawkshaw','Barbudo','beard.jpg','beard.doc'); INSERT INTO artista VALUES(40,'N.N','Hombre Invisible','invisible.jpg','invisible.doc'); INSERT INTO artista VALUES(50,'Don Gato','Felpa', 'gato.jpg','gato.doc'); 03/10/201224/11/06 Lab. Bases de Datos COMMIT;

19

Y ahora invocar:
http://servidor:puerto/nombre_carpeta/traer_empleado.html

Al presionar el botn Mostrarlos Todos se genera una pgina HTML dinmica que provee acceso a la foto y a la hoja de vida del artista Por medio del botn Enviar Consulta se puede consultar los datos de un empleado particular por medio de su cdigo Ntese que en la base de datos NO se guardan ni las fotos ni los documentos, estos residen en un directorio y pueden ubicarse en un servidor esto minimiza el tamao de la BD, aunque es menos seguro

03/10/201224/11/06

Lab. Bases de Datos

20

El siguiente ejemplo muestra una interfaz que permite al usuario final crear una tabla desde el navegador Bajar el archivo Creatabla.zip, al descomprimir se generan los archivos: generatabla.jsp Cambiar usuario generatabla.html y password creatabla.jsp Invocar: http://servidor:puerto/nombre_carpeta/generatabla.html La interfaz es incipiente, sin embargo podra llegar a extenderse hasta ser convertida en un pequeo wizard (asistente) de creacin de tablas

03/10/201224/11/06

Lab. Bases de Datos

21

Ahora se ver cmo generar de manera dinmica los elementos de una una lista de seleccin que extrae sus valores de una tabla de la BD Sea la tabla: CREATE TABLE genero( codigo NUMBER(3) PRIMARY KEY, nombre VARCHAR2(15) NOT NULL UNIQUE, descripcion VARCHAR2(30) ); INSERT INTO INSERT INTO INSERT INTO INSERT INTO COMMIT; genero genero genero genero VALUES(1,'Soul','Indescriptible!'); VALUES(2,'Pop','Msica para Hello Kitty!'); VALUES(3,'Jazz','Se origin en China'); VALUES(4,'House','Tiene muchos subgneros!');

03/10/201224/11/06

Lab. Bases de Datos

22

Tambin se ver el proceso para un radio button, sea la tabla:

CREATE TABLE tipo_miembro( codtipo NUMBER(3) PRIMARY KEY, nombre VARCHAR2(20) NOT NULL UNIQUE, valor NUMBER(3) NOT NULL, privilegios VARCHAR (40) );
INSERT INTO tipo_miembro VALUES(10,'Oro', 900, 'Cenar con los artistas'); INSERT INTO tipo_miembro VALUES(20,'Plata', 500, 'Bajar la msica' ); INSERT INTO tipo_miembro VALUES(30,'Madera', 100, 'Mirar pero no tocar!'); COMMIT;

Ahora bajar el archivo ListayRadio.zip, descomprimir y ubicar en la misma ruta que los anteriores cambiar usuario y password. Invocar http://servidor:puerto/nombre_carpeta/listayradio.jsp
03/10/201224/11/06 Lab. Bases de Datos 23

Ahora se ver un mtodo rudimentario de cmo generar dinmicamente los elementos de un formulario, es decir, un formulario que genera formularios El formulario es dinmico desde el punto de vista de la cantidad de elementos que puede poseer:

Cajas de dilogo (text) Passwords Radio Buttons Mens (select).


Lab. Bases de Datos 24

03/10/201224/11/06

Si se analizan las caractersticas bsicas de un elemento en un formulario son:


nombre del elemento label (mensaje que aparece en pantalla). tipo de elemento: si es de entrada (dilogo), password, radio, etc. valor y label (correspondiente al valor) (puede ser una lista de valores en el caso de un radio o de una lista de seleccin) size (para algunos elementos aplica)

Otras caractersticas que no sern analizadas en este momento


03/10/201224/11/06 Lab. Bases de Datos 25

Ejemplo 1:
Entre su email<input type="text" name="email" size="20"></p>

nombre: email label: Entre su email tipo de elemento: text valor: no tiene (ingresado por el usuario en este caso) size: 20

03/10/201224/11/06

Lab. Bases de Datos

26

Ejemplo 2:

Gnero Favorito: <select size="1" name="tipogenero"> <option value="1">Soul</option> <option value="2">Pop</option> <option value="3">Jazz</option> <option value="4">House</option> </select>

nombre: tipogenero label: Genero Favorito tipo de elemento: select valor: 1,2,3,4 label (correspondiente a los valores): Soul, Pop, Jazz, House size: 1
03/10/201224/11/06 Lab. Bases de Datos 27

Bajar el archivo FormaForma.zip, extraer y ejecutar en SQL*Plus las instrucciones del archivo crear.sql, extraer el archivo formaforma.jsp, cambiar el usuario y password y colocarlo en la misma ruta que los anteriores Finalmente desactivar el Tomcat : Ejecutar el archivo shutdown ubicado en la carpeta bin del tomcat

03/10/201224/11/06

Lab. Bases de Datos

28

S-ar putea să vă placă și