Você está na página 1de 131

Tutorial J (Java Server Pages)

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


1. INTRODUCCION 2. MODELO DE SOLUCION 3. VARIABLES 4. TIPOS DE DATOS 5. CLASES NUMERICAS 6. OPERADORES ARITMETICOS 7. OPERADOR CAST Y CONVERSIONES 8. JERARQUIA DE OPERACIONES 9. APLICACIONES 10. CONCEPTOS BASICOS DE OOP 11. JAVA SERVER PAGE (1) APENDICE: OBJETOS HTML APENDICE: PALABRAS RESERVADAS JAVA

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


1. INTRODUCCION 2. INSTRUCCIONES DE CONTROL DE PROGRAMA 3. INSTRUCCIONES CONDICIONALES 4. CONDICIONES SIMPLES 5. OPERADORES RELACIONALES 6. INSTRUCCION IF 7. CONDICIONES COMPUESTAS 8. INSTRUCCION SWITCH 9. CONTROL SELECT 10. CONTROL CHECKBOX Y MANEJO DE EXEPCIONES 11. CONTROL RADIOBUTTON

12. 13. 14. 15.

CICLO FOR CICLO WHILE CICLO DO...WHILE CONCLUSIONES ACERCA DE CICLOS

UNIDAD 3: JAVA JSP ARREGLOS


1. 2. 3. 4. INTRODUCCION ARREGLOS TRADICIONALES ARREGLOS TIPO LISTA ARREGLOS TIPO TABLA

UNIDAD 4: JAVA JSP FUNCIONES Y PROCEDIMIENTOS


1. 2. 3. 4. 5. PROCEDIMIENTOS Y FUNCIONES PARAMETROS VARIABLES LOCALES Y GLOBALES FUNCIONES ARREGLOS COMO PARAMETROS

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


1. INTRODUCCION 2. ESTRUCTURAS O REGISTROS 3. ARCHIVOS (1) 4. ARCHIVOS (2) 5. CREACION ARCHIVOS 6. GRABACION Y LECTURA DISCO 7. BUSQUEDA EN ARCHIVO DIRECTO 8. FILTROS o CONDICIONES 9. BAJA o ELIMINACION 10. OPERACIONES CON CAMPOS

11. 12.

EDICION o MODIFICACION REGISTROS GRAFICOS

UNIDAD 6: JAVA JSP ARCHIVOS DIRECTOS


1. 2. 3. 4. 5. 6. 7. 8. 9. INTRODUCCION ARCHIVOS DIRECTOS CREACION ARCHIVOS GRABACION Y LECTURA DISCO BUSQUEDA EN ARCHIVO DIRECTO FILTROS o CONDICIONES BAJA o ELIMINACION OPERACIONES CON CAMPOS EDICION o MODIFICACION REGISTROS GRAFICOS

UNIDAD 7: JAVA JSP INT A LAS BASES DE DATOS (MICROSOFT ACCESS)


1. INTRODUCCION 2. MODELOS DE ALMACENAMIENTO DE DATOS 3. TABLAS 4. TABLAS (CONTINUACION) 5. MICROSOFT ACCESS 6. JDBC SQL RESULTSET CONNECTION 7. SELECCION O DESPLIEGUE 8. INSERCCION O ADICION DE REGISTROS 9. BUSQUEDAS 10. FILTROS 11. OPERACIONES CON CAMPOS 12. BAJAS 13. EDICION DE REGISTROS 14. GRAFICOS O IMAGENES

UNIDAD 8: JAVA JSP INT A LAS BASES DE DATOS (MYSQL)


1. INTRODUCCION 2. MODELOS DE ALMACENAMIENTO DE DATOS 3. TABLAS 4. TABLAS (CONTINUACION) 5. MYSQL (1) 6. OBJETO RESULTSET MYSQL (2) 7. SELECCION O DESPLIEGUE 8. INSERCCION O ADICION DE REGISTROS 9. BUSQUEDAS 10. FILTROS 11. OPERACIONES CON CAMPOS 12. BAJAS 13. EDICION DE REGISTROS 14. GRAFICOS O IMAGENES

UNIDAD I: JAVA JSP ELEMENTOS BASICOS


TEMA 1: INTRODUCCION JAVA JSP
From Ugly Duckling to Swan Eli Cohen, Reconceptualizing Information Systems as a Field of the Transdiscipline Informing Science: From Ugly Duckling to Swan, Journal of Computing and Information Technology. 7 (3) 1999, 213-219. Hans Christian Anderson wrote a tale in which all the young ducks made fun of another. They made the duckling feel inadequate because he was different. One day a swan, the most beautiful of the fowl, declared that the youngster was in fact a young swan and a fine one at that. Information Systems is the field of inquiry that attempts to provide the business client with information in a form, format, and schedule that maximizes its effectiveness. Informacin y Conocimiento son los dos elementos claves del nuevo milenio ninguna sociedad podr alcanzar ni puede ignorar este nuevo esquema ya las naciones no se miden por su riqueza industrial, ni sus activos fsicos, ni por su poder militar, sino por la cantidad de informacin que produce y consume, as como por la recombinacin de informacin nueva en un conocimiento de grado superior. Nuevos sistemas de informacin, tienden a ser cada vez de mayor alcance y complejidad sobre todo cuando se toman en cuenta las nuevas necesidades

de informacin y conocimiento que demandan las nuevas organizaciones. Nuevos sistemas de informacin son costosos en tiempos y recursos, la solucin moderna de sistemas de informacin exigen herramientas y metodologas que resuelvan rpida, econmica, eficiente y de manera global, problemas de informacin y conocimiento planteados por las organizaciones. Adems el pleno potencial del hardware tampoco es aprovechado plenamente y existe un considerable retraso con el software y sus aplicaciones generando lo que se conoce como crisis del software. Nuevos paradigmas de programacin se ocupan para la creacin de nuevos sistemas y necesidades creativas de informacin. Java un lenguaje de programacin moderno implementado por la compaa www.java.sun.com a finales de 1996, se ha convertido en el lenguaje estndar para la construccin de aplicaciones basadas en internet as como de los nuevos modelos de programacin, tales como programacin mvil, programacin para dispositivos, programacin para servicios web, etc. En programacin orientada a objetos ( OOP ) un programa es considerado como un sistema de objetos interactuando entre s, ambientes de desarrollo visuales facilitan aun ms la construccin de programas y solucin de problemas, porque permiten abstraer al ingeniero de software de todo el GUI (interfase grfica) del problema, que constituye ms del 60% del cdigo normal de un programa.

En OOP todo problema aun aquellos sencillos de informacin, se consideran y resuelven como mdulos de cdigo gigante (clase) que contiene todo el cdigo necesario (variables, procedimientos, funciones, interfaces, etc.) para solucionar el problema. En programacin java bsica, se tiene la mezcla de lo mejor de estos tres mundos, es decir construimos programas, aplicaciones y sistemas de informacin usando tcnicas estructuradas, construyendo objetos y diseando sistemas grficos, y todo orientado a la construccin de sistemas de informacin basados en redes de cualquier tipo o tamao.

UNIDAD 1: JAVA JSP ELEMENTOS BSICOS


TEMA 2: MODELO DE SOLUCIN JAVA JSP
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 computador para resolver el problema planteado? el

Que informacin o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente? 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) Entrada BASE ALTURA

de

Proceso u Operacin AREA = BASE * ALTURA / 2

Variable(s) de Salida 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 AREA = PI * RADIO2 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: 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 y = 3x2 + 2x 5 para cualquier valor de x. (caso normal).

PROBLEMA 13.-Evaluar la funcin y = -5x3 - 3x2 + 8 para cuando x vale 4. (no ocupa entradas).

UNIDAD I: JAVA JSP ELEMENTOS BSICOS


TEMA 3: 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. 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, Calif1, etc. IngMensual, Permetro,

UNIDAD I: 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
Keywor Description d (integers) byte Byte-length integer Size/Format 8-bit complement 16-bit complement 32-bit complement 64-bit complement floating floating 32-bit IEEE 754 64-bit IEEE 754 two's two's two's two's

short Short integer int long Integer Long integer

(real numbers) Single-precision float point double Double-precision point (other types) char A single character

