Sie sind auf Seite 1von 104

1.

1 ENTORNO DE DESARROLLO DE VISUAL BASIC


OBJETIVO: el alumno utilizara en aplicaciones los conceptos de proyecto, forma, objetos y unidades de cdigo, despus de clases prctica y tericas, previa explicacin del maestro e investigacin del alumno, con un nivel de confianza del 90% PROYECTO: Es una categora de desarrollo que nos permite generar diferentes tipos de aplicaciones, las cuales pueden ir desde pginas web, aplicaciones generales de java, aplicaciones mviles para celulares etc. Dentro de este IDE existen varios tipos de proyectos los cuales a continuacin se muestran grficamente: En el apartado de categoras encontramos todos los tipos de proyectos: CDC, GENERAL, C/C++, WEB, ENTERPRICE, ETC..

Cada categora contiene diferentes tipos de proyectos. En las siguientes figuras se mostrarn las categoras que se utilizaran en este curso las cuales son: categora general y categora web. CATEGORIA GENERAL.

CATEGORIA WEB

Cada proyecto independientemente de su categora contiene: Paginas o formas i) Objetos ii) Unidades de cdigo Paginas y formas Una web est hecha mediante pginas. Una pgina consiste en la presentacin de elementos como objetos y programacin lgica.

Presentacin de elementos (JSP Page). La presentacin de una pgina es el resultado de renderizarla en HTML. Esta pgina esta en cdigo jsp. Es la interface que se despliega al usuario la cual puede incluir componentes tales como un static text.

Programacin logica (Java Class). Esto quiere decir que la pagina esta escrita en lenguaje java y se guarda en un archivo .java.

La siguiente ilustracin muestra esta combinacin:

1.1.1 BARRA DE MENUS

EL MENU VISTA: CONTIENE COMANDOS NECESARIOS PARA MANIPAL LAS BARRAS DE HERRAMIENTAS Y EL EDITOR DE VENTANA.

EL MENU FILE: NOS PROVEE DE COMANDOS GENERALES PARA EL USO DE PROYECTOS Y MANEJO DEL IDE.

El men build: este men nos permite construir, compilar y limpiar aplicaciones.

El men refactor: nos permite cambiar la estructura del cdigo.

Men edicin: nos permite utilizar comandos para editar nuestros proyectos, objetos y cdigo.

El men source nos permite realizar tareas como reformatear texto y corregir las importaciones en un proyecto.

El men navegador: nos permite utilizar comandos de navegacin para brincar a secciones de cdigo y documentos

El CVS: nos provee del control de versin administrativa.

El men run: este men nos permite compilar construir y correr aplicaciones con sus comandos.

1.1.3 BARRA DE HERRAMIENTAS


BARRA DE HERRAMIENTAS LENGUAJE VISUAL OBJETIVO: el alumno identificara todos los elementos de que esta compuesta la barra de herramientas, des pues de una clase terico practica, previa explicacin del maestro y prcticas en laboratorio, con un nivel de confianza de 95%.

nos permite crear un nuevo archivo Nos permite crear un nuevo proyecto.

Nos permite abrir un proyecto

Comandos de edicin que nos permite cortar, copiar, pegar, deshacer, rehacer y buscar

Construir un proyecto

Limpiar y construir el proyecto

Correr el proyecto

Compilar el proyecto principal

Compilar y adjuntar

Herramienta que nos permiten compilar una aplicacin paso a paso.

Nos permite guardar los cambios de un proyecto

1.1.2 EXPLORADOR DE PROYECTOS


VENTANA DE NAVEGADOR: NOS DA UNA VISTAD DE CLASES, METODOS Y VARIABLES

VENATA DE PROYECTOR: NOS PERMITE VER LOS PROYECTOS CREADOR

VENTANA DE ARCHIVOS: NOS PERMITE ACCEDER A LOS ARCHIVOS DE NUESTRO PROYECTO

VENTANA DE EJECUCION: NOS PERMITE MANIPULAR LOS SERVIDORES WEB Y CONECCIONES A BASES DE DATOS

EDITOR DE CODIGO: NOS PERMITE INTRODUCIR CODIGO

LA VENTANA VERSIONING: MUESTRA EL STATUS DE LA INFORMACION.

LA VENTANA DE SALIDA: DESPLIEGA LOS MENSAJES DE COMPILACION MIENTRAS SE CONSTRUYE UN PROYECTO.

EL MONITOR http:
NOS PERMITE INSPECCIONAR RESPUESTA, COOKIES Y SESIONES MIETRAS CORRE LA APLICACION

10

1.1.3 VENTANAS DE PROPIEDADES


OBJETIVO: el alumno memorizara todas las categoras en que se dividen los componentes, despus de una clase terico prctica, previa explicacin del maestro y prcticas en laboratorio, con un nivel de confianza del 90% Barra de componente u objetos. En el lenguaje visual podemos encontrar una paleta de componentes compuesta por 9 categora. 1.- categora Basic: en esta categora se encuentran componentes con mayor uso en nuestro ide visual, algunos de estos componentes son: label, text field, static text, text area, button, hyperlink, image hyperlink, drop down list , list box, check box etc.

2.- categora layout: esta categora nos permite visualizar los componentes, que nos permitiran darle mejor vista a nuestro proyecto. Algunos de los componentes de esta categora son: gris panel, group panel, layout panel.

11

3.-categoria composite: en esta categora podremos encontrar componentes que nos servirn como alerta al sistema. Algunos de los componentes de esta categora son:

4.-categora validatores: en esta categora vamos a encontrar procedimientos que nos van a permitir validar ciertas acciones tales como la longitud de un label. Algunos de los componentes de esta categora son:

5.- categora converters: en esta categora encontraremos procedimientos para la conversin de tipos de datos. Algunos de los componentes de esta categora son:

12

6.- categora Standard: en esta categora encontraremos los componentes estandar del lenguaje visual. Algunos de los componentes de esta categora son:

7.- categora advanced: como lo dice su nombre, aqu encontraremos procedimientos avanzados de programacin tales como:

13

8.- categora data providers: en esta categora, encontramos los componentes mas importantes con respecto a las conexiones de bases de datos. Algunos de sus componentes son:

9.- categora advance data providers: en esta categora encontraremos compentes relacionados con la manipulacin de base de datos, algunos de estos componentes son:

14

2.1 GENERALIDADES 2.1.1 DEFINICION DE PROYECTO, FORMULARIOS Y EVENTOS PROYECTO


Un proyecto es esencialmente un conjunto de actividades interrelacionadas, con un inicio y una finalizacin definida, que utiliza recursos limitados para lograr un objetivo deseado. Los dos elementos bsicos que incluye esta definicin son: las actividades y los recursos. LAS ACTIVIDADES son las tareas que deben ejecutarse para llegar en conjunto a un fin preestablecido (objetivo deseado); por ejemplo: recopilar informacin; realizar diagnsticos; confeccionar un diseo global de un procedimiento, programar, escribir manuales de procedimiento, etc. Un aspecto fundamental en todo proyecto es el orden en el cual se realizan las actividades. Y para determinar la secuencia lgica de las actividades se debe establecer el mtodo, el tiempo y el costo de cada operacin. LOS RECURSOS son los elementos utilizados para poder realizar la ejecucin de cada una de las tareas; como por ejemplo: hardware, programas de base (sistemas operativos), programas de aplicacin, discos de almacenamiento, energa, servicios, inversiones de capital, personal, informacin, dinero y tiempo. Pero independientemente de su complejidad, caractersticamente todo proyecto rene la mayora delos siguientes criterios: 1. Tener un principio y un fin 2. Tener un calendario definido de ejecucin 3. Plantearse de una sola vez 4. Constar de una sucesin de actividades o de fases 5. Agrupar personas en funcin de las necesidades especficas de cada actividad 6. Contar con los recursos necesarios para desenvolver las actividades

15

FORMULARIOS
Un formulario web dentro de una pgina web permite al usuario introducir datos los cuales son enviados a un servidor para ser procesados. Los formularios web se parecen a los formularios de papel porque los internautas llenan dichos formularios usando casillas de seleccin, botones de opcin, o campos de texto. Por ejemplo, los formularios web pueden ser usados para introducir datos de envo o datos de una tarjeta de crdito con el objetivo de solicitar un producto o bien ser utilizada para solicitar datos (p. ej., al buscar en un motor de bsqueda).

EVENTOS

Eventos en HTML
Los eventos son una caracterstica de los documentos HTML (presente en otros lenguajes de programacin tambin) que permite a los autores agregar interactividad entre el sitio web y el visitante, al ejecutar programas del lado cliente cuando el visitante (u otro programa) realiza una accin. Por ejemplo, el autor puede hacer que un prrafo cambie de color de su texto cuando el visitante pose el puntero del mouse sobre el mismo. As como los atributos, los eventos pueden ser definidos fcilmente en el tag de apertura del elemento, con el mismo formato: <nombretag evento="codigo"> El contenido del eveto es el cdigo que se ejecutar, y debe ser creado utilizando un lenguaje del lado cliente (por ejemplo, JavaScript) que debe ser soportado por el navegador para que funcione. en el ejemplo siguiente, definimos un prrafo que cambia el color de su texto a rojo cuando el mouse pasa por encima, y lo devuelve a negro cuando se retira.

16

Cdigo <p onmouseover="this.style.color='red'" onmouseout="this.style.color='black'">Este es un texto que cambia de color. Prubalo!</p> Lista de eventos A continuacin hay una lista de todos los eventos disponibles para los estndares HTML 4.01 y XHTML 1.0.

onload: el evento "onload" es lanzado cuando el agente de usuario termina de cargar una pgina o todos los marcos en un ser de marcos. Este evento es exclusivo de los elementos HTML body y HTML framset. onunload: el evento "onunload" es disparado cuando el agente de usuario retira el documento de una ventana o marco. este evento es exclusivo de los elementos HTML body y HTML framset. onclick: el evento "onclick" ocurre cuando se realiza un click sobre el elemento. ondblclick: el evento "ondblclick" es ejecutado cuando se hace un doble click sobre el elemento. onmousedown: el evento "onmousedown" es lanzado cuando el botn del mouse es presionado sobre el elemento (independientemente de que sea soltado o no). onmouseup: el evento "onmouseup" es disparado cuando el botn del mouse se suelta sobre el elemento. onmouseover: el evento "onmouseover" ocurre cuando el mouse es puesto sobre el elemento. onmousemove: el evento "onmousemove" es ejecutado cuando el mouse es movido mientras est sobre el elemento. onmouseout: el evento "onmouseout" es lanzado cuando el mouse se quita de encima de un documento. onfocus: el envento "onfocus" es disparado cuando un elemento recibe el enfoque, bien sea a travs del mouse o por navegacin tabulada. Este evento es exclusivo de aquellos elementos que pueden recibir el enfoque: HTML a, HTML area, HTML label, HTML input, HTML select, HTML textarea, y HTML button. onblur: el evento "onblur" ocurre cuando el elemento pierde el enfoque bien sea a travs del mouse o por navegacin tabulada. Este evento es exclusivo de aquellos elementos que pueden recibir el enfoque. onkeypress: el evento "onkeypress" es ejecutado cuando una tecla es presionada y luego soltada mientras el elemento tiene el enfoque. Este evento es exclusivo de aquellos elementos que pueden recibir el enfoque.

