0% encontró este documento útil (0 votos)
73 vistas131 páginas

Tutorial de Java Server Pages (JSP)

Este documento presenta un tutorial sobre elementos básicos de Java Server Pages (JSP). Se compone de 10 unidades que cubren temas como variables, tipos de datos, instrucciones de control, arreglos, funciones, registros, archivos y bases de datos. El objetivo es enseñar conceptos y herramientas básicas de JSP para el desarrollo de aplicaciones web dinámicas.

Cargado por

Est Dleo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
73 vistas131 páginas

Tutorial de Java Server Pages (JSP)

Este documento presenta un tutorial sobre elementos básicos de Java Server Pages (JSP). Se compone de 10 unidades que cubren temas como variables, tipos de datos, instrucciones de control, arreglos, funciones, registros, archivos y bases de datos. El objetivo es enseñar conceptos y herramientas básicas de JSP para el desarrollo de aplicaciones web dinámicas.

Cargado por

Est Dleo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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 [Link] 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

de

BASE ALTURA

Proceso u Operacin

Variable(s) de
Salida

AREA = BASE *
ALTURA / 2

AREA

PROBLEMA 2.- CONVERTIR LA EDAD EN AOS DE UNA


PERSONA A MESES.
PROBLEMA 3.- CONVERTIR PESOS A DLARES.
PROBLEMA 4.- CALCULAR EL REA DE UN CIRCULO
CON LA FORMULA
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

Size/Format
8-bit
complement
16-bit
complement
32-bit
complement
64-bit
complement

Byte-length integer

short Short integer


int

Integer

long

Long integer

(real numbers)
Single-precision
float
point
double Double-precision

point
(other types)

floating
floating

two's
two's
two's
two's

32-bit IEEE 754


64-bit IEEE 754

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

A single character

false)
* tabla tomada de [Link] 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

//
public
public
//
public
public
//
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public

class

[Link] extends

[Link]

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 [Link]