16-bit Unicode character boolea A boolean value (true or true or false

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, ejemplo; 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.

UNIDAD I: 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.

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.

* Clase y notas tomadas directamente de java.sun

Class Double
public final 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

class

java.lang.Double

extends

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

Class Float
public { final class java.lang.Float extends float float float float float java.lang.Number // Fields public final static public final static public final static public final static public final static // Constructors **MAX_VALUE**; **MIN_VALUE**; **NaN**; **NEGATIVE_INFINITY**; **POSITIVE_INFINITY**;

public public public // public public public public public public public public public public public public public public public }

**Float**(double value); **Float**(float value); **Float**(String s); Methods double **doubleValue**(); boolean **equals**(Object obj); static int **floatToIntBits**(float value); float **floatValue**(); int **hashCode**(); static float **intBitsToFloat**(int bits); int **intValue**(); boolean **isInfinite**(); static boolean **isInfinite**(float v); boolean **isNaN**(); static boolean **isNaN**(float v); long **longValue**(); String **toString**(); static String **toString**(float f); static Float **valueOf**(String s);

* La misma fuente y notas anteriores

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

* La misma fuente y notas anteriores

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 6: JAVA JSP OPERADORES ARITMETICOS
Un operador es un smbolo especial que indica al compilador que debe efectuar una operacin matemtica o lgica. Java jSP reconoce aritmticos: los siguientes operadores

Operad Operacin or
+ * / % Suma Resta Multiplicacion Division Residuo o Modulo

Como notas importantes a recordar siempre; En problemas de division entre enteros, java trunca la parte residual, ejemplo; Desplegar> 13/5 > el resultado es 2 Mas adelante se dira como resolver este problema. Para resolver los problemas de potencias y races, se usan ciertas instrucciones especiales que proporciona el lenguaje, llamadas funciones matemticas, en java existe toda una librera de instrucciones o funciones matemticas.

Recordar que todas las funciones reciben uno o ms datos o valores y regresan siempre un resultado, una de estas funciones matemticas es:
import java.lang.math ; public static double pow(double a, double b);

Esta funcin ocupa dos valores o datos ( base y exp) ambos de tipo double, y regresa un resultado tambin de tipo double, ejemplo; * resolver el problema de calcular 53
import java.io.*; import java.lang.Math; public class ejemplo1 { public static void main(String args[]) { double base =5; double exponente=3; double potencia =0; potencia = Math.pow(base, exponente); System.out.println("potencia =" +potencia); } // cerrar main } //cerrar clase

Para resolver el problema de races, se aprovecha una de las mas elementales y conocida de las leyes de exponentes que dice:

Es decir una raz cualquiera se puede transformar a una potencia con un exponente fraccionario. Ejemplo: Problema y = 3 x esto es equivalente a y = 3 * x 1/2 entonces Usando la funcin pow
Y = 3*Math.pow(x, 0.5);

* En este ejemplo no funcional se esta dando por supuesto que no interesa el tipo de dato que requiere la funcin pow() para trabajar correctamente. Para realizar operaciones con objetos numericos, recordar que no se pueden hacer directamente operaciones con ellos ni tampoco pueden recibir resultados en ellos, lo que se debe hacer es usar una variable temporal de tipo apropiado, hacer la operacion con dicha variable y al final si se quiere convertir esta variable al objeto numerico apropiado (esto ultimo se vera en el siguiente tema), como lo muestra el siguiente ejemplo; Integer alfa = new Integer(20); Double zeta = new Double(5); double alfa1=0, zeta1=0; alfa1=alfa.doubleValue(); zeta1=zeta.doubleValue(); alfa1=alfa1 + zeta1; desplegar alfa1; Como se observa se crearon dos objetos numericos, luego dos variables numericas normales, luego estas dos ultimas variables se cargan con los objetos numericos que emplean metodos propios para convertirlos a datos normales. La libreria matematica de java jsp completa incluye:
Class Math public final class java.lang.Math extends java.lang.Object { Fields public final static double E; public final static double PI; Methods public static double abs(double a); public static float abs(float a); public static int abs(int a); public static long abs(long a); public static double acos(double a); public static double asin(double a); public static double atan(double a); public static double atan2(double a, double b); public static double ceil(double a); public static double cos(double a);

public public public public public public public public public public public public public public public public public public public public }

static static static static static static static static static static static static static static static static static static static static

double exp(double a); double floor(double a); double IEEEremainder(double f1, double f2); double log(double a); double max(double a, double b); float max(float a, float b); int max(int a, int b); long max(long a, long b); double min(double a, double b); float min(float a, float b); int min(int a, int b); long min(long a, long b); double pow(double a, double b); double random(); double rint(double a); long round(double a); int round(float a); double sin(double a); double sqrt(double a); double tan(double a);

* fuente tomada de java.sun.com

UNIDAD 7: JAVA JSP ELEMENTOS BASICOS

TEMA 7: 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 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;

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)); // rea de despliegue de resultados desplegar x, y

En Java Jsp para convertir tipos de datos numericos a objetos numericos y viseversa se deberan usar los metodos que traen las clase numericas de manera apropiada, en general existen tres casos generales difrentes, considerando datos o variables numericas,

objetos numericos y strings que es un caso especial y comun: a.1) Variable numerica a variable numerica 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 numerica a string ejemplo; var to string int zeta=50; String alfa= String.valueOf(zeta); a.3) variable numerica a objeto numerico caso 1: usando constructor int zeta=80; Float alfa4 = new Float(zeta); caso 2: ya existe el objeto numerico Double alfa5 = new Double(0); Int zeta=30; alfa5=Double.valueOf(String.valueOf(zeta)); b.1) Objeto Numerico a Variable numerica todos los objetos numericos deben crearse inicializados aunque sea a (0) Integer alfa = new Integer(300); Int zeta = alfa.intValue(); b.2) Objeto numerico a String Float alfa = new Float(3.45); String beta = new String( ); Beta = alfa.toString(); B.3) Objeto Numerico a Objeto Numerico

Integer alfa=new Integer(50); Double beta=new Double(0); beta = beta.valueOf(alfa.toString()); c.1) String to variable numerica String alfa= new String(3.5); double beta= 0; beta= Double.parseDouble(alfa); c.2) String to Objeto Numerico String alfa8=new String(50); Double alfa9=new Double(0); alfa9 = alfa9.valueOf(alfa8); TAREAS JAVA JSP POW(): 1. 2. 3.

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS

TEMA 8: JAVA JSP JERARQUIA DE OPERACIONES


En Java Jsp como en todos los demas lenguajes de programacion 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: Orden de operaciones: 1. 2. 3. 4. 5. Parntesis Potencias y races Multiplicaciones y divisiones Sumas y restas 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 en el 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.

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 9: APLICACIONES JAVA JSP
Recordar que JAVA es un lenguaje de programacin moderno, que esta enfocado a la construccin de sistemas de informacion 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 sguientes tipos de aplicaciones basicas: 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 graficos o de tipo ventanas:, ejemplo windows, kde o gnome de linux, sistem 8 de apple, etc. 3. Aplicaciones de tipo APPLETS, que tambien 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 paginas(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 de el 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 direcatemente 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 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 paginas ejecuta un servlet, lo mantiene vivo o despierto, para responder de manera mas rapida a las peticiones siguientes que se hagan del servlet. 5. Aplicaciones JSP (Java Server Pages), tecnologia que combina codigo html y codigo 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 mencionarn en el inciso anterior y manda los resultados a la pc remota que lo solicit. 6. Beans y Java Beans, tecnologias de tipo servlet pero que estan 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 esten 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 estan fuera del alcance de estas notas.(estarse pendiente de la siguiente actualizacion de este texto) . En general todas las aplicaciones que se pueden desarrollar (consola, graficas, applets y servlets, jsp, beans ) todas tienen en comun el lenguaje e instrucciones de programacion de java. Sin embargo para propositos de este curso nos especializaremos en JSP (JAVA SERVER PAGES), en virtud de que actualmente es una de las tecnologias mas utiles para la construccin de programas, apliacciones y sistemas de informacin modernos.

UNIDAD 1: JAVA JSP ELEMENTOS BSICOS


TEMA 10: JAVA JSP CONCEPTOS BSICOS DE PROGRAMACION ORIENTADA OBJETOS
Para nuestro propsito en general un objeto puede definirse como cualquier cosa, ente o entidad fsica o lgica de informacin. En este sentido todos los elementos materiales o inmateriales pueden clasificarse como objetos. En particular cualquier objeto considerado presenta los siguientes tres elementos: a) Propiedades: Son las caractersticas propias de un objeto estas propiedades o atributos son los que permiten diferenciar o individualizar un objeto de otro objeto ya sea de la misma o diferente clase o categora. Las propiedades mas generales son forma, color, tamao, peso, pero ya en particular: Chamarra Marca, material, precio, color, tamao, etc Alumno Matricula, nombre, edad, domicilio, etc. Gato Raza, nombre, color, edad, etc. VentanaWindows>Tamao, Color, font, etc. b) Mtodos: Son las conductas propias de la naturaleza del objeto. As como las propiedades son el ser (que es) del objeto, los mtodos son el hacer (que hacer) del objeto. ejemplo de mtodos: Gato > Maullar(), comer(), correr(), saltar(), etc.

Alumno> Estudiar(), comer(), asistir clase(), pintear() Cuaderno>Esescrito(), esrayado(), esborrado(), etc. VentanaWindows> Abrir(), cerrar(), maximizar(), etc. c) Eventos: Es la relacin (de varias maneras) que se puede dar entre dos objetos ya sean de la misma o diferente clase. Un evento se manifiesta como un interaccin entre dos objetos, en general al momento de la relacin al mismo tiempo se dar una reaccin o respuesta por parte de los dos objetos que se manifiestan como una serie, cadena o conjuntos de mtodos propios que se activan o disparan, ejemplo: Relaci n detect gato detecta gata ar detect gato detecta perro ar maestro ensea Ense alumno ar Raton click click Windows Raton dblclk dblclk Windows Evento Mtodos que se activan maullar(), correr(), oler() bufar(), saltar(), correr() pasar lista(), preguntar(), etc maximizar(), cerrar() minimizar(), etc