17

onkeydown: el evento "onkeydown" es lanzado cuando una tecla es presionada (independientemente de que sea solatada o no) mientras el elemento tiene el enfoque. Este evento es exclusivo de aquellos elementos que pueden recibir el enfoque. onkeyup: el evento "onkeyup" es disparado cuando una tecla es solatada mientras el elemento tiene el enfoque. Este evento es exclusivo de aquellos elementos que pueden recibir el enfoque. onsubmit: el evento "onsubmit" ocurre cuando el formulario es enviado. Este evento es exclusivo del elemento HTML form. onreset: el evento "onreset" es ejecutado cuando el formulario es reestablecido a sus valores por defecto. Este evento es exclusivo del elemento HTML form. onselect: el evento "onselect" es lanzado cuando un usuario selcciona texto en un campo de texto. Este evento es exclusivo de los elementos HTML input y HTML textarea. onchange: el evento "onchange" es disparado cuando un control pierde el enfoque y su valor ha sido modificado desde que recibi el enfoque por ltima vez. Este evento es exclusivo de los elementos HTML input, HTML select y HTML textarea.

EVENTOS EN JAVA:
Los eventos en java practicamente suelen ser los mismos que en los demas lenguanjes: eventos para mouse, para teclado, eventos propios de los componentes etc. Ejemplo de cmo programar eventos a una ventana en java swing:

Public class ventana(){ private int WIDTH; private int HEIGHT; public ventana(int x, int y) { this.WHDTH=x; this.HEIGHT=y; JFrame ventana = new JFrame("USO DE VENTANA EN JAVA SWING"); JPanel panel = (JPanel) ventana.getContentPane(); setBounds(0, 0, Stage.WIDTH, Stage.HEIGHT); panel.setPreferredSize(new Dimension(Stage.WIDTH, Stage.HEIGHT));

18

panel.setLayout(null); panel.add(this); ventana.setBounds(0, 0, Stage.WIDTH, Stage.HEIGHT); ventana.setVisible(true); ventana.addWindowListener(new EvetnoVentana); } public class EventosVentana implements WindowListener(){ public void windowOpened(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowClosing(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowClosed(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowIconified(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowDeiconified(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowActivated(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } public void windowDeactivated(WindowEvent we) { throw new UnsupportedOperationException("Not supported yet."); } } }

19

2.1.2 PASOS PARA DESARROLLAR UNA APLICACIN


OBJETIVO: El alumno aplicara los conocimientos adquiridos de la unidad pasada para la creacin de proyectos, manejo de componentes, cambio de propiedades a los componentes utilizacin de la ventana de cdigo, despus de clases terico practicas, previa explicacin del maestro e investigacin extra clase, con un nivel de eficiencia del 90%;

En general un problema de informacin es posible entenderlo, analizarlo y descomponerlo en todos sus componentes o partes que de una u otra manera intervienen tanto en su planteamiento como en su solucin. Una herramienta rpida que nos permite descomponer en partes un problema para su solucin es el llamado modelo de solucin, esta consiste de una pequea caja que contiene los tres elementos ms bsicos en que se puede descomponer cualquier problema sencillo de informacin, estas tres partes son: LA PRIMERA PARTE son todos los datos que el computador ocupa para resolver el problema, estos datos son almacenados internamente en la memoria del computador en las llamadas variables de entrada. LA SEGUNDA PARTE son todas las operaciones generalmente algebraicas necesarias para solucionar el problema, generalmente esta parte del modelo es una ecuacion algebraica o formula (o igualdad matemtica, ej. X= y + 5). LA TERCERA PARTE es el resultado o solucin del problema que generalmente se obtiene de la parte de operaciones del modelo y dichos datos estn almacenados en las llamadas variables de salida. En resumen para todo problema sencillo de informacin es necesario plantearse las siguientes preguntas: Que datos ocupa conocer el computador para resolver el problema y en cuales variables de entrada se van a almacenar? Que procesos u operaciones debe realizar el computador para resolver el problema planteado? Que informacin o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente?

20

Como nota importante no confundir los trminos datos, variables e informacin: Datos se refiere a informacin en bruto no procesada ni catalogada, por ejemplo Tijuana, calle primera # 213,15 aos, $2,520.00, etc. Variables es el nombre de una localidad o direccin interna en la memoria del computador donde se almacenan los datos, ejemplo de variables para los casos del inciso anterior, CIUDAD, DIRECCIN, EDAD, SUELDO, ETC. Informacin son datos ya procesados que resuelven un problema planteado. EJEMPLO DE MODELO DE SOLUCIN Construir un modelo de solucin que resuelva el problema de calcular el rea de un tringulo con la formula rea igual a base por altura sobre dos. Variable(s) de Entrada Proceso u Operacin Variable(s) de Salida BASE ALTURA AREA= BASE * ALTURA / 2 AREA PROBLEMA 2.- CONVERTIR LA EDAD EN AOS DE UNA PERSONA A MESES. PROBLEMA 3.- CONVERTIR PESOS A DLARES. PROBLEMA 4.- CALCULAR EL REA DE UN CIRCULO CON LA FORMULA

PROBLEMA 5.- EVALUAR LA FUNCIN Y = 5X-3X +2 PARA CUALQUIER VALOR DE X.


Observar para el caso de constantes fijas o conocidas (PI) no se debe dar como dato de entrada su valor en cambio colocar directamente su valor dentro de la formula en la parte de operaciones del problema. Pero recordar tambin que existirn problemas sencillos donde:

21

No se ocupan entradas o no se ocupan operaciones, pero todos ocupan salida. Una formula grande o muy compleja puede ser ms segura y fcil de resolver, si es descompuesta y resuelta en partes, juntando al final los parciales para obtener el resultado final. Un problema puede tener ms de una solucin correcta. El problema no esta suficientemente explicado o enunciado, entonces, estudiarlo, analizarlo y construirlo de manera genrica.

TAREAS PROGRAMACION JAVA JSP Construir los modelos de solucin de los siguientes problemas: PROBLEMA 6.- Convertir millas a kilmetros (caso normal) PROBLEMA 7.- Convertir 125 metros a centmetros (no ocupa entradas) PROBLEMA 8.- Se calcula que en promedio hay 4.7 nidos en cada rbol en la UABC, tambin se calcula que en cada nido existen un promedio de 5.8 pjaros, se pide calcular la cantidad total de nidos y de pjaros en los 227 arboles que existen en la UABC. (no ocupa entradas) PROBLEMA 9.- La gorda Sra. Lpez y sus 8 hijos solo compran una vez al mes su mandado en conocido supermercado, en dicha tienda el kilogramo de frijol cuesta $8.75, el paquete de tortillas cuesta $3.55 y el frasco de caf vale $14.25, si solo compran de estos tres productos para su mandado, calcular su gasto total.( problema no claro) PROBLEMA 10.- Capturar y desplegar los cinco datos mas importantes de un automvil (no ocupa operaciones) PROBLEMA 11.- La distancia Tijuana - Ensenada es de 110 Kms, si un automvil la recorre a una velocidad constante de 30 millas por hora, cuanto tiempo tarda en llegar. ( 1 milla =1.609 Km.) (dos maneras correctas de resolverlo). PROBLEMA 12.-Evaluar la funcin PROBLEMA 13.-Evaluar la funcin para cualquier valor de x. (caso normal). para cuando x vale 4 . (no ocupa entradas).

22

2.2 CONTROL DE FORMULARIOS OBJETIVO: El alumno crear sus propios formularios, controlarlos y modificarlos a su gusto, previas clases practica con un nivel de eficiencia del 90%. Ejercicio 1 Creacin de un formulario para un curriculum mediante html.
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML4.01 transitional //EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <TITLE>--> Curriculum Vitae <--</TITLE> </head> <body bgcolor="#FFE9BB"> <form name="curriculum" action="envia.htm" method="get"><p style="color:#AA7300; font-family:arial; fontsize:20pt" align="center"> Curriculum Vitae</p> <fieldset> <legend>Datos Personales</legend> <table border="0" cellspacing="10" cellpadding="5" align="center" rules="all"> <tr> <td>Nombre <input name="nombre" type="text" size="30" maxlength="30"></td> <td colspan="2">Apellidos <input name="apellidos" type="text" size="80" maxlength="80"></td> </tr>

23

<tr> <td>Fecha de nacimiento: <input name="fechanac" type="text" size="10" maxlength="10"><i>Ej: 11-04-1996</i></td> <td colspan="2">Direccin <input name="direccion" type="text" size="80" maxlength="80"></td> </tr> <tr> <td>Poblacin <input name="poblacion" type="text" size="40" maxlength="40"></td> <td>Provincia <input name="provincia" type="text" size="30" maxlength="30"></td> <td>Cdigo Postal <input name="cp" type="text" size="5" maxlength="5"></td> </tr> <tr> <td>Telfono <input name="telefono" type="text" size="9" maxlength="9"> <i> Ej: 981234567</i></td> <td>Telfono Mvil <input name="movil" type="text" size="9" maxlength="9"> <i> Ej: 600123456</i></td> </tr> <tr valign="bottom"> <td>Carnet de Conducir <input name="carnet" type="radio" value="si">Si<input name="carnet" type="radio" value="no">No</td> <td>Escribe cuales: <br><textarea name="tipocarnet" cols="25"></textarea></td> </tr> </table> </fieldset> <fieldset> <legend>Datos Acadmicos</legend> <p style="color:#AA7300; font-family:arial; font-size:15pt">Estudios Realizados*: <br></p> <table border="0" cellspacing="14" cellpadding="5" align="center" rules="all"> <tr> <td width="150" rowspan="3"> <select name="estudios1" size="10" multiple> <option value="egb">EGB</option> <option value="eso">ESO</option> <option value="fp1">FP I</option> <option value="bup">BUP</option> <option value="bac">Bachiller</option> <option value="cou">COU</option> <option value="fp2">FP II</option> <option value="fp3">FP III</option> <option value="dip">Diplomatura</option>

24

<option value="lic">Licenciatura</option> <option value="ses">Sin Estudios</option> </select> </td> <td width="75">Especialidad/Rama1<input name="espe_rama1" type="text" size="75" maxlength="75"></td> <td width="120">Ao de Finalizacin <input name="anofin1" type="text" size="4" maxlength="4"><i>Ej: 1996</i></td> </tr> <tr> <td width="75">Especialidad/Rama2<input name="espe_rama2" type="text" size="75" maxlength="75"></td> <td width="120">Ao de Finalizacin <input name="anofin2" type="text" size="4" maxlength="4"></td> </tr> <tr> <td width="75">Especialidad/Rama3<input name="espe_rama3" type="text" size="75" maxlength="75"></td> <td width="120">Ao de Finalizacin <input name="anofin3" type="text" size="4" maxlength="4"></td> </tr> <tr> <td colspan="3"><i>* Para seleccionar ms de una titulacin mantn pulsada la tecla "Control" mientras lo pinchas</i></td> </tr> </table> <p style="color:#AA7300; font-family:arial; font-size:15pt">Formacin Complementaria: <br></p> <table border="0" cellspacing="14" cellpadding="5" align="center" rules="all"> <tr> <td colspan="3" style="color:#AA7300; font-family:arial; font-size:12pt">Curso 1 </td> </tr> <tr> <td colspan="3">Nombre del curso <input name="nom_curso1" type="text" size="125" maxlength="125"></td> </tr> <tr> <td>N de horas<br><input name="n_horas1" type="text" size="6" maxlength="6"></td> <td>Ao de finalizacion<br><input name="ano_fin_curso1" type="text" size="4" maxlength="4"><i>Ej: 1996</i></td>

25

<td>Impartido por:<br><input name="impartido1" type="text" </tr> <tr>

size="100" maxlength="100"></td>

<td colspan="3" style="color:#AA7300; font-family:arial; font-size:12pt">Curso 2 </td> </tr> <tr> <td colspan="3">Nombre del curso <input name="nom_curso2" type="text" size="125" maxlength="125"></td> </tr> <tr> <td>N de horas<br><input name="n_horas2" type="text" size="6" maxlength="6"></td> <td>Ao de finalizacion<br><input name="ano_fin_curso2" type="text" size="4" maxlength="4"><i>Ej: 1996</i></td> <td>Impartido por:<br><input name="impartido2" type="text" size="100" maxlength="100"></td> </tr> <tr> <td colspan="3" style="color:#AA7300; font-family:arial; font-size:12pt">Curso 3 </td> </tr> <tr> <td colspan="3">Nombre del curso <input name="nom_curso3" type="text" size="125" maxlength="125"></td> </tr> <tr> <td>N de horas<br><input name="n_horas3" type="text" size="6" maxlength="6"></td> <td>Ao de finalizacion<br><input name="ano_fin_curso3" type="text" size="4" maxlength="4"><i>Ej: 1996</i></td> <td>Impartido por:<br><input name="impartido3" type="text" size="100" maxlength="100"></td> </tr> <tr> <td colspan="3"><i>En caso de tener ms cursos realizados, por favor, incluyelo en este apartado especificando los mismos datos que en los casos anteriores</i></td> </tr> <tr> <td colspan="3"><textarea name="mascursos" cols="110" rows="6"></textarea> </tr> </table> </fieldset> <fieldset> <legend>Experiencia profesional</legend>

26

<table border="0" cellspacing="5" cellpadding="0" align="center" rules="all"> <tr> <td style="color:#AA7300; font-family:arial; font-size:12pt">Empresa 1</td> </tr> <tr> <td>Nombre de la Empresa<br><input name="nom_empresa1" type="text" size="50" maxlength="50"></td> <td width="25"> </td> <td rowspan="3">Descripcin del puesto<br><textarea name="cargo1" cols="50" rows="7"></textarea></td> </tr> <tr> <td>Fecha inicio<br><input name="fecha_inicio1" type="text" size="7" maxlength="7"><i>Ej:012004 (mes-ao)</i></td> </tr> <tr> <td>Fecha fin<br><input name="fecha_fin1" type="text" size="7" maxlength="7"><i>Ej:01-2004 (mes-ao)</i></td> </tr> <tr> <td style="color:#AA7300; font-family:arial; font-size:12pt">Empresa 2</td> </tr> <tr> <td>Nombre de la Empresa<br><input name="nom_empresa2" type="text" size="50" maxlength="50"></td> <td width="25"> </td> <td rowspan="3">Descripcin del puesto<br><textarea name="cargo2" cols="50" rows="7"></textarea></td> </tr> <tr> <td>Fecha inicio<br><input name="fecha_inicio2" type="text" size="7" maxlength="7"><i>Ej:012004 (mes-ao)</i></td> </tr> <tr> <td>Fecha fin<br><input name="fecha_fin2" type="text" size="7" maxlength="7"><i>Ej:01-2004 (mes-ao)</i></td> </tr> <tr> <td style="color:#AA7300; font-family:arial; font-size:12pt">Empresa 3</td>

27

</tr> <tr> <td>Nombre de la Empresa<br><input name="nom_empresa3" type="text" size="50" maxlength="50"></td> <td width="25"> </td> <td rowspan="3">Descripcin del puesto<br><textarea name="cargo3" cols="50" rows="7"></textarea></td> </tr> <tr> <td>Fecha inicio<br><input name="fecha_inicio3" type="text" size="7" maxlength="7"><i>Ej:012004 (mes-ao)</i></td> </tr> <tr> <td>Fecha fin<br><input name="fecha_fin3" type="text" size="7" maxlength="7"><i>Ej:01-2004 (mes-ao)</i></td> </tr> <tr> <td colspan="3"><br><i>En caso de haber trabajado en ms empresas, por favor, incluyelo en este apartado especificando los mismos datos que en los casos anteriores</i></td> </tr> <tr> <td colspan="3"><br><textarea name="mastrabajo" cols="110" rows="6"></textarea> </tr> </table> </fieldset><br><br> <div align="center"><input name="envia" type="submit" value="Enviar datos"></div> </form><br><br> <div align="center"><a href="../index.htm">Men principal</a></div> </body> </html>

Cuestionario
1. Cuantas formas hay dentro de este documento? 2. Qu funcin tienen los imput type= text dentro del formulario?

28

3. Qu funcin tiene la etiqueta select? 4. Cul es funcionamiento de la etiqueta table? 5. Comente cada una de las lianas de cdigo usando como herramienta de investigacin el internet?

29

2.2.1 CREACIN Objetivo: El alumno memorizara como crear formularios dentro de jsp, previa clase prctica, con un nivel de eficiencia del 90%. EJERCICIO 1:
Problema de HTML: Confeccionar una pgina HTML que muestre su nombre y apellido y en la siguiente lnea los nombres de sus padres separados por un guin SOLUCION:

<html> <head></head> <body> Diego Rodriguez. </br>Ana - Eduardo </body> </html>

NOTA: para saltar de renglon utilizamos la etiqueta </br>, nota como se antepone al nombre de ana-Eduardo para que este salte
rengln.

30

EJERCICIO 2
Problema de HTML: Confeccione una pgina que muestre en un prrafo datos referentes a sus estudios y en otro prrafo su nombre y mail. SOLUCION:

<html> <head> </head> <body> <p> Colegio primario: ALCALA.</br> Colegio secundario: INSTITUTO CUMBRES.</br> Estudios universitarios: Universidad AUTONOMA DE AGUASCALIENTES. </p> <p> Nombre:ALEJANDRO ISRAEL .<br> Mail: ALEX@gmail.com </p> </body> </html>

NOTA: Note como la etiqueta <p></p> delimita los prrafos

31

EJERCICIO3
Problema de HTML: Confeccionar un formulario que muestre en un control select un serie de mail. Luego permitir que el visitante seleccione uno o varios mail del cuadro de seleccin. SOLUCION: <html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.php" method="post"> CON FORM INDICAMOS LA CREACION DE UN FORMULARIO Seleccione uno o varios mail (Presione Ctrl para seleccionar varios mail)<br> <select name="mail[]" size="4" multiple> AQUI COMIENZA EL CAMPO DE SELECCION. <option value="prodrigues@gmail.com">prodrigues@gmail.com</option> <option value="mpalacio@gmail.com">mpalacio@gmail.com</option> <option value="mbarrionuevo@hotmail.com">mbarrionuevo@hotmail.com</option> ESTAS SON LA OPCIONES DE LA SELECCION <option value="elopez@yahoo.com">elopez@yahoo.com</option> <option value="cmercado@gmail.com">cmercado@gmail.com</option> </select> <br> <input type="submit" value="Enviar"> ESTE ES UN BOTON </form> </body>

32

EJERCICIO 4
Problema de HTML: Confeccionar un formulario que permita solicitar pizzas a domicilio. Agrupar los controles aquellos relacionados con el cliente y los referentes al pedido. SOLUCION: <html> <head> <title>Prueba de formulario</title> </head> <body> <form action="/registrardatos.jsp" method="post"> <fieldset> <legend>Seleccione tipo y cantidad de pizzas</legend> Pizza: <select name="pizza1"> <option value="1">Muzzarella</option> <option value="2">Jamon y Queso</option> <option value="3">Napolitana</option> </select> Cantidad: <select name="cantidad1"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <br> Pizza: <select name="pizza2">

33

<option value="1">Muzzarella</option> <option value="2">Jamon y Queso</option> <option value="3">Napolitana</option> </select> Cantidad: <select name="cantidad2"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <br> Pizza: <select name="pizza3"> <option value="1">Muzzarella</option> <option value="2">Jamon y Queso</option> <option value="3">Napolitana</option> </select> Cantidad: <select name="cantidad3"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </fieldset> <fieldset> <legend>Datos</legend> Nombre: <input type="text" name="nombre" size="30"><br>

34

Direccin: <input type="text" name="direccion" size="25"><br> Telfono: <input type="text" name="telefono" size="10"><br> </fieldset> <input type="submit" value="Enviar"> </form> </body> </html>

2.2.2 MOVER Y AJUSTAR TAMAO EJERCICIO 1


Problema de HTML:Confeccione una pgina que contenga los siguientes elementos a parte de la estructura mnima de un archivo HTML: a,p,h1,table,img. Hacer la pgina que valide con HTML 4.01 estricto. SOLUCION <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Prueba de validacin de HTML</title> </head> <body> <h1>Pintura geomtrica</h1> <p><img src="foto1.jpg" alt="Pintura geomtrica"><br> Este tipo de obras se resuelve con geometra generativa. </p>

35

<table border="1"> <tr> <th>Fecha</th><th>autor</th> </tr> <tr> <td>10/12/2006</td><td>Eduardo Martinez</td> </tr> </table> <p><a href="http://www.google.com.ar">Ir a google</a></p> </body> </html>

EJERCICIO 2
Problema de HTML: Confeccionar una pgina que contenga dos divisiones con una serie de prrafos cada una. Disponer color de fondo distinto para cada seccin. En la segunda seccin mostrar el mismo texto de la primera seccin pero con algunas palabras tachadas. SOLUCION: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>ttulo pgina</title> </head> <body> <!-- Primer bloque --> <div style="color:#888888;background-color:#eeeeee"> <p>

36

Confeccionar una pgina que contenga dos divisiones con una serie de prrafos cada una. Disponer color de fondo distinto para cada seccin. </p> <p>En la segunda seccin mostrar el mismo texto de la primera seccin pero con algunas palabras tachadas. </p> </div> <!-- Segundo bloque --> <div style="color:#ffffff;background-color:#000000"> <p> Confeccionar una <span style="text-decoration:line-through">pgina</span> que contenga dos divisiones con una serie de prrafos cada una. Disponer color de fondo distinto para cada seccin. </p> <p>En la segunda seccin mostrar el mismo texto de la primera seccin pero con algunas <span style="text-decoration:line-through">palabras tachadas</span>. </p> </div> </body> </html>

37

3.1 ELEMENTOS DEL LENGUAJE 3.1.1 CONSTANTES


Una constante es aquel valor que nunca cambia durante la ejecucion de un programa. En jsp tu puedes declara constante tal como se hace en java: <% final double pi = 3.1416 %>

3.1.2 VARIABLES
JAVA JSP VARIABLES Identificadores son conjuntos de letras y/o nmeros que se utilizan para simbolizar todos los elementos que en un programa son definibles por el usuario (programador o ingeniero de software) del mismo como son las variables donde se almacenan datos, funciones( pequeos mdulos con cdigo), etiquetas, clases, objetos, etc. En Java JSP una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecucin de un programa.

38

Existen ciertas reglas en cuanto a variables:


Claras y con referencia directa al problema. No espacios en blanco, ni smbolos extraos en ellas. Se pueden usar abreviaturas, pero solo de carcter general. No deben ser palabras reservadas del lenguaje.

Ejemplos de buenas variables: Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.

Ejemplo de cmo declara variables en jsp:

<% int i=10; dobule j= 11.2; boolean band = true; %>

39

3.1.3 TIPOS DE DATOS


JAVA JSP ELEMENTOS BASICOS TEMA 4: JAVA JSP TIPOS DE DATOS En Java Jsp a toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato especfico. Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecucin del programa y a lo largo de toda la vida til del propio programa. Los tipos de datos ms comunes en java jsp son: Primitive Data Types Keyword Description (integers) byte Byte-length integer short Short integer int Integer long Long integer (real numbers) float Single-precision floating point double Double-precision floating point Size/Format 8-bit two's complement 16-bit two's complement 32-bit two's complement 64-bit two's complement 32-bit IEEE 754 64-bit IEEE 754

40

(other types) char A single character 16-bit Unicode character boolean A boolean value (true or false) true or false

TABLA TOMADA DE JAVA.SUN.COM DOCUMENTATION

Como se observa es muy similar a las de c o c++. Para el caso de strings se debera usar la Clase String que tiene dos constructores, de momento entenderemos esto ultimo como dos maneras de crearse, ej; 1. String nombre= new String(); 2. String ciudad= new String(Tijuana); En este ultimo caso se crea la string y se inicializa con un dato o valor.

JAVA JSP ELEMENTOS BASICOS TEMA 5: JAVA JSP CLASES ESPECIALES En java Jsp como lenguaje de programacion orientado a objetos existen aparte de la clase String vista en el tema anterior cuatro clases especiales, descendientes de la clase NUMBERS, que contienen una serie de metodos que facilitan la interaccion con los usuarios de nuestras aplicaciones en captura y despliegue de datos numericos. Sin embargo su caracteristica mas importante a tomar en cuenta, es que objetos numericos derivados de estaS clase, no pueden entrar a operaciones DIRECTAMENTE, ni recibir el resultado de operaciones.

41

Class Integer
public { final class java.lang.Integer extends java.lang.Number // public public // public public // public public public public public public public public public public public public public public public public public public public Fields final static int **MAX_VALUE**; final static int **MIN_VALUE**; Constructors **Integer**(int value); **Integer**(String s); Methods double **doubleValue**(); boolean **equals**(Object obj); float **floatValue**(); static Integer **getInteger**(String nm); static Integer **getInteger**(String nm, int val); static Integer **getInteger**(String nm, Integer val); int **hashCode**(); int **intValue**(); long **longValue**(); static int **parseInt**(String s); static int **parseInt**(String s, int radix); static String **toBinaryString**(int i); static String **toHexString**(int i); static String **toOctalString**(int i); String **toString**(); static String **toString**(int i); static String **toString**(int i, int radix); static Integer **valueOf**(String s); static Integer **valueOf**(String s, int radix);

} Esta clase convierte un dato de tipo int a un objeto. Este objeto contiene un solo campo de tipo int. Pero tambien el objeto contiene una serie de metodos para convertir un valor int a una String y tambien para convertir una String a int. Ademas de otros metodos de igual utilidad.

42

* Clase y notas tomadas directamente de java.sun

Class Double
public final class java.lang.Double extends java.lang.Number
{ // public public public public public // public public // public public public public public public public public public public public public public public public } Fields final static double **MAX_VALUE**; final static double **MIN_VALUE**; final static double **NaN**; final static double **NEGATIVE_INFINITY**; final static double **POSITIVE_INFINITY**; Constructors **Double**(double value); **Double**(String s); Methods static long **doubleToLongBits**(double value); double **doubleValue**(); boolean **equals**(Object obj); float **floatValue**(); int **hashCode**(); int **intValue**(); boolean **isInfinite**(); static boolean **isInfinite**(double v); boolean **isNaN**(); static boolean **isNaN**(double v); static double **longBitsToDouble**(long bits); long **longValue**(); String **toString**(); static String **toString**(double d); static Double **valueOf**(String s);

* La misma fuente y las mismas notas de la clase anterior

43

Class Float
public { final class java.lang.Float extends java.lang.Number // Fields public final static float **MAX_VALUE**; public final static float **MIN_VALUE**; public final static float **NaN**; public final static float **NEGATIVE_INFINITY**; public final static float **POSITIVE_INFINITY**; // Constructors public **Float**(double value); public **Float**(float value); public **Float**(String s); // Methods public double **doubleValue**(); public boolean **equals**(Object obj); public static int **floatToIntBits**(float value); public float **floatValue**(); public int **hashCode**(); public static float **intBitsToFloat**(int bits); public int **intValue**(); public boolean **isInfinite**(); public static boolean **isInfinite**(float v); public boolean **isNaN**(); public static boolean **isNaN**(float v); public long **longValue**(); public String **toString**(); public static String **toString**(float f); public static Float **valueOf**(String s); }

44

3.1.4 TIPOS DE OPERADORES 3.1.4.1 ARITMETICOS Y CONCATENACION

45

CONCATENACION: Para concatenar en jsp es lo mismo que java se utiliza el simbolo de + ejemplo: String a = hola; String b= como estas; String f= a+b; //aqu se esta haciendo la concatenacion de hola + como estas

System.out.println(f);

JAVA JSP OPERADOR CAST y CONVERSIONES Se puede forzar un dato, variable o una expresin a convertirse o cambiarse a un nuevo tipo de dato. El operador cast realiza este proceso, es decir convierte datos, variables o expresiones a un nuevo tipo de dato, su formato es: (nvotipo) dato , var, exp; Ejemplo:
// declaracin int alfa; // Asignacin

46

alfa = 20; // Cambio de tipo (float) alfa;

Ejemplo: (int) 3.1416;


en este ejemplo se est convirtiendo un float a int, recordar que en este caso ya no se tendrn los decimales. Como nota importante se puede hacer cast solo con tipos de datos, no entre tipos de datos y objetos de una clase numerica.

Como nota importante este operador resuelve los dos problemas pendientes: 1. El de la divisin entre enteros. 2. El tipo de dato especifico que requieren las funciones. Ejemplos:
a) // Declaracin float alfa; // Operacin alfa = (float)23/5; // Pero en estos casos es preferible alfa=23/5.0;

47

En toda divisin recordar agregar a uno de los dos valores el (.0), solo que los dos elementos sean variables entonces usar el operador cast con una de ellas.
b)// Declaracin double potencia; // Operacin potencia = Math.pow ( (double)5, (double)3);

Como se observa en el ejemplo, se puede usar pow(), directamente con los datos, argumentos o parmetros requeridos , si estos son numricos, pero transformndolos con el operador cast. Esto tambin va a permitir evaluar expresiones matemticas de manera mas directa y sencilla, solo recordando usar un pow() por cada potencia y cada raz de la ecuacin, ejemplo: sea dentro de un programa esto se resuelve con;
// rea de declaracin de variables double y, x; // rea de captura de datos capturar el valor de x; // rea de operaciones y = 3 * Math.pow(x, (double)3) - Math.pow(x, (1/3.0)) + 4 * Math.pow(x, (double)2));

48

// rea de despliegue de resultados desplegar x, y

En Java Jsp para convertir tipos de datos numricos a objetos numricos y viceversa se debern usar los mtodos que traen las clase numricas de manera apropiada, en general existen tres casos generales diferentes, considerando datos o variables numricas, objetos numricos y strings que es un caso especial y comn: a.1) Variable numrica a variable numrica Usar el operador cast ejemplo: var to var int alfa1=10; double alfa2=3.1416; alfa1= (int)alfa2; observar que valores decimales deben declararse como doubles a.2) variable numerical a string ejemplo; var to string int zeta=50; String alfa= String.valueOf(zeta);

49

a.3) variable numrica a objeto numrico caso 1: usando constructor int zeta=80; Float alfa4 = new Float(zeta); caso 2: ya existe el objeto numrico Double alfa5 = new Double(0); Int zeta=30; alfa5=Double.valueOf(String.valueOf(zeta)); b.1) Objeto Numrico a Variable numrica todos los objetos numricos deben crearse inicializados aunque sea a (0) Integer alfa = new Integer(300); Int zeta = alfa.intValue(); b.2) Objeto numeric a String Float alfa = new Float(3.45); String beta = new String( ); Beta = alfa.toString();