Class Double
public final
[Link]
{

//
public
public
public
public
public
//
public
public
//
public
public
public
public
public
public
public
public
public
public
public
public
public
public
public

class

[Link]

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

[Link] extends

// Fields
public final static
public final static
public final static
public final static
public final static
// Constructors

float
float
float
float
float

[Link]

**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 [Link] extends [Link]
{
// 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 [Link] ;
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 [Link].*;
import [Link];
public class ejemplo1
{
public static void main(String args[])
{
double base =5;
double exponente=3;
double potencia =0;
potencia = [Link](base, exponente);
[Link]("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*[Link](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=[Link]();
zeta1=[Link]();
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 [Link]
extends [Link]
{ 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 [Link]

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 = [Link] ( (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 * [Link](x, (double)3) - [Link](x, (1/3.0)) + 4 *
[Link](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= [Link](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=[Link]([Link](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 = [Link]();
b.2) Objeto numerico a String
Float alfa = new Float(3.45);
String beta = new String( );
Beta = [Link]();
B.3) Objeto Numerico a Objeto Numerico

Integer alfa=new Integer(50);


Double beta=new Double(0);
beta = [Link]([Link]());
c.1) String to variable numerica
String alfa= new String(3.5);
double beta= 0;
beta= [Link](alfa);
c.2) String to Objeto Numerico
String alfa8=new String(50);
Double alfa9=new Double(0);
alfa9 = [Link](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: [Link]
<%
// declarando
int base=0,altura=0; double area=0;
if([Link]("OK") != null)
{
base = [Link]([Link]("BASE"));
altura = [Link]([Link]("ALTURA"));
area= base * altura / 2.0 ; };
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME LA BASE:<INPUT TYPE=TEXT NAME=BASE
value="+base+"><BR>");
[Link]("DAME LA ALTURA:<INPUT TYPE=TEXT NAME=ALTURA
value="+altura+"><BR>");
[Link]("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");

[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");


[Link]("</FORM>");
%>

corrida:

Solo grabarlo como [Link] (ojo con notepad y su


.txt), al folder web-inf luego ftp a tu sitio en
LUNARPAGES y llamarlo con
[Link]/tusitio/[Link]
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) [Link]
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
[Link]) 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
[Link]( 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

Eventos

Metod
os

OnClick
click

OnFocu
focus
s

value
enabled
checked
defaultcheck
ed
Control Radio.
Propiedad
Metod
Eventos
es
os
form
OnClick click

name

OnFocu
focus
s

value
enabled
checked

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

final

case

finally

catch float
char

for

class

goto &

int

strictfp
&&

interface
super

long
switch
synchroniz
native
ed
new
this
package
throw

private throws
protecte
transient
d

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

try
void
volatile
while

% indicates a keyword that is not currently used


%% indicates a keyword that was added for Java 2
[Link]

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:

ejemplos

de

instrucciones

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.

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

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 [Link](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([Link]("OK") != null)
{
sueldo = [Link]([Link]("SUELDO"));
if (sueldo >= 3000)
{ res="RICO"; }
else {res="POBRE"; };
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME SUELDO:<INPUT TYPE=TEXT NAME=SUELDO
value="+sueldo+"><BR>");
[Link]("EVALUACION:<INPUT TYPE=TEXT NAME=RES
value="+res+"><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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 ( [Link](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
!

NO
NEGACION

Ejemplo:
if ( (sueldo >100) && ( sexo=='m') ) etc, etc, etc.
Y recordar que para comparar strings usar;
if ( [Link](informatica) == 0 )
Notas:

Observar que cada condicin simple lleva sus propios


parentesis.
Si la variable es de tipo string el dato va entre
comillas(), pero si la variable es de tipo char el dato
va entre apostrofes(').
Para que el computador evale como CIERTA una
condicin compuesta que contiene el operador lgico
&&, las dos condiciones simples deben ser ciertas.
Para que el computador evale como CIERTA una
condicin compuesta que contiene el operador lgico
||, basta con que una de las condiciones simples sea
cierta.
La cantidad total de casos posibles cuando se unen
dos o mas condiciones simples esta dada por la
relacin
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([Link]("OK") != null)
{
//recordar que TEXTBOX contiene una string
letra=[Link]("LETRA").charAt(0);
switch(letra)
{case 'a':
[Link]("aguila ");
break;
case 'b': case 'B':
[Link]("baca ");
break;
case 'c':
[Link]("caballo ");
break;
default:
[Link]("no hay ");
};
// observar que se puede escribir direcatmente a la pagina dinamica
// esto es para los flojos
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME UNA LETRA:<INPUT TYPE=TEXT NAME=LETRA
value="+letra+"><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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:

[Link]
<%
// declarando
String municipio="";
if([Link]("OK") != null)
{
municipio =[Link]("MUNICIPIO");
[Link](municipio+" =");
if ([Link]("ENSENADA")==0) [Link]("TIBIO");
if ([Link]("TIJUANA")==0) [Link]("HELADO");
if ([Link]("MEXICALI")==0) [Link]("CALIENTE");
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<B>MUNICIPIOS</B>");
[Link]("<SELECT NAME=MUNICIPIO>");
[Link]("<OPTION>ENSENADA<OPTION>TECATE<OPTION>TIJUANA<OPTION>ME
XICALI");
[Link]("</SELECT>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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 [Link] 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([Link]("OK") != null)
{
m=[Link]("M");
n=[Link]("N");
f=[Link]("F");
try{
if ([Link]("on")==0) [Link]("masculino checado<br>");
}catch([Link] e){};
try{
if ([Link]("on")==0) [Link]("neutro checado<br>");
}catch([Link] e){};
try{
if ([Link]("on")==0) [Link]("femenino checado<br>");
}catch([Link] e){};
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<b>sexo:</b><br>");
[Link]("<input type=checkbox name=M checked>masculino<br>");
[Link]("<input type=checkbox name=F >femenino<br>");
[Link]("<input type=checkbox name=N checked>neutro<br>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</FORM>");
%>

Notas:
1. grabarlo y subirlo como prog5. jsp a tu sitio en
[Link]
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([Link]("OK") != null)
{
sexo=[Link]("SEXO");
carrera=[Link]("CARRERA");
[Link]("carrera="+carrera+"<br>");
[Link]("sexo="+sexo+"<br>");
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("sexo:<br>");
[Link]("<input
type=radio
name=SEXO
value=masculino
checked>masculino<br>");
[Link]("<input
type=radio
name=SEXO
value=femenino>femenino<br>");
[Link]("<input type=radio name=SEXO value=neutro>neutro<br>");
[Link]("carrera:<br>");
[Link]("<input
type=radio
name=CARRERA
value=sistemas
checked>sistemas<br>");
[Link]("<input
type=radio
name=CARRERA
value=informatica>informatica<br>");
[Link]("<input
type=radio
name=CARRERA
value=medicina>medicina<br>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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 [Link], 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++)

{ [Link]("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 };

>=

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 [Link] y activarlo desde ah.
<%! int x; %>
<%
x=1;
while (x<=10)
{
[Link]("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);
[Link] y ejecutarlo directamente( si quieren).
<%! int x; %>
<%
x=1;
do {
[Link]("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
[Link];) 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=[Link]("INSERTAR");
if(temp1==null)temp1=" ";
if([Link]("insertar")==0){
if(ren < 5){
edad[ren]=[Link]([Link]("EDAD"));
ren=ren+1;};
if(ren==5){[Link]("ARREGLO LLENO");};
};
if([Link]("SUMAR") != null )
{
// operaciones
for(ren=0; ren<=4; ren++) edad[ren]=edad[ren]* 12;
// DESPLEGANDO EN OBJETO LISTA DE HMTL CON BULLETS FOR NORMAL
[Link]("EDADES EN MESES");
[Link]("<UL>");
for(ren=0;ren<=4;ren++)
{[Link]("<LI>"+edad[ren]); };
[Link]("</UL>");
// DESPLEGANDO EN OBJETO LISTA DE HMTL FOR NORMAL
[Link]("<OL>");
for(ren=0; ren<=4; ren++)
{ [Link]("<LI>"+edad[ren]); };
[Link]("</OL>");
// DESPLEGANDO USANDO OBJETO TABLE DE HMTL FOR NORMAL
[Link]("<table border=2><tr><th>EDADES EN MESES</th></tr>");
for(ren=0; ren<=4; ren++)
{ [Link]("<tr><td>"+edad[ren]+"</td></tr>"); };
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME EDAD:"+ren+"<INPUT TYPE=TEXT NAME=EDAD>");
[Link]("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=insertar
><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=sumar><BR>");
[Link]("</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=[Link]("INSERTAR");
if(temp1==null)temp1=" ";
if([Link]("insertar")==0){
if(col < 3){
edad[ren][col]=[Link]([Link]("EDAD"));
col=col+1;};
if(col == 3){col=0;ren=ren+1;};
if(ren==2) {[Link]("TABLA LLENA");};
};
if([Link]("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
[Link]("<table border=2><tr><th>EDAD EN MESES</th></tr>");
for(ren=0; ren<=1; ren++)
{ [Link]("<tr>");
for(col=0;col<=2;col++)
{ [Link]("<td>"+edad[ren][col]+"</td>"); };
[Link]("</tr>"); };
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME
EDAD:"+ren+","+col+"<INPUT
TYPE=TEXT
NAME=EDAD>");
[Link]("<INPUT
TYPE=SUBMIT
NAME=INSERTAR
VALUE=insertar
><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=MESES VALUE=meses><BR>");
[Link]("</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.

[Link]
<%!
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([Link]("OK") != null)
{
base = [Link]([Link]("BASE"));
altura = [Link]([Link]("ALTURA"));
// llamando o invocando procedimiento uno
proc1();
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME
LA
BASE:<INPUT
TYPE=TEXT
NAME=BASE
value="+base+"><BR>");
[Link]("DAME
LA
ALTURA:<INPUT
TYPE=TEXT
NAME=ALTURA
value="+altura+"><BR>");
[Link]("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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; };
%>
[Link]
<%!
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([Link]("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
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("DAME
LA
BASE:<INPUT
TYPE=TEXT
NAME=BASE
value="+base+"><BR>");
[Link]("DAME
LA
ALTURA:<INPUT
TYPE=TEXT
NAME=ALTURA
value="+altura+"><BR>");
[Link]("AREA:<INPUT TYPE=TEXT NAME=AREA value="+area+"><BR>");

[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");


[Link]("</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([Link]("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
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("RESULTADO:<INPUT TYPE=TEXT NAME=RESULTADO
value="+res+"><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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([Link]("OK") != null)
{
int eta[]={3,4,5};
decl1(eta);
for(r=0;r<=2;r++)
[Link]("eta="+eta[r]+"<br>");
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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(){
[Link]="pepe el toro";
[Link]=18; };
void desplegar(){

de incluir
forma de
serie de
mas facil

[Link]([Link]);
[Link]([Link]);
};
} // termina la clase

Programa [Link];
<%!
static class alumno{
static String nombre=" ";
static int edad=0;
void alumno(){};
static void inicializar(){
[Link]="pepe el toro";
[Link]=18; };
};
%>
<%
if([Link]("OK") != null)
{
[Link]();
[Link]([Link]);
[Link]([Link]);
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<INPUT TYPE=SUBMIT NAME=OK VALUE=evento1 ><BR>");
[Link]("</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.
[Link]
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:
[Link]
<%@ page import="[Link].*" %>
<%
// declarando
int clave=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataOutputStream archivo = null;
if([Link]("INSERTAR") != null)
{
// capturando datos
clave=[Link]([Link]("CLAVE"));
nombre=[Link]("NOMBRE");
estatura=[Link]([Link]("ESTATURA"));
try {
// creando archivo en append
archivo
=
new
DataOutputStream(new
FileOutputStream("c:\\[Link]",true));
// grabando al archivo
[Link](clave);
[Link](nombre);
[Link](estatura);
[Link](clave+": registro grabado");
}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando el archivo
[Link]();
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("CLAVE :<INPUT TYPE=TEXT NAME=CLAVE><BR>");
[Link]("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE><BR>");
[Link]("ESTATURA :<INPUT TYPE=TEXT NAME=ESTATURA><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=INSERTAR VALUE=GRABAR ><BR>");
[Link]("</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
[Link]
TAREAS PROGRAMACION JAVA JSP
1.- crear y cargar un [Link] que contenga
registros de empleados.

2.- crear y cargar un [Link] 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;
[Link]:
<%@ page import="[Link].*" %>
<%
// declarando
int clave=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if([Link]("LECTURA") != null)
{
// construyendo una tabla html
[Link]("<HTML><TABLE Border=10 CellPadding=5><TR>");
[Link]("<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:\\[Link]"));
// ciclo de lectura del archivo
while(true){
[Link]("<TR>");
clave=[Link]();
[Link]("<TD>"+clave+"</TD>");
nombre=[Link]();
[Link]("<TD>"+nombre+"</TD>");
estatura=[Link]();
[Link]("<TD>"+estatura+"</TD>");
[Link]("</TR>");
} }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
[Link]();
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<INPUT TYPE=SUBMIT NAME=LECTURA VALUE=leer ><BR>");
[Link]("</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 [Link]:
<%@ page import="[Link].*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if([Link]("BUSCAR") != null)
{
// construyendo tabla html
[Link]("<HTML><TABLE Border=10 CellPadding=5><TR>");
[Link]("<th
bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>");
// capturando clave a buscar
claveb=[Link]([Link]("CLAVEB"));
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\[Link]"));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
if (claveb==clave){
[Link]("<TR>");
[Link]("<TD>"+clave+"</TD>");
[Link]("<TD>"+nombre+"</TD>");
[Link]("<TD>"+estatura+"</TD>");
[Link]("</TR>");
} } }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
[Link]();
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("CLAVE BUSCAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>");
[Link]("</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="[Link].*" %>
<%
// declarando
int clave=0;float est=0;String nombre=""; float estatura=0;
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if([Link]("FILTRAR") != null)
{
// construyendo tabla html
[Link]("<HTML><TABLE Border=10 CellPadding=5><TR>");
[Link]("<th bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th bgcolor=Red>ESTATURA</th></TR>");
// capturando filtro
est=[Link]([Link]("ESTATURA"));
try {
// abriendo archivo
archivo = new DataInputStream(new
FileInputStream("c:\\[Link]"));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
if (estatura>=est){
[Link]("<TR>");
[Link]("<TD>"+clave+"</TD>");
[Link]("<TD>"+nombre+"</TD>");
[Link]("<TD>"+estatura+"</TD>");
[Link]("</TR>");
} } }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
[Link]();

};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("ESTATURA >=:<INPUT TYPE=TEXT NAME=ESTATURA><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=FILTRAR VALUE=Filtrar><BR>");
[Link]("</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="[Link].*" %>
<%
// 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([Link]("ELIMINAR") != null)
{
// capturando clave a eliminar
claveb=[Link]([Link]("CLAVEB"));
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\[Link]"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\[Link]",true));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
if (claveb!=clave){
[Link](clave);
[Link](nombre);
[Link](estatura);
}}}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando archivos
[Link]();
[Link]();
// eliminando original renombrando temporal
File file1 = new File("c:\\[Link]");
File file2 = new File("c:\\[Link]");
if ([Link]()) {[Link]();};

[Link](file1);
// avisando
[Link]("REGISTRO ELIMINADO");
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=ELIMINAR VALUE=Eliminar><BR>");
[Link]("</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.
[Link]
<%@ page import="[Link].*" %>
<%
// 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([Link]("SUMAR") != null)
{
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\[Link]"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\[Link]",true));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
// sumando
estatura = estatura + 5;
// grabando a temporal
[Link](clave);
[Link](nombre);
[Link](estatura);
}}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando archivos
[Link]();

[Link]();
// eliminando original renombrando temporal
File file1 = new File("c:\\[Link]");
File file2 = new File("c:\\[Link]");
if ([Link]()) {[Link]();};
[Link](file1);
// avisando
[Link]("ESTATURAS SUMADAS ");
};
// construyendo forma dinamica
[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("<INPUT TYPE=SUBMIT NAME=SUMAR VALUE=EST+5><BR>");
[Link]("</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.
[Link]
<%@ page import="[Link].*" %>
<%
// 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=[Link]("BUSCAR");
if(temp1==null)temp1=" ";
if([Link]("buscar")==0)
{
// capturando clave a buscar
claveb=[Link]([Link]("CLAVEB"));
try {
// abriendo archivo
archivo
=
new
DataInputStream(new
FileInputStream("c:\\[Link]"));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
if (claveb==clave){
[Link]("<FORM ACTION=[Link] METHOD=post>");

[Link]("CLAVE
:<INPUT
TYPE=TEXT
NAME=CLAVE
value="+clave+"><BR>");
[Link]("<INPUT TYPE=HIDDEN NAME=CLAVEB value="+claveb+"><BR>");
[Link]("NOMBRE
:<INPUT
TYPE=TEXT
NAME=NOMBRE
value=\""+nombre+"\"><BR>");
[Link]("ESTATURA
:<INPUT
TYPE=TEXT
NAME=ESTATURA
value="+estatura+"><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=EDITAR VALUE=editar><BR>");
[Link]("</FORM>");
}
} }
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
[Link]();
};
// codigo de edicion
String temp2=[Link]("EDITAR");
if(temp2==null)temp2=" ";
if([Link]("editar")==0){
try {
// abriendo archivos
archivo
=
new
DataInputStream(new
FileInputStream("c:\\[Link]"));
archivot
=
new
DataOutputStream(new
FileOutputStream("c:\\[Link]",true));
// cargando clave de edicion
claveb=[Link]([Link]("CLAVEB"));
while(true){
clave=[Link]();
nombre=[Link]();
estatura=[Link]();
if (claveb != clave){
[Link](clave);
[Link](nombre);
[Link](estatura);
}
else{
// capturando y grabando nuevos datos
clave=[Link]([Link]("CLAVE"));
nombre=[Link]("NOMBRE");
estatura=[Link]([Link]("ESTATURA"));
[Link](clave);
[Link](nombre);
[Link](estatura);
};
}}
catch(FileNotFoundException fnfe) {}
catch (IOException ioe) {};
// cerrando archivos
[Link]();
[Link]();
// eliminando original renombrando temporal
File file1 = new File("c:\\[Link]");
File file2 = new File("c:\\[Link]");
if ([Link]()) {[Link]();};
[Link](file1);
// avisando
[Link]("REGISTRO EDITADO");
};

// construyendo forma dinamica


[Link]("<FORM ACTION=[Link] METHOD=post>");
[Link]("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");
[Link]("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=buscar><BR>");
[Link]("</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 [Link],
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.
[Link]
<%@ page import="[Link].*" %>
<%
// declarando
int clave=0;int claveb=0;String nombre=""; float estatura=0;String
foto="";
// creando un objeto de tipo archivo
DataInputStream archivo = null;
if([Link]("BUSCAR") != null)
{
// construyendo tabla html
[Link]("<HTML><TABLE Border=10 CellPadding=5><TR>");
[Link]("<th
bgcolor=Green>CLAVE</th><th
bgcolor=White>NOMBRE</th><th
bgcolor=Red>ESTATURA</th><th>FOTOGRAFIA</TH></TR>");
// capturando clave a buscar
claveb=[Link]([Link]("CLAVEB"));

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

nota:
Observar que en img src debe ir la direccin internet
del
servidor
por
ejemplo
http:\\[Link]\[Link], sin embargo en el
programa
se
esta
usando
http:\\\\localhost\\[Link], en cuanto a localhost
se puede sustituir por el dominio ejemplo
[Link], 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.

También podría gustarte