Un Programa en java jsp se puede considerar como un conjunto de una o mas paginas o formas, donde cada una de ellas contiene un conjunto de objetos, componentes o controles. Un componente o propiamente dicho un control es un objeto que se especializa en una tarea especifica por

ejemplo hay controles especializados en desplegar textos o mensajes, otros controles se especializan en desplegar imgenes o vdeos, otros en manipular directorios o archivos en disco, etc. Pero en general tanto las formas como los controles no dejan de ser objetos en programacin y por tanto tienen sus propiedades, mtodos y estn sujetos a eventos.

UNIDAD 1: JAVA JSP ELEMENTOS BASICOS


TEMA 11: JAVA JSP ( JAVA SERVER PAGE )
Java Server Page, es otra de las nuevas tecnologias para tratar de hacer mas eficiente el modelo clienteservidor y sobre todo la construccin de sistemas de comercio electronico. En este modelo una pagina html tambien incluye codigo en java, es el servidor de paginas quien al estar mandando la pagina a la pc remota la compila y la convierte en un servlet. Esta tecnologia combina en una sola aplicacin, tanto codigo html como codigo java. El proceso de crear un jsp, es sencillo se crea un achivo normal con notepad combinando codigo html y codigo java, se graba con extension .jsp, se hace un ftp al servidor y listo. Cuando el usuario requiere un jsp el servidor lo carga, lo compila, lo convierte a servlet y manda la pagina resultante al usuario remoto. Empezamos con un pequeo ejemplo: prog1.jsp
<% // declarando int base=0,altura=0; double area=0; if(request.getParameter("OK") != null) { base = Integer.parseInt(request.getParameter("BASE")); altura = Integer.parseInt(request.getParameter("ALTURA")); area= base * altura / 2.0 ; }; // construyendo forma dinamica out.println("<FORM ACTION=prog1.jsp METHOD=post>"); out.println("DAME LA BASE:<INPUT TYPE=TEXT NAME=BASE value="+base+"><BR>"); out.println("DAME LA ALTURA:<INPUT TYPE=TEXT NAME=ALTURA value="+altura+"><BR>"); out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");

out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

corrida:

Solo grabarlo como prog1.jsp (ojo con notepad y su .txt), al folder web-inf luego ftp a tu sitio en LUNARPAGES y llamarlo con www.LUNARPAGES/tusitio/prog1.jsp Notas: 1. Para insertar codigo java dentro de una pagina html se deberan usar una serie de tags o delimitadores ( en el ejemplo se esta usando < % una serie de instruccines de java %> ) donde cada uno de ellos tiene un proposito definido. Otros delimitadores son:

Comentarios <% comentario %> Ignorados cuando jsp es convertida a servlet y muy utiles para documentar nuestros programas jsp. Declaracion <%! Variables, metodos, etc %> Recordar que todo buen programa, empieza declarando variables. 2. Instruccion <%= instruccion %> Para poner una y solo una instruccin de java, ademas recordar que ya existen aparte ciertas instrucciones o variables predefinidas tales como request, response, out, session, application, config, and pageContext( tambien disponibles en scriptlets). Recordar ademas que cuando se use <%= una sola instruccin %>, la instruccin no debe terminar con punto y coma. Scriptlet <% todo un programa completo %> Un scriptlet es un grupo de instruciones de java, como se deduce de esta definicin, se usara muchos scriptltes en nuestros jsp. Aqui si, las instucciones deben terminar con punto y coma Un bloque de instruciones <% bloque java %>, puede empezar (<%) en un scriptlet y terminar en otro scriptlet, pero asegurarse de que todos los scriptlets se abran y se cierren. Include Directive <%@ include file=url %> Se usa para incluir achivos en la pc que compila la jsp, esto se realiza al tiempo que la jsp es convertida en servlet, el url debe ser relativo. Para este caso tambien es valido: jsp:include action para incluir el archivo al tiempo de request por parte de un usuario remoto jsp:forward Action <jsp:forward page=URL relativo/> Manda llamar o enlazar otra pagina. NOTA: HASTA AQUI SON LAS DIRECTIVAS O DELIMITADORES MAS COMUNES EN PROGRAMAS O APLICACIONES SENCILLAS

3.

4.

5.

6.

7.

2.- En la parte de abajo se esta construyendo una pagina html dinamica, usando la instruccin( mejor dicho objeto OUT) out.println de java, les recuerdo conseguir un buen tutorial de HTML y estudiarlo a fondo. Se esta usando tres objetos TEXT de html (ver apendice html), de estos objetos se cargan su propiedad NAME y VALUE en este ultimo caso usando una variable normal de java jsp Poner atencin dentro del programa que cuando creamos objetos HTML se declaran en mayusculas y cuando creamos variables java se declaran en minusculas, no es una regla pero si es una buena practica de programacin. Se esta usando un objeto HTML submit del cual se usan las propiedades NAME y VALUE, este objeto tiene como proposito principal activar la accin de la forma (llamarse a si mismo el prog1.jsp) y ademas mandar los datos que proporciono el usuario hacia el servidor. La ultima parte de la pagina es FORM, todos los objetos html deberan estar encerrados entre esta forma o ventana, form tiene dos propiedades la primera de ellas es una accin y en este caso la accin es pedirle al servidor que vuelva a ejecutarse el propio programa1 jsp, la segunda parte es un metodo, es este caso es el metodo POST tambien se puede poner el metodo GET, en ambos casos este metodo regresa los datos desde la pc del usuario hacia el servidor, pero POST lo hace en forma invisible y GET lo hace en forma publica (probar el mismo programa con post y get y observar que pasa cuando activan el boton de submit). Al principio del programa se deberan declarar e inicializar a 0 o todas las variables del programa.

8. Se esta usando una instruccin IF para revisar el VALUE de SUBMIT, recordar que cuando el usuario pide por primera vez el programa al servidor , el VALUE del objeto SUBMIT es null, ya que el usuario carga datos en los objetos TEXT y realiza un click en SUBMIT, el value de SUBMIT pasa a valer evento1. 9. Se esta usando el objeto REQUEST.GETPARAMETER( VALUE OBJETO HTML) para leer la propiedad VALUE de los objetos HTML y de paso cargarlos en las variables java apropiadas. 10. Recordar que todos los datos que entran o salen de un objeto html seran de tipo string. 11. Por la razn del inciso 10 se esta usando el metodo parseInt(string) para convertir la string a int. 12. Ya cargadas las variables se debera realizar la operacin apropiada, recordar incluir estas variables en la forma dinamica. TAREAS PROGRAMACION JAVA JSP 15 DE LOS PROBLEMAS PROPUESTOS EN EL TEMA DE MODELO DE SOLUCION.

Apndice: OBJETOS HTML


Button, Submit, Reset, CheckBox, Radio, Password, Text, TextArea, Select, Hidden Controles Button, Submit y Reset. Propiedad Metod Eventos es os OnClick form click OnFocu name focus s value enabled Control CheckBox. Propiedades form name value enabled checked defaultcheck ed Control Radio. Propiedad Metod Eventos es os form OnClick click Eventos Metod os

OnClick click OnFocu focus s

name value enabled checked

OnFocu focus s

Control Password. Propiedad Metod Eventos es os form OnBlur blur OnFocu name focus s value enabled Controles Text y Textareas. Propiedad Metod Eventos es os form OnBlur blur OnFocu name focus s value enabled Control Select. Metod os length OnBlur blur OnFocus options focus selectedInd OnChang Propiedades Eventos

ex

Control Hidden. Propiedad Event Metod es os os name value

Apndice: Java Language Keywords


Here's a list of Java's keywords. These words are reservedyou cannot use any of these words as names in your Java programs. true, false, and null are not keywords but they are reserved words, so you cannot use them as names in your programs either. abstrac double t boolean else break extends byte case final finally int strictfp &&

catch float char class for goto &

interface super long switch synchroniz native ed new this package throw private throws protecte transient d try void volatile while

const if public % continu implemen return e ts default import short instanceof do static

% indicates a keyword that is not currently used %% indicates a keyword that was added for Java 2 JAVA.SUN.COM

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 1: 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.

UNIDAD 2: CONTROL DE PROGRAMA


TEMA 2: JAVA JSP INSTRUCCIONES CONTROL DE PROGRAMA DE

Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin de un programa. Estas instrucciones categoras: se dividen en tres grandes

1. Instrucciones Condicionales que en java jsp se implemen tan con las instrucciones if y switch. a. Instrucciones de ciclos con for while do while En java jsp muchas de ellas tienen sus correspondientes componentes visuales, derivados de html.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 3: JAVA JSP INSTRUCCIONES CONDICIONALES
Una de las mas poderosas caractersticas de cualquier computador es la capacidad que tiene de tomar decisiones. 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 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. ejemplos de instrucciones

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, diferenciadas entre si;


son

cuatro

partes

bien

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. 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.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 4: JAVA JSP CONDICIONES SIMPLES
En general todas las condiciones se forman con: Variabl Operadores es Relacinales sexo = sueldo > Constante Variables m 300,000 o