50

B.3) Objeto Numrico a Objeto Numrico Integer alfa=new Integer(50); Double beta=new Double(0); beta = beta.valueOf(alfa.toString()); c.1) String to variable numerical String alfa= new String(3.5); double beta= 0; beta= Double.parseDouble(alfa); c.2) String to Objector Numerico String alfa8=new String(50); Double alfa9=new Double(0); alfa9 = alfa9.valueOf(alfa8);

51

TAREAS JAVA JSP POW(): 1. 2. 3. JAVA JSP JERARQUIA DE OPERACIONES En Java Jsp como en todos los dems lenguajes de programacin el problema de no tomar en cuenta la jerarqua de los operadores al plantear y resolver una operacin casi siempre conduce a resultados muchas veces equivocados como estos: Ejemplos: - 2+ 3* 4 = 20(incorrecto) = 14 (correcto) b) si calif1=60 y calif2=80 Entonces en programa se usa Promedio=calif1 + calif2/2 da como resultado promedio = 100 Recordar siempre, que antes de plantear una formula en un programa se deber evaluar contra el siguiente:

52

Orden de operaciones: 1.- Parntesis 2.- Potencias y races 3.- Multiplicaciones y divisiones 4.- Sumas y restas 5.- Dos o ms de la misma jerarqua u orden, entonces resolver de izquierda a derecha Nota: Si se quiere alterar el orden normal de operaciones, entonces usar parntesis. Nota: Tampoco es bueno usar parntesis de mas en una operacin, esto solo indica que no se evalo bien la formula, como enel siguiente ejemplo;