En java jsp una condicin simple se define como el conjunto de variables y/o constantes unidas por los llamados operadores relacinales.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 5: JAVA JSP OPERADORES RELACIONALES
Los operadores relacinales que reconoce java jsp son:
Operad or == > < >= != Significado Igual que Mayor que Menor que Mayor o igual que Menor o igual que No es igual que diferente que

es

Tambien observar y tener cuidado sobre todo con el operador de igualdad (y el operador relacional de comparacin por igualdad es decir; sueldo = 500, Se esta pidiendo cargar o asignar la variable sueldo con el valor 500 sueldo == 500, Se esta pidiendo que se compare el valor o dato que se encuentra en la variable sueldo, contra el numero 500. En java jsp solo este ultimo formato es valido dentro de una condicin en una instruccin condicional. Para objetos derivados de la clase STRING se usara el metodo 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.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 6: 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. 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>");

%>

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 ) 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.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 7: 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: OPERAD SIGNIFICADO OR && Y LOGICO O LOGICO ! Ejemplo: if ( (sueldo >100) && ( sexo=='m') ) etc, etc, etc. Y recordar que para comparar strings usar; if ( carrera.compareTo(informatica) == 0 ) Notas: NO NEGACION

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 donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda mitad en falso. Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian puede construir la siguiente tabla de verdad. Tabla de verdad con y IRA COND 2DA SIMPLE SIMPLE C C C F F C F F COND EVALUACI ON C F F F , y se

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 2DA SIMPLE SIMPLE C C C F F C F F COND EVALUACI ON C C C 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. 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 2da Eval 1a Y 3ra Eval eval O

cond C C C C F F F F

cond C C F F C C F F

2a C C F F F F F F

cond C F C F C F C F

3ra C C C F C F C 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.

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 8: JAVA JSP INSTRUCCIN SWITCH
Tambin existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin SWITCH. Esta instruccin es una instruccin de decisin mltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA o CHARACTER contra una lista de constantes apropiadas, es decir enteras, character, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional. El formato de esta instruccin es el siguiente: capturar o asignar variable de condicin; switch(var OPCION) { case const1: instruccin(es); break; case const2: instruccin(es); break; case const3: instruccin(es); break; default: instruccin(es);

}; prog3 jsp
<% // declarando char letra=' '; if(request.getParameter("OK") != null) { //recordar que TEXTBOX contiene una string letra=request.getParameter("LETRA").charAt(0); switch(letra) {case 'a': out.println("aguila "); break; case 'b': case 'B': out.println("baca "); break; case 'c': out.println("caballo "); break; default: out.println("no hay "); }; // observar que se puede escribir direcatmente a la pagina dinamica // esto es para los flojos }; // construyendo forma dinamica out.println("<FORM ACTION=prog3.jsp METHOD=post>"); out.println("DAME UNA LETRA:<INPUT TYPE=TEXT NAME=LETRA value="+letra+"><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

TAREAS PROGRAMACION JAVA JSP 1. Construir un programa que capture un deporte cualesquiera y despliegue dos implementos deportivos apropiados. 2. Evaluar cualquier funcin vista para cuando x =3,-4, 5

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA


TEMA 9: 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 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>ME XICALI"); out.println("</SELECT>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

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. 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.

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA


TEMA 10: 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.

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){}; }; // 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 tu sitio 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. 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. 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 queda 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. 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.

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)

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 11: 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>"); 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 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 Recordar 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. 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 .

UNIDAD 2: JAVA JSP INSTRUCCIONES DE CONTROL DE PROGRAMA


TEMA 12: 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. 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
<% // mira ma'a sin usar forma for (int x=1; x<=10; x++)

{ out.println("x= "+x+"<br>"); }; %>

Casos Particulares del ciclo for: 1. 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.}; 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; a. el valor inicial de la variable debe ser mayor que el valor final. b. cambiar el sentido de la condicin. ejemplo; for (x= 50 { etctera }; ; x >= 10; x= x-4 )

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 aritmeticos). 3. DESPLEGAR LOS MLTIPLOS DE 5, ENTRE 10 Y 50, ACOMPAADOS DE SU FACTORIAL Y LOGARITMO RESPECTIVO(revisar el tema de operadores aritmeticos tambien). 4. DESPLEGAR LA TABLA DE MULTIPLICAR QUE EL USUARIO INDIQUE. 5. EVALUAR LA FUNCION <m> Y=5X^2 + 3X + 8</m> CUANDO X> -310 (RANGO DE -3 HASTA 10)

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA TEMA 13: 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 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++; }; %>

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. 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.

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA

INSTRUCCIONES

DE

TEMA 14: 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).
<%! int x; %> <% x=1; do { out.println("x= "+x+"<br>"); x++; }while (x<=10); %>

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

UNIDAD 2: JAVA JSP CONTROL DE PROGRAMA

INSTRUCCIONES

DE

TEMA 15: JAVA JSP CONCLUSIONES ACERCA DE CICLOS En java Jsp el problema de dado un problema cualesquiera cual ciclo se debe usar se resuelve con: 1. Si se conoce la cantidad exacta de veces que se quiere que se ejecute el ciclo o si el programa de alguna manera puede calcularla usar for. 2. Si se desconoce la cantidad de veces a repetir el ciclo o se quiere mayor control sobre la salida o terminacin del mismo entonces usar while. 3. Si se quiere que al menos una vez se ejecute el ciclo entonces usar do while.

UNIDAD 3: JAVA JSP ARREGLOS


TEMA 1: JAVA JSP INTRODUCCION
Uno de los problemas mas comunes en los diversos sistemas de informacin es el tratamiento o procesamiento de una gran volumen de datos o de informacin. Las variables usadas hasta ahora reciben propiamente el nombre de variables escalares, porque solo permiten almacenar o procesar un dato a la vez. Por ejemplo si se quiere almacenar nombre y edad de 15 personas con el mtodo tradicional se ocuparan 30 variables y solo es nombre y edad de 15 personas, agreguen mas datos y mas personas y ya es tiempo de empezar a analizar otro tipo de variables. Es decir, en problemas que exigen manejar mucha informacin o datos a la vez, variables escalares no son suficientes ya que su principal problema es que solo permiten almacenar y procesar un dato a la vez. En java Jsp se ocupan entonces variables que sean capaces de almacenar y manipular conjuntos de datos a la vez. Variables de tipo arreglo si permiten almacenar y procesar conjuntos de datos del mismo tipo a la vez. Cada dato dentro del arreglo se le conoce como elemento del arreglo y se simboliza y procesa (captura, operacin, despliegue ) usando el nombre del arreglo respectivo y un subndice indicando la posicin relativa del elemento con respecto a los

dems elementos del arreglo, solo recordar que en JAVA JSP la primera posicin, elemento o rengln es el 0 (cero), ej. NOMBRES Juan >nombres(0) Pedro nombres(1) Rosa > nombres(2) Jose > nombres(3) Sin embargo sus problemas son similares a los de variables normales es decir hay que declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc.

UNIDAD 3:JAVA JSP ARREGLOS


TEMA 2: JAVA ARREGLOS JSP
En programacin tradicional siempre se manejan dos tipos de arreglos los arreglos tipo listas, vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados, matrices o bidimensionales en ambos casos son variables que permiten almacenar un conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas que cada uno de estos tipos contiene, como en los siguientes ejemplos; a) LISTAS EDAD 1 8 3 4 2 2 1 5 B) TABLAS CIA ACME ING MENS VTAS (MILES DE $) .ENE FEB MAR ABR MAY SUC 1 20 30 40 A 0

SUC 5 60 70 80 B 0 SUC 9 10 11 12 D 0 0 0 0 En java Jsp se observa la diferencia principal entre un arreglo tipo lista y un arreglo tipo tabla son las cantidades de columnas que contienen. NOTA IMPORTANTE.- LOS CONCEPTOS MANEJADOS AQUI ESTAN ENFOCADOS A LOS SISTEMAS DE INFORMACION CONTABLES FINANCIEROS ADMINISTRATIVOS. EN ALGEBRA MATRICIAL, SI SON IMPORTANTES LOS CONCEPTOS DE VECTORES Y MATRICES, PERO LAS OPERACIONES Y METODOS SON PRECISAMENTE LOS DEL ALGEBRA MATRICIAL.

UNIDAD 3: JAVA JSP ARREGLOS


TEMA 3: JAVA JSP ARREGLOS TIPO LISTA
Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno o mas renglones. Tambin reciben el nombre de vectores en lgebra o arreglos unidimensionales en programacin. Los procesos normales con una lista o con sus elementos, incluyen declarar toda la lista, capturar sus elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc. Para declarar una lista se usa el siguiente formato; tipodato nomlista[]= new tipodato[cant elementos]; SORPRESA, no existen en java jsp arreglos o listas tradicionales lo que existe es un objeto, por tanto se debera usar el operador new antes de empezar a procesar el arreglo, la ventajas son: a) estas listas pueden usar el metodo length,(ejemplo nomlista.length;) para conocer el tamao de la misma. int edades[]= new int[12]; float sueldos[]=new float[5]; String municipios[]={tijuana,tecate,ensenada}; en este ulimo caso, observar que tambien pueden crearse listas ya con tamao fijo e inicializadas o cargadas.

notas: Recordar tambin que la primera posicin o rengln en una lista es la posicin o rengln 0 (cero). Prog10 jsp
<%! int edad[]=new int[5], ren=0; %> <% String temp1=request.getParameter("INSERTAR"); if(temp1==null)temp1=" "; if(temp1.compareTo("insertar")==0){ if(ren < 5){ edad[ren]=Integer.parseInt(request.getParameter("EDAD")); ren=ren+1;}; if(ren==5){out.print("ARREGLO LLENO");}; }; if(request.getParameter("SUMAR") != null ) { // operaciones for(ren=0; ren<=4; ren++) edad[ren]=edad[ren]* 12; // DESPLEGANDO EN OBJETO LISTA DE HMTL CON BULLETS FOR NORMAL out.println("EDADES EN MESES"); out.println("<UL>"); for(ren=0;ren<=4;ren++) {out.println("<LI>"+edad[ren]); }; out.println("</UL>"); // DESPLEGANDO EN OBJETO LISTA DE HMTL FOR NORMAL out.println("<OL>"); for(ren=0; ren<=4; ren++) { out.println("<LI>"+edad[ren]); }; out.println("</OL>"); // DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL out.println("<table border=2><tr><th>EDADES EN MESES</th></tr>"); for(ren=0; ren<=4; ren++) { out.println("<tr><td>"+edad[ren]+"</td></tr>"); }; }; // construyendo forma dinamica out.println("<FORM ACTION=prog10.jsp METHOD=post>"); out.println("DAME EDAD:"+ren+"<INPUT TYPE=TEXT NAME=EDAD>"); out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar ><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=sumar><BR>"); out.println("</FORM>"); %>

Notas: Se estn usando dos SUBMIT en el programa, el primero de ellos para insertar los elementos en la lista y el segundo para convertirlos a meses. Es por esta razon que primero se lee el TEXTBOX INSERTAR y si trae null se cambia por un especio en blanco, la razon es porque java no permite

comparar strings contra null. Se esta usando una variable contador llamada reng para controlar tantos los indices de la lista o vector asi como para controlar la cantidad de elementos que se van a insertar en el arreglo. Para el caso de operaciones y comparaciones con todos los elementos de la lista a la vez, se deber usar un ciclo for con una variable entera llamada rengln misma que tambin se usa como ndice de la lista. Recordar que todos los datos internos de la lista estarn almacenados en la memoria ram del computador, para despliegues se pueden usar varios tipos de objetos y controles de html(LIST y TABLE revisar tutorial de html). Para este programa ejemplo se usaron los dos casos mas comunes de listas en html (UL y OL) ver tutorial y tambien se uso Table de html, por supuesto que en sus programas normales deberan usar un solo caso de estos tres de preferencia el TABlE. Para inicializar una lista se debe usar el siguiente formato: tipodato nomlista[]={lista de valores}; ej: int edad[4]={15,16,17,18}; float sueldo[3]={40.85, 65.30, 33.33}; String *ciudad[]={tecate, tijuana, rosarito, ensenada}; TAREAS PROGRAMACION JAVA JSP

mexicali,

1. Capturar y desplegar 5 precios de mercancias cualesquiera. 2. Capturar 4 sueldos, desplegarlos aumentados en un 25%. 3. Capturar los datos de 5 mercancias comprados en una tienda, incluyendo nombre, precio y cantidad en sus 3 listas respectivas( se vale inicializar los arreglos de nombre y precio), despus calcular una cuarta lista con el gasto total por cada producto desplegarlo todo e incluir tambin el gran total.

UNIDAD 3: JAVA JSP ARREGLOS TEMA 4: ARREGLOS BIDIMENSIONALES TIPO TABLA Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones. Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar rengln y uno interno para controlar columna. Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete. La declaracin de una tabla sera de acuerdo a los siguientes formatos: 1) tipodato nomtabla[][]= new tipodato[reng][col]; ejemplo: int calif[][]=new int[3][4]; double ingresos[][]= new double[3][4]; 2) Clasenumerica constructor[ren][col]; ejemplo; objetotabla[][]= new

Integer calif[][]= new Integer[2][3]; Double ingresos[][]=new Double[3][4]; Para capturar sus elementos, usaremos procedimiento desarrollado con listas. el

Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para controlar columna. Prog11 jsp
<%! int edad[][]=new int[2][3], ren=0, col=0; %> <% String temp1=request.getParameter("INSERTAR"); if(temp1==null)temp1=" "; if(temp1.compareTo("insertar")==0){ if(col < 3){ edad[ren][col]=Integer.parseInt(request.getParameter("EDAD")); col=col+1;}; if(col == 3){col=0;ren=ren+1;}; if(ren==2) {out.print("TABLA LLENA");}; }; if(request.getParameter("MESES") != null ) { // operaciones for(ren=0; ren<=1; ren++) for(col=0;col<=2;col++) edad[ren][col]=edad[ren][col]*12; // DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL out.println("<table border=2><tr><th>EDAD EN MESES</th></tr>"); for(ren=0; ren<=1; ren++) { out.println("<tr>"); for(col=0;col<=2;col++) { out.println("<td>"+edad[ren][col]+"</td>"); }; out.println("</tr>"); }; }; // construyendo forma dinamica out.println("<FORM ACTION=prog11.jsp METHOD=post>"); out.println("DAME EDAD:"+ren+","+col+"<INPUT TYPE=TEXT NAME=EDAD>"); out.println("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar ><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=MESES VALUE=meses><BR>"); out.println("</FORM>"); %>

Notas: Observar el formato de declaracin y como se controlan los indices de captura reng, col. Notas: El for reng tiene su propio grupo de instrucciones encerrados entre {}. Mientras que el for col solo tiene una instruccin que ejecutar el print(celda ),

el ultimo print(</termina renglon) es del ciclo for reng). El renglon de encabezado solo tiene una celda, por eso los otros dos renglones con mas celdas se ajustarn por su cuenta, para corregir esta situacin revisar su tutorial de html(TABLE). Para inicializar tablas, se debera usar el siguiente formato: tipodato nomtabla[2][3]={1,2,3,4,5,6 }; TAREAS PROGRAMACION JAVA JSP 1. CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS FIJOS DE CUATRO PRODUCTOS CUALESQUIERA, QUE SE PRODUCEN EN TRES PLANTAS DIFERENTES DE UNA EMPRESA MAQUILADORA. 2. CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS MENSUALES POR VENTAS DURANTE LOS TRES PRIMEROS MESES DEL AO DE CUATRO SUCURSALES DE UNA CADENA DE AUTO REFACCIONES, AGREGAR AL FINAL UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR MESES Y UNA SEGUNDA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES POR SUCURSAL(2 programas uno capturado y otro inicializado). 3. CONSTRUIR UN CUADRO QUE CONTENGA LAS COMISIONES GANADAS POR TRES VENDEDORES, DE LOS 5 TIPOS DE LINEA BLANCA DE CONOCIDA MUEBLERIA, ADEMAS LISTAS DE COMISIONES TOTALES Y PROMEDIOS GANADAS POR LOS VENDEDORES, ASI COMO LISTAS DE

COMISIONES TOTALES Y PROMEDIOS POR TIPO DE LINEA BLANCA(inicializado).

ANALIZAR ESTE CODIGO:


' PARA TOTALES Y PROMEDIOS POR RENGLON FOR R = 0 TO 3 FOR C = 0 TO 2 TOTRENG(R) = TOTRENG(R) + TABLA(R,C) NEXT C PROMRENG(R) = TOTRENG(R)/3 NEXT R 'PARA TOTALES Y PROMEDIOS POR COLUMNA FOR C = 0 TO 2 FOR R = 0 TO 3 TOTCOL(C)=TOTCOL(C) + TABLA(R,C) NEXT R PROMCOL(C) = TOTCOL(C) / 4 NEXT C

SUGERENCIA: CONSTRUIR PRIMERO LOS CUADROS EN PAPEL.

UNIDAD 4: JAVA PROGRAMACION ORIENTADA OBJETOS


TEMA 1: DECLARACIONES o PROCEDIMIENTOS JAVA JSP
Un camino para dividir un gran programa en partes mas pequeas es el uso de declaraciones. Una declaracin es un grupo de instrucciones, variables, constantes, etc, que estan diseados con un prposito particular y tiene su nombre propio. Es decir una declaracion es un modulo de un programa que realiza una tarea especifica y que no puede regresar valores al programa principal u a otro procedimiento que lo este invocando. Despue de escribir una declaracin se usara ese nombre propio como una sola instruccin o llamada. Las declaraciones se construyen antes del cuerpo principal del programa, es decir en la parte declarativa. Su formato es:
<%! void Nom_decl(){instrucciones;} %>

Un programa puede tener tantos procedimientos como se deseen, para hacer una llamada o invocacin a el procedimiento durante la ejecucin de un programa se debera escribir el nombre dela misma y los parentesis en blanco.