aqu los parntesis estn de mas, porque por orden de operaciones, multiplicacin y divisin tienen la misma jerarqua y entonces se resuelven de izquierda a derecha, en sus programas de java jsp ni que falten parntesis ni que sobren parntesis.

53

APLICACIONES JAVA JSP Recordar que JAVA es un lenguaje de programacin moderno, que est enfocado a la construccin de sistemas de informacin que se ejecutarn en una plataforma muy diversa de procesadores y sistemas operativos. Esto indica la necesidad de construir diversos tipos de aplicaciones, programas o sistemas en general existen los siguientes tipos de aplicaciones bsicas: 1.- Aplicaciones o programas que se ejecuten en consolas, es decir ambientes del tipo msdos, linux, terminales tontas, etc. 2.-Aplicaciones o sistemas que se ejecuten en ambientes grficos o de tipo ventanas:, ejemplo windows, kde o gnome de linux, sistem 8 de apple, etc. 3.- Aplicaciones de tipo APPLETS, que tambin son programas en java que se mandan a una pc remota o lejana, donde esa pc se encarga de correrla o ejecutarla o compilarla y correrla. Este applet lo manda un servidor de pginas(web server) junto con la pagina correspondiente, cada vez que un usuario se conecta al web server y requiere la pagina que contiene el applet. Para el caso de applets estos se ejecutan no en consola tampoco en una ventana sino dentro del browser de la maquina remota que puede ser el internet explorer de microsoft o el netscape. Por supuesto que el browser del cliente debe estar preparado para ejecutar applets, esto se hace teniendo constantemente actualizado el browser (internet explorer o netscape) y estando sobre todo seguro que en la actualizacin del browser se incluya la maquina virtual de java. 4.-Aplicacion de tipo SERVLETS, que son programas en java que se ejecutan directamente en el servidor de paginas o web server, que al ser invocado o llamado por una pc remota, el web server compila y ejecuta el servlet, ya ejecutado se mandan generalmente los

54

resultados a la maquina remota, estos resultados se mandan en forma de una pagina html, para que la maquina remota los vea en su propio browser. Una vez que el web server o servidor de pginas ejecuta un servlet, lo mantiene vivo o despierto, para responder de manera ms rpida a las peticiones siguientes que se hagan del servlet. 5.- Aplicaciones JSP (Java Server Pages), tecnologa que combina cdigo html y cdigo java en un solo programa o aplicacin, cuando al web server le piden un jsp, lo compila, lo convierte a servlet con todas las implicaciones que se mencionaron en el inciso anterior y manda los resultados a la pc remota que lo solicit. 6.- Beans y Java Beans, tecnologas de tipo servlet pero que estn especializadas principalmente en mantener enlaces constantes a bases de datos de cualquier marca (access, oracle, mysql, etc), esto permite que una serie de varios programas o aplicaciones a la vez estn interactuando con el mismo java bean y por consiguiente con la base de datos. 7.-Existen otra serie de aplicaciones diferentes que se pueden construir con java, tales como aplicaciones rmi, aplicaciones en tiempo real, ejb , pero de momento estn fuera del alcance de estas notas.(estarse pendiente de la siguiente actualizacin de este texto) En general todas las aplicaciones que se pueden desarrollar (consola, graficas, applets y servlets, jsp, beans ) todas tienen en comn el lenguaje e instrucciones de programacin de java. Sin embargo para propsitos de este curso nos especializaremos en JSP (JAVA SERVER PAGES), en virtud de que actualmente es una de las tecnologas ms tiles para la construccin de programas, aplicaciones y sistemas de informacin modernos.

55

3.1.4.2 RELACIONAL
JAVA JSP OPERADORES RELACIONALES Los operadores relacinales que reconoce java jsp son: Operador Significado == Igual que > Mayor que < Menor que >= Mayor o igual que Menor o igual que != No es igual que o es diferente que Tambin observar y tener cuidado sobre todo con el operador de igualdad (y el operador relacional de comparacin por igualdad(=es decir; Sueldo = 500, Se est pidiendo cargar o asignar la variable sueldo con el valor 500 Sueldo == 500, Se est pidiendo que se compare el valor o dato que se encuentra en la variable sueldo, contra el numero 500. En java jsp solo este ltimo formato es vlido dentro de una condicin en una instruccin condicional. Para objetos derivados de la clase STRING se usara el mtodo str1.compareTo(str2) que regresa cero (0) si str1 es igual str2, regresa un positivo si str1 es mayor que str2 y regresa un negativo si str1 es menor que str2.

56

3.1.4.3 LOGICOS

3.2 ESTRUCTURAS DE CONTROL


JAVA JSP INTRODUCCIN En este capitulo se continua siguiendo el esquema de trabajo ya planteado en el capitulo anterior, es decir: Construccin de programas mezclando una pagina con forma html y un programa de tipo jsp

57

JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin de un programa. Estas instrucciones se dividen en tres grandes categoras: 1.- Instrucciones Condicionales que en java jsp se implementan con las instrucciones if y switch. b) Instrucciones de ciclos con

for while do while

En java jsp muchas de ellas tienen sus correspondientes componentes visuales, derivados de html.

3.2.1 SELECTIVAS
JAVA JSP INSTRUCCIONES CONDICIONALES Una de las mas poderosas caractersticas de cualquier computador es la capacidad que tiene de tomar decisiones.

58

Es decir al comparar dos alternativas diferentes el computador puede tomar una decisin basndose en la evaluacin que hace de alguna condicin. En java jsp algunos ejemplos de instrucciones condicionales: si sueldo > 3000 desplegar rico si no desplegar pobre Fin-si si sexo = 'm' imprime mujer si no imprime hombre Fin-si De los ejemplos observar que los caminos a seguir por el computador dependern de la evaluacin que el computador hace con y de la condicin. Todo lenguaje de programacin como java jsp debe tener instrucciones que permitan formar condiciones e instrucciones que pueden evaluar esas condiciones.

59

Pero recordar que lenguajes modernos y orientados a clientes-servidores de igual forma tienen componentes que permiten del mismo modo al usuario tomar decisiones incluso directamente en pantalla, es decir tambien existen los objetos, controles o componentes de seleccin y decisin en html. El formato general de una instruccin condicional es:

Como se observa, son cuatro partes bien diferenciadas entre si;


La propia instruccin condicional en si La condicin El grupo cierto de instrucciones El grupo falso de instrucciones

Cuando el computador evala una condicin el resultado de esa evaluacin solo es evaluado de dos maneras o la condicin es CIERTA o la condicin es FALSA. Esto depender del valor que tenga asignado o que se haya capturado para la variable que esta en la condicin, por ejemplo si se capturo 6000 en sueldo en el ejemplo a) entonces el computador indicara que la condicin es CIERTA pero en otro caso si a la variable sueldo primero se le asigno un valor de 250 entonces el computador indicara que la condicin es FALSA.

60

Ya dependiendo del resultado de la evaluacin, el computador ejecuta las instrucciones contenidas en el grupo de cierto o falso respectivamente. En este curso de java jsp empezaremos el anlisis por la CONDICIN.

3.2.1.1 IF THEN.THEN . ELSE


JAVA JSP INSTRUCCIN IF Es la instruccin condicional mas usada en los diversos lenguajes de programacin, su formato completo y de trabajo en java jsp es: cargar o asignar la variable de condicin; if (condicin) { grupo cierto de instrucciones;} else { grupo falso de instrucciones; }; Primus.- Observar donde van y donde no van los puntos y comas; Secundus.- La condicin va entre parntesis ; Tertius.- Si un if no ocupa un grupo falso de instrucciones entonces no se pone el else, y la llave antes del else si terminara con punto y coma.

61

Ejemplo: Prog2 jsp


<% // declarando int sueldo=0;String res=""; if(request.getParameter("OK") != null) { sueldo = Integer.parseInt(request.getParameter("SUELDO")); if (sueldo >= 3000) { res="RICO"; } else {res="POBRE"; }; }; // construyendo forma dinamica out.println("<FORM ACTION=prog2.jsp METHOD=post>"); out.println("DAME SUELDO:<INPUT TYPE=TEXT NAME=SUELDO value="+sueldo+"><BR>"); out.println("EVALUACION:<INPUT TYPE=TEXT NAME=RES value="+res+"><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

62

Para ejecutarlos subirlos a tu sitio en programacin fcil y pedirlo desde ah con la direccin Corrida prog2 jsp

Recordar que es valido usar mas de una instruccin dentro del grupo cierto o falso del if. Recorar ademas que para el caso de strings usar: if ( carrera.compareTo(informatica) == 0 )

63