Prog12.jsp
<%! int base=0,altura=0; double area=0; void proc1(){ area= base * altura / 2.0 ;}; %> <% // no usar objetos request y out fuera de scriptlet // porque no estan creados por java todavia if(request.getParameter("OK") != null) { base = Integer.parseInt(request.getParameter("BASE")); altura = Integer.parseInt(request.getParameter("ALTURA")); // llamando o invocando procedimiento uno proc1(); }; // construyendo forma dinamica out.println("<FORM ACTION=prog12.jsp METHOD=post>"); out.println("DAME LA BASE:<INPUT TYPE=TEXT NAME=BASE value="+base+"><BR>"); out.println("DAME LA ALTURA:<INPUT TYPE=TEXT NAME=ALTURA value="+altura+"><BR>"); out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

Recordar que no se deben usar los objetos REQUEST y OUT antes de la parte principal del programa (esto porque java convierte el jsp a un servlet y la creacin de REQUEST y OUT lo hace despues, generando errores de objetos request y out desconocidos). TAREAS PROGRAMACION JAVA JSP Construir un programa java jsp que contenga puras llamadas a procedimientos dentro de un menu. Menu. a) Pesos a dolares. b) Area de un triangulo. c) Emitir Boleta. d) Fin de menu.

UNIDAD 4: JAVA ORIENTADA OBJETOS

JSP

PROGRAMACION

TEMA 2: PARAMETROS JAVA JSP Un parametro es una variable que puede pasar su valor a un procedimiento desde el principal o desde otro procedimiento. Existen ocasiones en que es necesario mandar al procedimiento ciertos valores para que los use en algn proceso. Estos valores que se pasan del cuerpo principal del programa al procedimiento se llaman parametros. Entonces una declaracion completa es: <%! void NomProc(lista de parametros) { cuerpo de instrucciones; }; %> prog13.jsp
<%! int base=0; double altura=0; double area=0; void proc1(int a, double b){ area= a * b / 2.0 ;}; %> <% // no usar objetos request y out fuera de scriptlet // porque no estan creados por java todavia if(request.getParameter("OK") != null) { base = 10; altura = 3.1416; // llamando o invocando procedimiento uno y pasando parametros // recordar que se pueden mandar datos o variables proc1(base,3.1416); }; // construyendo forma dinamica out.println("<FORM ACTION=prog13.jsp METHOD=post>"); out.println("DAME LA BASE:<INPUT TYPE=TEXT NAME=BASE value="+base+"><BR>"); out.println("DAME LA ALTURA:<INPUT TYPE=TEXT NAME=ALTURA value="+altura+"><BR>"); out.println("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");

out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

REGLAS PARA EL USO DE PARAMETROS 1. Cuando se usan variables como parametros, la variable que se manda debe ser declarada dentro del principal o del procedimiento de donde se esta enviando. 2. La variable que se manda tiene un nombre, la que se recibe puede tener otro nombre. 3. La cantidad de variables que se envian deben ser igual en cantidad, orden y tipo a las variables que reciben. 4. La variable que se recibe tiene un ambito local dentro del procedimiento, es decir solo la puede usar ese procedimiento. TAREAS PROGRAMACION JAVA JSP 1. Capturar el nombre y las 3 calificaciones en un procedimiento, calcular promedio en un segundo, imprimir nombre y promedio en principal 2. Construir una tabla de multiplicar que el usuario indique captura y control de ciclo en el principal, calculo en un procedimiento. 3. Construir un procedimiento que reciba un numero entero y que mande llamar a un segundo procedimiento pasando el letrero PAR O IMPAR.

UNIDAD 4: JAVA JSP PROGRAMACION ORIENTADA OBJETOS POO


TEMA 3: JAVA JSP VARIABLES LOCALES Y GLOBALES
En java Jsp el lugar donde sea declarada una variable afectara el uso que el programa quiera hacer de esa variable. Las reglas basicas que determinan como una variable puede ser usada depende de 3 lugares donde se puede declarar una variable. En primer lugar es dentro de cualquier funcin o procedimiento incluyendo main, a estas se les llama variables locales y solo pueden ser usadas por instrucciones que esten dentro de esa funcin o procedimiento. En segundo lugar es como parametro de una funcin o procedimiento, donde despues de haber recibido el valor, podra actuar como variable local en esa funcin o procedimieto. En escencia una variable local solo es conocida por el cdigo de esa funcin o procedimieto y es desconocida por otras funciones o procedimientos. En tercer lugar es fuera de todas las funciones pero dento de la parte declarativa <%! %>, a este tipo de variables se les llama variables globales y podran

ser usadas por cualquier funcin o procedimiento del programa.

UNIDAD 4: JAVA JSP PROGRAMACION ORIENTADA OBJETOS POO


TEMA 4: JAVA JSP FUNCIONES
En jaba jsp una funcion es un modulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la parte principal del programa u otra funcion o procedimiento que la invoque. La forma general de una funcion es:
<%! tipodatoregresa Nom_fun(parametros) { cuerpo de instrucciones; intruccion return; }; %>

El tipo especifica el tipo de valor que la funcion regresara utlizando la instruccin return. Si no se especifica un tipo se asume de default que el tipo regresado es int. La lista de parametros formales es una lista de variables separadas por comas (,) que almacenaran los valores que reciba la funcion, estas variables actuan como locales dentro del cuerpo de la funcion. Aunque no se ocupen parametros los parntesis son requeridos. La declaracion de parametros es la especificacion de cada tipo de parametro recibido. INSTRUCCION RETURN Dentro del cuerpo de la funcin deber haber una instruccin return cuando menos, para regresar el valor, esta instruccin permite regresar datos.

Prog14 jsp
<%! double res=0; double funcion1(int a, double b){ return a * b; }; %> <% // no usar objetos request y out fuera de scriptlet // porque no estan creados por java todavia if(request.getParameter("OK") != null) { // llamando o invocando funcion uno y pasando parametros // recordar que se pueden mandar datos o variables double alfa=funcion1(2,2.5) + 3 + funcion1(2, 3.3); res= alfa; }; // construyendo forma dinamica out.println("<FORM ACTION=prog14.jsp METHOD=post>"); out.println("RESULTADO:<INPUT TYPE=TEXT NAME=RESULTADO value="+res+"><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

Es permitido poner mas de un return en el cuerpo de instrucciones sobre todo en condiciones, pero solo un return se ejecutara. Ejemplo; if (suma >= 10) { return 10; } else { return 20; } EXISTEN 3 CLASES USUALES DE FUNCIONES. Las primeras son de tipo computacional que son diseadas para realizar operaciones con los argumentos y regresan un valor basado en el resultado de esa operacin. Las segundas funciones son aquellas que manipulan informacin y regresan un valor que indican la terminacion o la falla de esa manipulacion.

Las terceras son aquellas que no regresan ningun valor, es decir son estrictamenta procedurales. TAREAS PROGRAMACION JAVA JSP 1. Imprimir nombre y promedio de un alumno, capturar 3 calificaciones y nombre en un procedimiento, calcular promedio en una funcion y desplegar 2. Crear una tabla de multiplicar, captura y control de ciclo en el principal, operaciones en una funcion, despliegue en el principal. 3. Construir una funcion que nos regrese el triple de cualquier numero. 4. Construir un programa que emita una factura si el articulo es importado, una funcion lo graba con el 20% de iva si es nacional, la misma funcion lo graba con el 15% de iva si no lo es. 5. Construir una funcion que nos regrese la letra I o P si el numero que recibio fue impar o par respectivamente.

UNIDAD 4: JAVA JSP PROCEDIMIENTOS Y FUNCIONES


TEMA 5: JAVA JSP ARREGLOS COMO PARAMETROS
Para pasar un arreglo completo como parametro a un procedimiento a una funcin solo se manda el nombre del arreglo sin corchetes e indices, en el procedimiento o funcin que recibe solo se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin corchetes e indices. Sin embargo es conveniente aclarar, que a diferencia de variables escalares normales, java no genera una nueva variable en memoria ni tampoco copia los datos al arreglo que recibe, en su lugar java sigue usando los datos que estan en el arreglo original, es por esta razn que cambios que se le hagan a los datos del arreglo que recibe realmente se esta haciendo al arreglo original como lo muestra el siguiente ejemplo: Prog15 jsp
<%! //recordar que r es global int r; void decl1(int alfa[]) { for(r=0;r<=2;r++) alfa[r]=alfa[r]+10; };

%> <% // no usar objetos request y out fuera de scriptlet // porque no estan creados por java todavia if(request.getParameter("OK") != null) { int eta[]={3,4,5}; decl1(eta); for(r=0;r<=2;r++) out.println("eta="+eta[r]+"<br>"); }; // construyendo forma dinamica out.println("<FORM ACTION=prog15.jsp METHOD=post>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

Es de recordar que los cambios que le hagan al arreglo dentro de la funcin se reflejaran en el arreglo original, es por esto que si se quiere modificar un arreglo en una funcin no hay necesidad de regresar ningun valor. TAREAS PROGRAMACION JAVA JSP 1. Inicializar 10 edades en el principal mandar la lista a un procedimiento que la convierte a meses, desplegar en principal. 2. Capturar un arreglo de 7 ciudades en principal, sortear u ordenar o alfabetizar (sorteo burbuja) en un procedimiento y desplegar en principal tanto la lista original como la lista ordenada.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 1: INTRODUCCION JAVA JSP
Antes de empezar a programar en serio se estudian en esta unidad dos problemas. Problema A: Variables que puedan almacenar un conjunto de valores y no necesariamente del mismo tipo. Problema B: Resolver el problema de almacenar en forma permanente los datos que se generan dentro de un programa ya sea por captura, proceso, etc; El problema (A) se resuelve usando el concepto de estructuras o registros el problema (B) se resuelve usando el concepto de archivos.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 2: REGISTROS JAVA JSP
Ya se ha visto como variables simples pueden almacenar una sola pieza de informacin y como arreglos pueden almacenar un conjunto de ellas del mismo tipo y al mismo tiempo, estos dos mecanismos pueden manejar una gran variedad de situaciones, pero a menudo se necesita trabajar sobre datos de diversos tipos, en este caso ni variables escalares ni arreglos son adecuados. Para resolver estos problemas los lenguajes de programacin proveen de un tipo de dato especial llamado registros. Un registro es una variable especial que tiene la capacidad de almacenar datos de diferentes tipos. Sin embargo JAVA usa en su lugar una CLASE. Este metodo tiene la ventaja de que ademas los campos tradicionales de un registro (en atributos) tambien puede incorporar una metodos que permiten procesar de manera los campos o atributos de la clase. Ejemplo;
class alumno{ void alumno(){}; static String nombre= new String(); static int edad; void inicializar(){ alumno.nombre="pepe el toro"; alumno.edad=18; }; void desplegar(){

de incluir forma de serie de mas facil

System.out.println(alumno.nombre); System.out.println(alumno.edad); }; } // termina la clase

Programa 16.jsp;
<%! static class alumno{ static String nombre=" "; static int edad=0; void alumno(){}; static void inicializar(){ alumno.nombre="pepe el toro"; alumno.edad=18; }; }; %> <% if(request.getParameter("OK") != null) { alumno.inicializar(); out.println(alumno.nombre); out.println(alumno.edad); }; // construyendo forma dinamica out.println("<FORM ACTION=prog16.jsp METHOD=post>"); out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>"); out.println("</FORM>"); %>

Recordar no usar objetos OUT, Request en la parte declarativa de el programa, la razn ya se explico anteriormente. Para indicar a java durante cualquier proceso que la variable a utilizar es un campo de una clase se debera utilizar el siguiente formato. nomclase.nombredelcampo TAREAS PROGRAMACION JAVA JSP 1. Crear una clase de alumno que incluya un metodo que capture 3 califaciones. 2. Declarar una clase o registro de empleado, capturarlo y desplegarlo un numero indeterminado de veces. 3. Capturar una clase o registro de empleados, aumentar sueldo en 25% y desplegar.

4. Capturar una clase o registro de cuentas por cobrar, mandar imprimir un aviso si el saldo esta atrazado.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 3: 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: 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.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 4: 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. 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, etc.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES TEMA 5: 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 { // 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>"); out.println("</FORM>");

%>

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. 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. size() Returns the current value of the counter written, int 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. void writeByte(int v)

void void void void

void void void void void

Writes out a byte to the underlying output stream as a 1byte value. WriteBytes (String s) Writes out the string to the underlying output stream as a sequence of bytes. writeChar(int v) Writes a char to the underlying output stream as a 2-byte value, high byte first. WriteChars (String s) writes a string to the underlying output stream as a sequence of characters. writeDouble(double v) 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 that int value to the underlying output stream as a 4-byte quantity, high byte first. writeInt(int v) Writes an int to the underlying output stream as four bytes, high byte first. writeLong(long v) Writes a long to the underlying output stream as eight bytes, high byte first. writeShort(int v) Writes a short to the underlying output stream as two bytes, high byte first. writeUTF (String str) writes a string to the underlying output stream using UTF-8 encoding in a machine-independent manner.

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

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 6: 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 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>"); } } 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>"); %>

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) 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() boolea See the general contract of the readBoolean method of n 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. int readInt() See the general contract of the readInt method of

DataInput. String

with: BufferedReader d
= new BufferedReader(new InputStreamReader(in)); |

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

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 7: BUSQUEDA ARCHIVOS SECUENCIALES JAVA JSP
Recordar que existen una serie de procesos basicos con archivos el famoso y antiguo ABC (altas, bajas, consultas y modificaciones) con ellos. Actualmente estos procesos o similares a ellos se llaman insertar, eliminar, editar, etc, en las modernas bases de datos pero esto lo analizaremos mas adelante. El primer proceso para un archivo secuencial es agregar una cantidad indefinida de registros al archivo este proceso se resuelve o ejecutando una cantidad indeterminada de veces el programa de grabacin ya hecho o incluir un ciclo while en el mismo programa. Un segundo proceso tambien comun, llamado consulta es desplegar todos los registros del archivo a la vez problema tambien resuelto en el programa de lectura. El tercer Proceso que resolvemos en este tema es la busqueda de un registro determinado, en este proceso el usuario del programa quiere que se despliegue un y solo un registro de informacin, proporcionando un dato de busqueda, generalmente la clave del registro. La solucion es sencilla, solo tenemos que abrir el archivo para lectura, hacer un ciclo while(true)

condicionar y solo desplegar el registro cuando se cumpla la condicin.

Codigo prog19.Java:
<%@ page import="java.io.*" %> <% // declarando int clave=0;int claveb=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo DataInputStream archivo = null; if(request.getParameter("BUSCAR") != null) { // construyendo 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>"); // capturando clave a buscar claveb=Integer.parseInt(request.getParameter("CLAVEB")); try { // abriendo archivo archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); if (claveb==clave){ out.println("<TR>"); out.println("<TD>"+clave+"</TD>"); out.println("<TD>"+nombre+"</TD>"); out.println("<TD>"+estatura+"</TD>"); out.println("</TR>"); } } } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; archivo.close(); }; // construyendo forma dinamica out.println("<FORM ACTION=prog19.jsp METHOD=post>"); out.println("CLAVE BUSCAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>"); out.println("</FORM>"); %>

TAREAS PROGRAMACION JAVA JSP 1.- Hacer programas de busquedas para los archivos hechos.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 8: JAVA JSP FILTROS o CONDICIONES
Como su nombre lo indica en este proceso se pretende desplegar todo un conjunto de renglones que cumplan con la condicin por ejemplo se pide desplegar todos los alumnos de sistemas o todos los empleados que sean de sinaloa, etc. Filtros se usan para obtener informacin acerca de un subconjunto de renglones de el archivo. Codigo prog20 jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;float est=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo DataInputStream archivo = null; if(request.getParameter("FILTRAR") != null) { // construyendo 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>"); // capturando filtro est=Float.parseFloat(request.getParameter("ESTATURA")); try { // abriendo archivo archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); if (estatura>=est){ out.println("<TR>"); out.println("<TD>"+clave+"</TD>"); out.println("<TD>"+nombre+"</TD>"); out.println("<TD>"+estatura+"</TD>"); out.println("</TR>"); } } } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; archivo.close();

}; // construyendo forma dinamica out.println("<FORM ACTION=prog20.jsp METHOD=post>"); out.println("ESTATURA >=:<INPUT TYPE=TEXT NAME=ESTATURA><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=FILTRAR VALUE=Filtrar><BR>"); out.println("</FORM>"); %>

Seria mas interesante construir un programa donde el filtro se construya con dos comboboxs y un textbox para el dato(recordar definicin de condicin simple) y de esta manera se podra construir un programa que filtre por cualuier campo y por cualquier operador relacional, pero este programa es la 1.- TAREA Java Jsp Filtrar el archivo de alumnos por cualquier campo.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 9: JAVA JSP BAJA O ELIMINACION ARCHIVO SECUENCIAL
Eliminar o dar de baja en un archivo secuencial, implica tener que estar procesando dos archivos a la vez, el segundo de ellos es un archivo temporal, un algoritmo de eliminacion fisica quedaria como: Procedimiento : 1. Abrir el archivo original en modo letcura. 2. Abrir un archivo llamado temporal en modo escritura. 3. Iniciar un ciclo de lectura del archivo original. 3a.- Dentro del ciclo leer el primer registro. 3b.- Validar el registro si no es eliminable, se escribe al archivo temporal. 3c.- Fin de ciclo (cerrar el ciclo). 4. Cerrar ambos archivos. 5. eliminar el archivo original. 6. renombrar el archivo temporal con el nombre de archivo original. Una segunda tecnica, consiste en agregar un campo de estado (status) al registro, tal como se vio en el curso anterior: Sin embargo el proceso de baja se tiene que realizar en un sistema de informacin, para resolver este problema la respuesta es agregar un campo especial llamado status que puede ser de tipo char, con