TAREAS PROGRAMACION JAVA JSP 1.- Capturar un numero cualesquiera e informar si es o no es mayor de 100. 2.- Capturar un numero entero cualesquiera e informar si es o no es mltiplo de 4 ( recordar el operador mod(%), analizado en el tema de operadores aritmticos). 3.- Capturar los cinco datos mas importantes de un Empleado, incluyendo el sueldo diario y los das trabajados desplegarle su cheque semanal solo si gan mas de $500.00 en la semana, en caso contrario desplegarle un bono de despensa semanal de $150.00. 4.- Capturar los datos mas importantes de un estudiante incluyendo tres calificaciones construir una boleta de calificaciones en una pagina de respuesta bien bonita si el estudiante es de la carrera de medicina, en caso contrario construir una pagina mas bonita todavia que despliega un oficio citando a los padres del estudiante a una platica amistosa con los maestros de la escuela. 5.- Capturar los datos mas importantes de una mercancia cualesquiera, incluyendo cantidad, precio, etc. desplegar una orden de compra, solo si el producto es de origen nacional, en caso contrario no hacer nada. JAVA JSP CONDICIONES COMPUESTAS En muchas ocasiones es necesario presentar mas de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicin compuesta se define como dos o mas condiciones simples unidas por los llamados operadores lgicos. Los operadores lgicos que java jsp reconoce son: OPERADOR SIGNIFICADO && Y LOGICO O LOGICO

64

! Ejemplo:

NO NEGACION