algunos caracteres de control que se puedan cargar en el por ejemplo una 'a' siginifica que esta en alta, una 'b' significa que esta en baja, etc. Lo unico que se tiene que hacer, es que cuando se agrega o manda el registro por primera vez a disco, mandarlo cargado el campo de status con 'a' y estar validando con if siempre este campo en cualquier proceso de busqueda o condicion o despliegue, si se encuentra cargado con 'b' entonces solo avisar al usuario que esta de baja dicho registro. A continuacin damos un ejemplo de eliminacin fisica: Prog21 jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;int claveb=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo DataInputStream archivo = null; DataOutputStream archivot = null; if(request.getParameter("ELIMINAR") != null) { // capturando clave a eliminar claveb=Integer.parseInt(request.getParameter("CLAVEB")); try { // abriendo archivos archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); archivot = new DataOutputStream(new FileOutputStream("c:\\temp.dat",true)); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); if (claveb!=clave){ archivot.writeInt(clave); archivot.writeUTF(nombre); archivot.writeFloat(estatura); }}} catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; // cerrando archivos archivo.close(); archivot.close(); // eliminando original renombrando temporal File file1 = new File("c:\\archivo1.dat"); File file2 = new File("c:\\temp.dat"); if (file1.exists()) {file1.delete();};

file2.renameTo(file1); // avisando out.println("REGISTRO ELIMINADO"); }; // construyendo forma dinamica out.println("<FORM ACTION=prog21.jsp METHOD=post>"); out.println("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=ELIMINAR VALUE=Eliminar><BR>"); out.println("</FORM>"); %>

TAREAS PROGRAMACION JAVA JSP 1.- Agregar un modulo de eliminacion o baja, a los archivos ya construidos.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 10: OPERACIONES CON CAMPOS JAVA JSP
Este es tambien un caso comun con los elementos de un archivo, sin embargo es tambien facil de resolver. Solo usar los dos archivos el original y el temporal y antes de grabarse al temporal hacer la operacion correspondiente, como lo muestra el siguiente ejemplo. Prog22.jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;String nombre=""; float estatura=0; // creando dos objetos de tipo archivo uno para escritura y otro para lectura DataInputStream archivo = null; DataOutputStream archivot = null; if(request.getParameter("SUMAR") != null) { try { // abriendo archivos archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); archivot = new DataOutputStream(new FileOutputStream("c:\\temp.dat",true)); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); // sumando estatura = estatura + 5; // grabando a temporal archivot.writeInt(clave); archivot.writeUTF(nombre); archivot.writeFloat(estatura); }} catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; // cerrando archivos archivo.close();

archivot.close(); // eliminando original renombrando temporal File file1 = new File("c:\\archivo1.dat"); File file2 = new File("c:\\temp.dat"); if (file1.exists()) {file1.delete();}; file2.renameTo(file1); // avisando out.println("ESTATURAS SUMADAS "); }; // construyendo forma dinamica out.println("<FORM ACTION=prog22.jsp METHOD=post>"); out.println("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=EST+5><BR>"); out.println("</FORM>"); %>

TAREAS PROGRAMACION JAVA JSP 1.- construir un archivo que traiga matricula, nombre, calif1, calif2, calif3 y promedio, cargar unos 5 renglones de alumnos, no cargar promedio, el promedio lo deberan calcular con un programa.

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 11: EDICION DE REGISTROS JAVA JSP
Editar registros significa cambiar el contenido de algunos de los campos o columnas por nueva informacn o para corregir algun error de captura original o para agregar alguna columna que no existia por modificacin de la tabla o la base de datos. La solucion es similar a los temas anterior, es decir se ocupan los dos archivos el original y el temporal y ya sea que se modifique una sola clave o se modifiquen todos los registros, el ejemplo que se construye va mostrando los registros del archivo y pregunta y modifica o edita el registro pedido. Prog23.jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;int claveb=0;String nombre=""; float estatura=0; // creando un objeto de tipo archivo DataInputStream archivo = null; DataOutputStream archivot = null; // codigo de busqueda String temp1=request.getParameter("BUSCAR"); if(temp1==null)temp1=" "; if(temp1.compareTo("buscar")==0) { // capturando clave a buscar claveb=Integer.parseInt(request.getParameter("CLAVEB")); try { // abriendo archivo archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); if (claveb==clave){ out.println("<FORM ACTION=prog23.jsp METHOD=post>");

out.println("CLAVE :<INPUT TYPE=TEXT NAME=CLAVE value="+clave+"><BR>"); out.println("<INPUT TYPE=HIDDEN NAME=CLAVEB value="+claveb+"><BR>"); out.println("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE value=\""+nombre+"\"><BR>"); out.println("ESTATURA :<INPUT TYPE=TEXT NAME=ESTATURA value="+estatura+"><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=EDITAR VALUE=editar><BR>"); out.println("</FORM>"); } } } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; archivo.close(); }; // codigo de edicion String temp2=request.getParameter("EDITAR"); if(temp2==null)temp2=" "; if(temp2.compareTo("editar")==0){ try { // abriendo archivos archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); archivot = new DataOutputStream(new FileOutputStream("c:\\temp.dat",true)); // cargando clave de edicion claveb=Integer.parseInt(request.getParameter("CLAVEB")); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); if (claveb != clave){ archivot.writeInt(clave); archivot.writeUTF(nombre); archivot.writeFloat(estatura); } else{ // capturando y grabando nuevos datos clave=Integer.parseInt(request.getParameter("CLAVE")); nombre=request.getParameter("NOMBRE"); estatura=Float.parseFloat(request.getParameter("ESTATURA")); archivot.writeInt(clave); archivot.writeUTF(nombre); archivot.writeFloat(estatura); }; }} catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; // cerrando archivos archivo.close(); archivot.close(); // eliminando original renombrando temporal File file1 = new File("c:\\archivo1.dat"); File file2 = new File("c:\\temp.dat"); if (file1.exists()) {file1.delete();}; file2.renameTo(file1); // avisando out.println("REGISTRO EDITADO"); };

// construyendo forma dinamica out.println("<FORM ACTION=prog23.jsp METHOD=post>"); out.println("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>"); out.println("</FORM>"); %>

TAREAS PROGRAMACION JAVA JSP 1.- construir programas de edicin para sus archivos

UNIDAD 5: JAVA JSP REGISTROS Y ARCHIVOS SECUENCIALES


TEMA 12: GRAFICOS JAVA JSP
Campos de graficos o de imagenes se han convertido en elementos importantes de cualquier base de datos. Para manejar este elemento: 1.- Es un metodo sencillo, primero subir las imagenes ( de preferencia jpg) con un ftp normal a tusitio y al folder principal de el servidor, en este caso ROOT ( para el lws). 2.- Usar el tag <img src> de html EN EL PROGRAMA jsp. 3.- agregar un campo de string llamado fotourl o foto o url a el registro en el archivo secuencial y cargarlo con el nombre de la imagen por ejemplo pato.jpg, MUCHO OJO este paso exije que se tengan que reconstruir todos los programas anteriores para incluir este nuevo campo y volver a crear los archivos de ejemplos. prog24.jsp
<%@ page import="java.io.*" %> <% // declarando int clave=0;int claveb=0;String nombre=""; float estatura=0;String foto=""; // creando un objeto de tipo archivo DataInputStream archivo = null; if(request.getParameter("BUSCAR") != null) { // construyendo 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><th>FOTOGRAFIA</TH></TR>"); // capturando clave a buscar claveb=Integer.parseInt(request.getParameter("CLAVEB"));

try { // abriendo archivo archivo = new DataInputStream(new FileInputStream("c:\\archivo1.dat")); while(true){ clave=archivo.readInt(); nombre=archivo.readUTF(); estatura=archivo.readFloat(); foto=archivo.readUTF(); if (claveb==clave){ out.println("<TR>"); out.println("<TD>"+clave+"</TD>"); out.println("<TD>"+nombre+"</TD>"); out.println("<TD>"+estatura+"</TD>"); out.println("<TD><img src=http:\\\\localhost\\progs\\"+foto+"></TD>"); out.println("</TR>"); } } } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {}; archivo.close(); }; // construyendo forma dinamica out.println("<FORM ACTION=prog24.jsp METHOD=post>"); out.println("CLAVE BUSCAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>"); out.println("</FORM>"); %>

nota: Observar que en img src debe ir la direccin internet del servidor por ejemplo http:\\misitio.com\pato.jpg, sin embargo en el programa se esta usando http:\\\\localhost\\pato.jpg, en cuanto a localhost se puede sustituir por el dominio ejemplo laurosoto.com, y en cuanto porque se usaron cuatro \\ recordar que en java dentro de una string las secuencias de escape ( \a, \r etc) van precedidas del simbolo \, por esa causa para mandar un \ a la pagina se tiene que usar la secuencia de escape y como la direccin incluia al principio y una diagonal \ al final se mandaron \\ y respectivamente. TAREAS PROGRAMACION JAVA JSP

CONSTRUIR UN SISTEMA COMPLETO QUE TENGA TODOS LOS PROCESOS VISTOS, PUEDEN SELECCIONAR, REFACCIONARIAS, JOYERIAS, VIDEOS, ETC.

Você também pode gostar