if ( (sueldo >100) && ( sexo=='m') ) etc, etc, etc. Y recordar que para comparar strings usar; if ( carrera.compareTo(informatica) == 0 ) Notas: Observar que cada condicin simple lleva sus propios parentesis. Si la variable es de tipo string el dato va entre comillas(), pero si la variable es de tipo char el dato va entre apostrofes('). Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico &&, las dos condiciones simples deben ser ciertas. Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico ||, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacin condiciones, la primera mitad de ellos empieza en cierto y la segunda mitad en falso. donde n = cantidad de

Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian , y se puede construir la siguiente tabla de verdad.

65

Tabla de verdad con y IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C C C F F F C F F F F La evaluacin final, se obtiene usando la regla anteriormente descrita para una condicin compuesta, que contiene el operador Y. Esta tabla significa lo siguiente; 1.- Cualquiera que sean la cantidad de datos procesados, siempre caer en uno de estos cuatro casos generales. La tabla de verdad para una condicin compuesta con Or es la siguiente; IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C C C F C F C C F F F Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones simples, es tambin tarea sencilla, solo recordar que; 1.- La cantidad posible de casos es casos posibles, la mitad empiezan con Cierto y la otra mitad empiezan con Falso.

66

2.- Para evaluar esta condicin triple primero se evalan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evala el resultado parcial contra la ultima condicin y ultimo operador para obtener la evaluacin final. Ejemplo una condicin compuesta de tres condiciones simples, donde el primer operador lgico es el y y el segundo operador lgico es el O, dara la siguiente tabla de verdad. Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra C C C C C C C C F C C F F C C C F F F F F C F C C F C F F F F F F C C F F F F F TAREAS PROGRAMACION JAVA JSP 1.- Construir un programa que capture un numero cualesquiera e informe si es o no es mayor de 50 y mltiplo de tres. ( solo escribir el mensaje de respuesta de manera muy clara y esto resuelve el problema ) 2.- Construir un programa que indique si un numero es un par positivo. 3.- Capturar los datos de una mercancia incluyendo su cantidad en existencia, desplegar una orden de compra si la cantidad en existencia del producto es menor que el punto de reorden, o si el origen del producto es nacional. 4.- Construir un programa que capture los datos de un empleado, desplegar en una pagina su cheque semanal si gana mas de $500.00 y si esta en el departamento de produccin, en caso contrario desplegarle en otra pagina un bono de despensa del 25% de su sueldo semanal.

67

3.2.1.2 SELECT CASE


CONTROL SELECT JAVA JSP Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar datos que provienen de un conjunto finito y muy pequeo de posibles respuestas esto significa que cada vez que se ejecute el programa el usuario estar proporcionando las mismas respuestas. Ejemplo de esta clase de datos, son por ejemplos Municipio en BC las posibles respuestas solo son (Tecate, Tijuana, Mexicali, Ensenada, Rosarito), otro ejemplo es Sexo (Hombre, Mujer), etc. Para situaciones como esta existen componentes html que permiten programar por adelantado las posibles respuestas y el usuario solo debe seleccionar la respuesta apropiada en lugar de tener que escribirla. Este control SELECT nos permite definir en primera instancia un conjunto de datos o valores respuestas asociados a una caja de edicin cualesquiera as ahora el usuario tendr la oportunidad de seleccionar un dato del conjunto de datos o respuestas ya predefinido. Este componente SELECT DEBERA CONSTRUIRSE EN dos partes una parte de encabezado para poner el nombre del grupo de respuestas( por ejemplo municipios, sexo, etc.) La segunda parte es la lista de opciones o respuestas que se debe cargar al tiempo de ejecucin de la forma html como lo muestra el siguiente programa: Prog4.jsp
<% // declarando

68

String municipio=""; if(request.getParameter("OK") != null) { municipio =request.getParameter("MUNICIPIO"); out.println(municipio+" ="); if (municipio.compareTo("ENSENADA")==0) out.println("TIBIO"); if (municipio.compareTo("TIJUANA")==0) out.println("HELADO"); if (municipio.compareTo("MEXICALI")==0) out.println("CALIENTE"); }; // construyendo forma dinamica out.println("<FORM ACTION=prog4.jsp METHOD=post>"); out.println("<B>MUNICIPIOS</B>"); out.println("<SELECT NAME=MUNICIPIO>"); out.println("<OPTION>ENSENADA<OPTION>TECATE<OPTION>TIJUANA<OPTION>MEXICALI"); out.println("</SELECT>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

69

CORRIDA:

Notas: 1.- Observar que el servidor de paginas devolvio el par MUNICIPIO=TIJUANA que estamos capturando en nuestra variable municipio. TAREAS PROGRAMACION JAVA JSP 1.- Arreglar un par de los programas anteriores agregandole este control a los que se puedan. 2.- Evaluar la funcin para x = 2,-5, 8

70

3.- Construir una forma.html con los datos de un automvil(usar puros select) y construir dos paginas de salida o respuesta una con un plan de financiamiento a dos aos u otra con un plan de financiamiento a tres aos. JAVA JSP CHECKBOX Y EXCEPCIONES El componente CheckBox , permite seleccionar una opcin al usuario del programa o tomar una decisin directamente en pantalla. Ejemplos de uso:

Observar que dos o mas checkboxs pueden estar seleccionados a la vez.

71

Codigo prog5 jsp


<%! String m,n,f; %> <% // observar declaracion y usando las otras directivas if(request.getParameter("OK") != null) { m=request.getParameter("M"); n=request.getParameter("N"); f=request.getParameter("F"); try{ if (m.compareTo("on")==0) out.println("masculino checado<br>"); }catch(java.lang.NullPointerException e){}; try{ if (n.compareTo("on")==0) out.println("neutro checado<br>"); }catch(java.lang.NullPointerException e){}; try{ if (f.compareTo("on")==0) out.println("femenino checado<br>"); }catch(java.lang.NullPointerException e){}; };

72

// construyendo forma dinamica out.println("<FORM ACTION=prog5.jsp METHOD=post>"); out.println("<b>sexo:</b><br>"); out.println("<input type=checkbox name=M checked>masculino<br>"); out.println("<input type=checkbox name=F >femenino<br>"); out.println("<input type=checkbox name=N checked>neutro<br>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

Notas: 1.- grabarlo y subirlo como prog5 jsp a tusitio en programacionfacil.com 2.- La propiedad name debera ser diferente en cada checkbox usado, la propiedad checked se usa para que aparezca ya palomeado o seleccionado el control. 3.- Cuando se activa prog5 jsp, esta forma manda el par NAME=on solo de los checkbox que fuern seleccionados. Corrida:

73

Para programar este componente: Como ya se indico, esta forma va a mandar el par NAME=on asi que esto es sencillo en java jsp, solo recordar usar un if por cada checkbox. Muy sencillo el codigo de validacin y no olvidar subirlo a tu sitio. ERRORES Y EXCEPCIONES Estos problemas de errores y excepciones que en java, se producen al tiempo de execucin del programa son los problemas normales de mal codigo y que tambien se producen al tiempo de compilacin no al tiempo de ejecucion del programa, este tema se refiere a eehhrorres y excepciones al tiempo de ejecucin del programa.

74

Java tiene un mecanismo muy completo para el manejo de errores y excepciones, un ERROR ocurre generalmente al tiempo de estarse ejecutandose un programa, por ejemplo una division entre cero. Una EXCEPCION es creada tambien al tiempo de ejecucin del programa cuando en alguna parte del programa se produce alguna condicin no contemplada en el programa para el programa ejemplo del checkbox, se crearon tres variables o mejor dicho tres objetos strings y cuando de la forma se manda solo una o dos de ellas cargadas con on algunas de las variables u objetos strings qu eda cargada con null(caso especial de strings) y al intentar hacer la comparacin java avisa de una excepcion como se muestra en la siguiente pantalla ejemplo:

Esta excepcin ocurrio al tiempo de ejecucin del programa y por el problema ya descrito y explicado. La diferencia entre una EXCEPCION y un ERROR es que una excepcion si es atrapada(catch) por el programa y el programador permite recuperar el programa y continuar con su ejecucin, mientras que un error aunque sea atrapado(catch) por el programa y el programador el programa suspendera y terminara su ejecucin. Si errores o excepciones no son atrapadas(catch) el programa terminara su ejecucin y mandara el aviso al usuario, como se demuestra en la pantallita de arriba.

75

Es por esta razn que es conveniente y necesario atrapar (catch) errores o excepciones, asi el programador podra incluir algun mecanismo de correccin de errores o al menos de avisarle al usuario en lugar de que sea el servidor quien le avise. Este mecanismo de correccion de errores es la clausula o instruccion
Try{ Instrucciones normales de java; } catch(tipo de error o excepcion var de error){ inst de aviso o correc de error puede incluir la var de error ; };

Un try-catch puede encerrar una instruccion de java, un grupo de instrucciones de java o todo el programa completo. En el prog5 jsp se uso un try-catch en cada if, se pudo usar un try catch con todos los if's pero no se conoce de antemano cuales variables strings se quedan en null asi que fue mas conveniente revisar if por if. En resumen cuando en algun programa al tiempo de ejecucin les aparezca un error o excepcion van a ocupar usar try-catch para atraparlo o corregirlo, el tipo de error o excepcion a cubrir se los va a estar indicando el propio servidor de paginas como lo muestra la pantallita ejemplo de excepcin y observar que la misma excepcion que aparecio en dicha pantallita, se puso en la clausula catch. Si aparecen mas errores o excepciones en un programa es valido que un try lleve mas de un catch. TAREAS PROGRAMACION JAVA JSP 1.- Evaluar la funcin para x = 2,-5, 8 (usar un CheckBox por cada valor de x, y programar cada el if de cada CheckBox con la operacin correspondiente y el despliegue del resultado). 2.- Construir un pagina html con los datos de un automvil y una segunda pagina muestra un plan de financiamiento a dos aos y una tercera pagina muestra un plan de financiamiento a tres aos.

76

3.- Construir un programa de seleccion de mens, las opciones seran algunos de los programas ya hechos.(se recomienda que en cada if construyan la forma o pagina de manera dinamica de la forma html que tienen en el programa correspondiente) COMPONENTE RADIOBUTTON JAVA JSP Se utiliza para presentar al usuario un conjunto de opciones mutuamente excluyentes entre si es decir si el usuario selecciona un componente radio todos los dems componentes radioButton en la forma, se deseleccionan solos es por esta razn que decimos que radiobotones son mutuamente excluyentes. Codigo prog6 jsp
<%! String sexo, carrera; %> <% // es mejor esta declaracion no hay que inicializar if(request.getParameter("OK") != null) { sexo=request.getParameter("SEXO"); carrera=request.getParameter("CARRERA"); out.println("carrera="+carrera+"<br>"); out.println("sexo="+sexo+"<br>"); }; // construyendo forma dinamica out.println("<FORM ACTION=prog6.jsp METHOD=post>");

77

out.println("sexo:<br>"); out.println("<input type=radio name=SEXO value=masculino checked>masculino<br>"); out.println("<input type=radio name=SEXO value=femenino>femenino<br>"); out.println("<input type=radio name=SEXO value=neutro>neutro<br>"); out.println("carrera:<br>"); out.println("<input type=radio name=CARRERA value=sistemas checked>sistemas<br>"); out.println("<input type=radio name=CARRERA value=informatica>informatica<br>"); out.println("<input type=radio name=CARRERA value=medicina>medicina<br>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

1.- Observar que tenemos dos grupos de radiobotones uno con NAME=SEXO y otro con NAME=CARRERA sin embargo existen varios radiobotones y cada radiobuton tiene su propio valor o VALUE. 2.- Recordar que en checkbox(tema anterior) la propiedad NAME debe ser distinta para cada uno de ellos, mientras que en radiobutton es la misma para todo un grupo similar de ellos. 3.- La razn principal para esta situacin es que los radiobotones son mutuamente excluyentes entre si Y QUE SOLO UNO PUEDE ESTAR ENCENDIDO A LA VEZ por eso los agrupamos con la propiedad NAME para que html los pueda considerar como dos o mas grupos diferentes. 4.- Tambien tienen la propiedad checked para que aparezcan seleccionados al cargar el programa prog6 jsp

78

5.- A diferencia del checkbox, html va a regresar solamente el par NAME=VALUE de el radiobuton que este seleccionado, esto lo hace por cada grupo de radiobotones que tengamos en la forma html Rrecordar que html regresa un y solo un par NAME=VALUE por cada grupo de radiobutton's que existan en la forma.html, asi que es bastante sencillo tomar el valor del radiobuton seleccionado y ya cargado este valor realizar o programar el proceso correspondiente. Corrida:

79

TAREAS PROGRAMACION JAVA JSP 1.- CONSTRUIR UN CUESTIONARIO DE 6 PREGUNTAS SOBRE LOS HBITOS DE ESTUDIO DE UN ESTUDIANTE Y PASAR SUS RESPUESTAS A UNA PAGINA NUEVA. 2.- EVALUAR UNA FUNCION CUALESQUIERA, LA PAGINA HTML TIENE NAME = X Y VALUE = 3, -5, 10

3.2.2 REPETITIVAS 3.2.2.1 FOR NEXT


JAVA JSP CICLO FOR Instrucciones para ciclos resuelven el problema de repetir todo el programa o cierta parte del programa mas de una vez. Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta. Su formato general es: for (inicializacin; condicin; incremento) { instruccin(es); }; En su forma simple la inicializacin es una instruccin de asignacin que carga una variable de control de ciclo con un valor inicial.

80

La condicin es una expresin relacional que evala la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo. El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos 3 argumentos con punto y coma ; EJEMPLO Codigo prog7 jsp y recuerden subirlo y pedirlo con:
<% // mira ma'a sin usar forma for (int x=1; x<=10; x++) { out.println("x= "+x+"<br>"); }; %>

El chiste va de la siguiente manera, un nio paseandose en una bicicleta; Mira ma'a sin manos Mira ma'a parado Mira ma'a sin dientes corrida: prog7 jsp

81

Casos Particulares del ciclo for: 1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general. 2.- Pero el valor inicial puede se diferente de uno, ejemplo; for(x=5;x15;x=x+1){ etc.}; 3.- Incluso el valor inicial puede ser negativo, ejemplo; for (x = -3 ;x 8; x=x+1) { etc.};

82

4.- Los incrementos tambin pueden ser diferentes al de uno en uno, ej.; for (x=1; x 20; x=x+3){ etc. }; 5.- Incluso pueden ser decrementos, solo que en este caso, recordar; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condicin. ejemplo; for (x= 50 ; x >= 10; x= x-4 ) { etctera }; 6.- Solo para los casos de incrementos y decrementos de una en una unidad substituir en el for; el x = x + 1 por x++ el x = x - 1 por x TAREAS PROGRAMACION JAVA JSP 1.- CONSTRUIR UN PROGRAMA QUE DESPLIEGUE LOS NMEROS DEL 20 AL 30. 2.- DESPLEGAR LOS ENTEROS ENTRE 50 Y 30 ACOMPAADOS DE SU POTENCIA CUADRADA Y RAZ CUBICA RESPECTIVA (revisar el tema de operadores aritmticos). 3.- DESPLEGAR LOS MLTIPLOS DE 5, ENTRE 10 Y 50, ACOMPAADOS DE SU FACTORIAL Y LOGARITMO RESPECTIVO (revisar el tema de operadores aritmticos tambin). 4.- DESPLEGAR LA TABLA DE MULTIPLICAR QUE EL USUARIO INDIQUE.

83

5.- EVALUAR LA FUNCION <m> Y=5X^2 + 3X + 8</m> CUANDO X> -310 (RANGO DE -3 HASTA 10)

3.2.2.2 WHILE WEND


JAVA JSP CICLO WHILE En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca como verdadera en el momento en que la condicin se convierte en falsa el ciclo termina. Su formato general es : cargar o inicializar variable de condicin; while(condicin) { grupo cierto de instrucciones; instruccin(es) para salir del ciclo; }; Un error muy comun con el while, es poner un punto y coma(;) despues de la (condicin) ejemplo while(condicion); -esto es y causa un error. Prog8 jsp

84

ejecutarlo directamente como se indico en el tema anterior, excepto que si quieren pueden construir una forma.html y activarlo desde ah.
<%! int x; %> <% x=1; while (x<=10) { out.println("x= "+x+"<br>"); x++; }; %>

corrida prog8 jsp

85

While puede llevar dos condiciones en este caso inicializar 2 variables de condicin y cuidar que existan 2 de rompimiento o terminacin de ciclo. El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de instrucciones. La condicin puede ser simple o compuesta. Los casos generales de for tambien se aplican a while. A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada o prueba por arriba porque este ciclo evala primero la condicin y posteriormente ejecuta las instrucciones.

86

TAREAS PROGRAMACION JAVA JSP 1.- DESPLEGAR ENTEROS ENTRE 50 Y 80 2.- DESPLEGAR MULTIPLOS DE 4 ENTRE 60 Y 20 ACOMPAADOS DE SU LOGARITMOS DE BASE 10 Y BASE e RESPECTIVOS. 3.- CONSTRUIR LA TABLA DE DIVIDIR QUE EL USUARIO INDIQUE. 4.- Evaluar una funcion cualesquiera para el rango de valores de x de -3 a +5 CICLO DO WHILE JAVA JSP Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evala la condicin; Tambin se le conoce por esta razn como ciclo de condicin de salida. Su formato general es : cargar o inicializar variable de condicin; do { grupo cierto de instruccin(es); instruccin(es) de rompimiento de ciclo; } while (condicin); prog9.jsp y ejecutarlo directamente( si quieren).

87

<%! int x; %> <% x=1; do { out.println("x= "+x+"<br>"); x++; }while (x<=10); %>

Corrida prog11.jsp

88

Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez. Tareas Java Jsp 1.- tres del for 2.- tres del while

89

3.2.2.3 CREACION DE ARCHIVOS


JAVA JSP ARCHIVOS (INTRODUCCION) Si bien es cierto que ya se pueden manejar gran cantidad de datos del mismo y diferente tipo al mismo tiempo, el problema es que al terminar de ejecutarse el programa los datos se pierden. De esta situacin nace el concepto de archivos que son medios que facilita el lenguaje para almacenar los datos en forma permanente normalmente en los dispositivos de almacenamiento standar. En general es necesario entender algunos conceptos elementales de sistemas de archivos tradicionales. Como nota a tomar en cuenta los datos que se van almacenando en un archivo de disco se almacenan en renglones consecutivos y cada renglon en disco se conoce como registro del archivo favor de no confundir el concepto de registro de archivo y registro o estructura como variable ya analizada son dos cosas totalmente diferentes aunque se llamen igual. Operaciones basicas con archivos: 1. ESCRIBIR O GRABAR: Es la operacion mas elemental con un archivo consiste en tomar un o unos datos en variables de cualquier tipo (escalar, mezcla de datos, arreglo, structuras) y almacenarlas en un archivo de datos en disco. 2. LEER: Operacin consistente en sacar los datos del archivo en disco y mandarlo o cargar la variable respectiva Organizacin de archivos: En general existen dos tipos de archivos:

90

1. Archivos Secuenciales.- En este caso los datos se almacenan en forma consecutiva y no es posible leer (recuerdan que significa esta operacin) ningun registro (recuerdan la nota de arriba) directmente es decir para leer el registro n, se debera recorrer o accesar los n-1 registros anteriores. 2. Archivos Directos o Random.- Para este caso si se puede acceder o leer un renglon n cualquiera. Tipo de archivos: A) En general, existen tantos tipos de archivos como tipos de datos existen es decir existen archivos de bytes, de chars, de ints, de floats, etc. ATENCION: Ya que se decide utilizar algun archivo especifico de datos (caracteres, strings, formateados, registros o arreglos) solo utilizar las funciones de escritura y lectura de ese tipo de archivo por ningun motivo mezcle funciones de lectura y escritura de otro tipo de archivos. Almacenamiento en arhivos: 1. Modo Texto: en este caso los datos son almacenados usando codigp ascii y por tanto son plenamente visibles usando cualquier editor. 2. Modo Binario: en este caso los datos son almacenados en notacin hexadecimal y por tanto se ocupa un editor binario para reconocerlos sin embargo un archivo binario es mas compacto que un archivo texto.

JAVA JSP ARCHIVOS SECUENCIALES PLANOS Existen ademas muchas otras operaciones asociadas a archivos las mas elementales son: 1.- Creacin de Archivo.- En este proceso se pretende solamente crear un archivo nuevo en disco, con su nombre, tipo y especialidad de almacenamiento de datos apropiado.

91

2.- Apertura de Archivos.- En este caso se pretende abrir un archivo ya existente en disco para procesarlo, ya sea cargar o grabar datos en sus registros, o leer algun registro en especial para mandarlo a una variable de cualquier tipo. No confundir creacin con apertura creacin es un proceso que solo se ejecuta una sola vez en la vida de un archivo, mientras que apertura siempre se esta realizando por los programas especializados en algun proceso. 3.-Cierre de archivos: Es la operacin mas importante en cualquier programa que maneje archivos o se cierra el archivo como ultima instruccin del pograma o se vera el anuncio ABORT,RETRY,FAIL. 98, /s, scandisk 4.-Altas en archivo.- En este proceso se carga una clase en memoria con sus datos pertinentes y se graba la clase en el archivo en disco. 5.-Lectura de archivo.- En este proceso, se abre el archivo y se manda el registro de disco, a una clase en memoria para su procesamiento. 6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros del archivo en disco a la pantalla ya sea consola o mejor an, a una pagina html 7.-Busqueda en archivos: Una de las operaciones mas comunes, consiste en que el usuario pide toda la informacin de algun renglon en disco, porporcionando la informacin de algun campo, generalmente el campo clave de la clase. 8.- Filtros.- En este proceso el usuario esta interesado en algun conjunto de renglones con caracteristicas comunes (condicin), por ejemplo todos los alumnos de sistemas, o todos los empleados que ganen mas de $500.00 pesos, o todos los clientes que sean de tijuana, etc 9.-Modificaciones de registros o archivos: Problema muy comun, donde los datos originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre no era juan es juana, o la calificacin no es 100 es 20, etc. 10.- Bajas de registros: tambien muy comun este proceso por ejemplo el alumno ya egreso, el cliente huyo, e

92

GRABACION ARCHIVO SECUENCIAL JAVA JSP Grabacin y lectura son los dos procesos mas comunes con archivos disco en cualquier lenguaje de programacin. Codigo de grabacin: Prog17.jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo DataOutputStream archivo = null; if(request.getParameter("INSERTAR") != null) { // capturando datos clave=Integer.parseInt(request.getParameter("CLAVE")); nombre=request.getParameter("NOMBRE"); estatura=Float.parseFloat(request.getParameter("ESTATURA")); try {

93

// creando archivo en append archivo = new DataOutputStream(new FileOutputStream("c:\\archivo1.dat",true)); // grabando al archivo archivo.writeInt(clave); archivo.writeUTF(nombre); archivo.writeFloat(estatura); out.println(clave+": registro grabado"); } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; // cerrando el archivo archivo.close(); }; // construyendo forma dinamica out.println("<FORM ACTION=prog17.jsp METHOD=post>"); out.println("CLAVE :<INPUT TYPE=TEXT NAME=CLAVE><BR>"); out.println("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE><BR>"); out.println("ESTATURA :<INPUT TYPE=TEXT NAME=ESTATURA><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=GRABAR ><BR>");

94

out.println("</FORM>"); %>

corrida:

Se usa una clase llamada FileOutputStream, especializada en archivos con muchos metodos y constructores para crear, manipular y procesar archivos el constructor usado solo lleva dos parametros, el primero todo la ruta o path a donde quedara el archivo(cuidado con no poner la doble diagonal \\) y el segundo parametro es la palabra true, esto es para que el archivo se abra en modo llamado APPEND, es decir que cada nuevo registro se vaya escribiendo al final del archivo, si no se pone este parametro(true), un nuevo registro se sobreescribiria sobre el registro anterior.

95

Sin embargo en el programa no se uso solo FILEOUTPUSTREAM ( solo para crear el archivo), tambien se usa DATAOUTPUTSTREAM, esta segunda clase es derivada de la anterior y comparte muchos de sus metodos, la diferencia es que fileoutputstream esta especializada en grabar y leer bytes, mientras que dataoutputstream esta especializada en grabar y leer datos formateados, observar que los metodos que uso el objeto archivo para grabar o almacenar datos se especializan en algun tipo de dato en especial, sus otros metodos son: Method Summary void flush() Flushes this data output stream. int size() Returns the current value of the counter written, the number of bytes written to this data output stream so far. write(byte[] b, int off, int len) void Writes len bytes from the specified byte array starting at offset off to the underlying output stream. void write(int b) Writes the specified byte (the low eight bits of the argument b) to the underlying output stream. void writeBoolean(boolean v) Writes a boolean to the underlying output stream as a 1-byte value. writeByte(int v) void Writes out a byte to the underlying output stream as a 1-byte value. void WriteBytes (String s) Writes out the string to the underlying output stream as a sequence of bytes. void writeChar(int v) Writes a char to the underlying output stream as a 2-byte value, high byte first. void WriteChars (String s) writes a string to the underlying output stream as a sequence of characters. writeDouble(double v) void Converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the underlying output stream as an 8-byte quantity, high byte first. writeFloat(float v) Converts the float argument to an int using the floatToIntBits method in class Float, and then writes void that int value to the underlying output stream as a 4-byte quantity, high byte first. writeInt(int v) void Writes an int to the underlying output stream as four bytes, high byte first. writeLong(long v) void Writes a long to the underlying output stream as eight bytes, high byte first. void writeShort(int v)

96

Writes a short to the underlying output stream as two bytes, high byte first. void writeUTF (String str) writes a string to the underlying output stream using UTF-8 encoding in a machine-independent manner. TABLA TOMADA DEL API DE JAVA Observar que la grabacin lleva un try-catch filenotfound y ioexception, que son obligatorios o no compila el programa. No olvidar cerrar el archivo, con la instruccion archivo.close TAREAS PROGRAMACION JAVA JSP 1.- crear y cargar un archivo2.dat que contenga registros de empleados. 2.- crear y cargar un archivo3.dat que contenga registros de productos

LECTURA ARCHIVO SECUENCIAL JAVA JSP El proceso de lectura de los registros de un archivo secuencial es realmente sencillo, como lo muestra el siguiente codigo ejemplo; Prog18.jsp:
<%@ page import="java.io.*" %> <% // declarando int clave=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo

97

DataInputStream archivo = null; if(request.getParameter("LECTURA") != null) { // construyendo una tabla html out.println("<HTML><TABLE Border=10 CellPadding=5><TR>"); out.println("<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>"); try { // abriendo archivo archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); // ciclo de lectura del archivo while(true){ out.println("<TR>"); clave=archivo.readInt(); out.println("<TD>"+clave+"</TD>"); nombre=archivo.readUTF(); out.println("<TD>"+nombre+"</TD>"); estatura=archivo.readFloat(); out.println("<TD>"+estatura+"</TD>"); out.println("</TR>");

98

} } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; archivo.close(); }; // construyendo forma dinamica out.println("<FORM ACTION=prog18.jsp METHOD=post>"); out.println("<INPUT TYPE=SUBMIT NAME=LECTURA VALUE=leer ><BR>"); out.println("</FORM>"); %>

Corrida:

99

Notas: Observar en codigo que ahora se usan FILEINPUTSTREAM Y DATAINPUTSTREAM como clases. En fileinputstream solo se uso el parametro de abrir archivo(no el true de append) como ya se menciono estas clases se especializan en archivos secuenciales. El ciclo de lectura se realiza con un while(true)

100

los metodos de DATAINPUTSTREAM SON: Method Summary read(byte[] b) int See the general contract of the read method of DataInput. read(byte[] b, int off, int len) int See the general contract of the read method of DataInput. readBoolean() boolean See the general contract of the readBoolean method of DataInput. readByte() byte See the general contract of the readByte method of DataInput. readChar() char See the general contract of the readChar method of DataInput. readDouble() double See the general contract of the readDouble method of DataInput. readFloat() float See the general contract of the readFloat method of DataInput. readFully(byte[] b) void See the general contract of the readFully method of DataInput. readFully(byte[] b, int off, int len) void See the general contract of the readFully method of DataInput. readInt() int See the general contract of the readInt method of DataInput. String with: BufferedReader d
= new BufferedReader(new InputStreamReader(in)); |

101

| long | readLong() See the general contract of the readLong method of DataInput. | short int int String static String int readShort() See the general contract of the readShort method of DataInput. readUnsignedByte() See the general contract of the readUnsignedByte method of DataInput. readUnsignedShort() See the general contract of the readUnsignedShort method of DataInput. readUTF() See the general contract of the readUTF method of DataInput. readUTF(DataInput in) Reads from the stream in a representation of a Unicode character string encoded in Java modified UTF-8 format; this string of characters is then returned as a String. skipBytes(int n) See the general contract of the skipBytes method of DataInput.

TAREAS PROGRAMACION JAVA JSP 1.- Leer y desplegar los archivos creados en el tema anterior.

102

4.1 CREACIN DE UNA BASE DE DATOS 4.1.1 TIPOS DE DSTOS QUE SOPORTAN LAS TABLAS 4.2 VINCULACION DE UNA TABLA CON UN FORMULARIO 4.3 MANIPULACION DE LOS DIF, TIPOS DE DATOS DE LAS TABLAS 4.3 MANIPULACION DE LOS DIF, TIPOS DE DATOS DE LAS TABLAS CREACIN DE CONSULTAS CON SQL CREAR REPORTES UNA TABLA VARIAS TABLAS DIRECCIONAMIENTO DEL REPORTE A IMPRESORA A ARCHIVO A TABLA A INTERNET DISEO DE UN MENU PASOS PARA DESRROLLAR UN MENU
103

104

Das könnte Ihnen auch gefallen