Beruflich Dokumente
Kultur Dokumente
11
III
IV
Introduccin a Servidores: Apache y Tomcat 3.1. Manejadores de base de datos 3.2 Repaso del lenguaje SQL 4. PHP 4.1. Repaso de JAVA 4.2. JSP 3.
M. en C. Gabriela de Jess Lpez Ruiz 22
Segundo Parcial
33
Introduccin a Servidores
44
55
New Atlantas ServletExec. ServletExec es un rpido motor de servlets y pginas JSP que puede ser conectado dentro de los servidores web ms populares para Solaris, Windows, MacOS, HPUX y Linux. Podemos descargarlo y usarlo de forma gratuita, pero muchas de sus caractersticas avanzadas y utilidades de administracin estarn desactivadas hasta que compremos una licencia.
M. en C. Gabriela de Jess Lpez Ruiz 66
Plataformas (actualidad): Plataformas (en perparacin): UNIX (todas las variantes) OS/390 Win32 (NT/W95/W98/W2000) AS/400 QNX Mac (WebTen) OS/2 BeOS Servidores: Apache (UNIX,Win32) CGI fhttpd ISAPI (IIS, Zeus) NSAPI (Netscape iPlanet) Java servlet AOLServer Roxen Servidores (en preparacin): Apache 2.0 WSAPI (O'Reilly WebSite) phttpd thttpd
77
88
99
Contenido
SQL
Diseo de una base de datos Administracin Insertar, actualizar y borrar datos Consultas, relaciones Modificar la base de datos
1010
1111
MODELO DE DATOS
Formalismo matemtico que permite describir la estructura de una BD. Clasificacin de modelos de datos: Conceptuales (Alto Nivel): permite describir la Base de Datos como la percibe el usuario (ER). De implementacin (de representacin):
Relacional. Jerrquico. En red.
1212
ESQUEMA
ESQUEMA Descripcin de una BD utilizando modelo de datos. INSTANCIA Contenido de una BD en un instante determinado
1313
MODELO ENTIDAD-RELACION
ENTIDAD:
Entidad particular: Algo del mundo real que tiene existencia independiente. Entidad: Descripcin de un conjunto de entidades particulares que comparten la misma estructura.
ATRIBUTO:
Informacin o propiedad que describe una entidad. Tipos de atributos:
Simples: no se pueden descomponer, describen un solo valor. Compuestos: se descomponen en varios atributos. Monovaluados: para cada entidad solo hay un atributo. Multivaluados: para cada entidad hay varios atributos. Derivados: su valor se puede deducir de algn atributo almacenado. Clave: tienen un valor diferente para cada entidad particular
1414
MODELO ENTIDAD-RELACION
Dominio de un atributo:
Conjunto de valores que puede tomar una entidad particular.
RELACION:
Asociacin entre varias entidades. Grado de una relacin: S R E1x...xEn entonces grado(R)=N. Relacin recursiva: relacin de una entidad consigo misma.
1616
SQL
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos.
1717
El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
1818
Comandos
Existen dos tipos de comandos SQL: Los DLL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
M. en C. Gabriela de Jess Lpez Ruiz 1919
Comandos DLL
Comando
Descripcin
Utilizado para crear nuevas tablas, campos e ndices Empleado para eliminar tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.
Comandos DML
Comando SELECT INSERT UPDATE DELETE Descripcin Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos
M. en C. Gabriela de Jess Lpez Ruiz gaby_dlib@yahoo.com.mx
Clusulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.
Clusula
FROM WHERE GROUP BY HAVING ORDER BY
Descripcin
Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico
M. en C. Gabriela de Jess Lpez Ruiz gaby_dlib@yahoo.com.mx
Operadores lgicos
Operador AND Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.
OR
NOT
Operadores de Comparacin
Operador < > <> <= >= =
Uso Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que
Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos
Funciones de Agregado
Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.
Funcin AVG COUNT SUM MAX MIN Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado
Consultas de Seleccin
Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto ResultSet. Este conjunto de registros es modificable.
2626
Consultas Bsicas
La sintaxis bsica de una consulta de seleccin es la siguiente: SELECT Campos FROM Tabla; En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT nombre, cct_domicilio FROM CCT; Esta consulta devuelve un Conjunto de Resultados (ResultSet) con el campo nombre y cct_domicilio de la tabla CCT.
M. en C. Gabriela de Jess Lpez Ruiz 2727
Devolver Literales
En determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de seleccin, por ejemplo, supongamos que tenemos una tabla de inmuebles y deseamos recuperar la clave y domicilio, podramos realizar la siguiente consulta:
SELECT cveinm,'Domicilio :', domicilio FROM inmuebles WHERE CVEINM='090001O';
2828
SELECT
cveinm,'Domicilio', domicilio, telefono
FROM
inmuebles
WHERE
cveinm='090001O'
ORDER BY
domicilio Esta consulta devuelve los campos cveinm, domicilio, Telefono de la tabla INMUEBLES ordenados por el campo Domicilio.
2929
FROM
inmuebles
WHERE
cveinm='090001O'
ORDER BY
Domicilio, telefono
Incluso se puede especificar el orden de los registros: ascendente mediante la clusula ASC (se toma este valor por defecto) descendente (DESC).
3030
Descripcin Devuelve todos los campos de la tabla Devuelve un determinado nmero de registros de la tabla Omite los registros cuyos campos seleccionados coincidan totalmente
Alias
En determinadas circunstancias es necesario asignar un nombre a alguna columna determinada de un conjunto devuelto, otras veces por simple capricho o por otras circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada. SELECT DISTINCTROW Apellido AS Empleado FROM Empleados;
M. en C. Gabriela de Jess Lpez Ruiz 3232
Intervalos de Valores
Para indicar que deseamos recuperar los registros segn el intervalo de valores de un campo emplearemos el operador Between cuya sintaxis es: campo [Not] Between valor1 And valor2 (la condicin Not es opcional)
En este caso la consulta devolvera los registros que contengan en "campo" un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin Not devolver aquellos valores no incluidos en el intervalo. SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999;
M. en C. Gabriela de Jess Lpez Ruiz 3333
El Operador Like
Se utiliza para comparar una expresin de cadena con un modelo en una expresin SQL. Su sintaxis es: expresin Like modelo En donde expresin es una cadena modelo o campo contra el que se compara expresin. Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. Por modelo puede especificar un valor completo (Ana Mara), o se pueden utilizar caracteres comodn como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*).
M. en C. Gabriela de Jess Lpez Ruiz 3434
El Operador In
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. Su sintaxis es: expresin [Not] In(valor1, valor2, . . .) SELECT * FROM Pedidos WHERE Provincia In ('Madrid', 'Barcelona', 'Sevilla');
3535
La clusula WHERE
La clusula WHERE puede usarse para determinar qu registros de las tablas enumeradas en la clusula FROM aparecern en los resultados de la instruccin SELECT. Depus de escribir esta clusula se deben especificar las condiciones expuestas en los dos primeros apartados de este captulo.
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;
3636
La clusula WHERE
SELECT Apellidos, Salario FROM Empleados WHERE Salario > 21000;
3737
La clusula WHERE
SELECT Apellidos, Salario FROM Empl WHERE Apellidos Between 'Lon' And 'Tol';
SELECT Id_Pedido, Fecha_Pedido FROM Pedidos WHERE Fecha_Pedido Between #1-1-94# And #30-6-94#;
SELECT Apellidos, Nombre, Ciudad FROM Empleados WHERE Ciudad In ('Sevilla', 'Los Angeles', 'Barcelona');
3838
La clusula GROUP BY Combina los registros con valores idnticos, en la lista de campos especificados, en un nico registro. Para cada registro se crea un valor sumario si se incluye una funcin SQL agregada, como por ejemplo Sum o Count, en la instruccin SELECT. Su sintaxis es:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo
M. en C. Gabriela de Jess Lpez Ruiz 3939
GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de las funciones SQL agregadas. Se utiliza la clusula WHERE para excluir aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los registros una vez agrupados.
4040
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la clusula HAVING. HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.
SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*;
M. en C. Gabriela de Jess Lpez Ruiz 4141
Consultas de Actualizacin
Las consultas de actualizacin son aquellas que no devuelven ningn registro, son las encargadas de acciones como aadir y borrar y modificar registros. DELETE Crea una consulta de eliminacin que elimina los registros de una o ms de las tablas listadas en la clusula FROM que satisfagan la clusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algn campo en concreto. Su sintaxis es: DELETE FROM Tabla WHERE criterio
M. en C. Gabriela de Jess Lpez Ruiz 4242
Consultas de Actualizacin
INSERT INTO Agrega un registro en una tabla. Se la conoce como una consulta de datos aadidos. Esta consulta puede ser de dos tipos: Insertar un nico registro Insertar en una tabla los registros contenidos en otra tabla. Insertar un nico Registro En este caso la sintaxis es la siguiente: INSERT INTO Tabla (campo1, campo2, .., campoN)VALUES (valor1, valor2, ..., valorN)
4343
Consultas de Actualizacin
Para seleccionar registros e insertarlos en una tabla nueva En este caso la sintaxis es la siguiente: SELECT campo1, campo2, ..., campoN INTO nuevatabla FROM tablaorigen [WHERE criterios]
Insertar Registros de otra Tabla En este caso la sintaxis es: INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN FROM TablaOrigen
4444
Consultas de Actualizacin
Crea una consulta de actualizacin que cambia los valores de los campos de una tabla especificada basndose en un criterio especfico. Su sintaxis es: UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN WHERE Criterio;
4545
Tipos de datos
Tipo de Datos BINARY BIT BYTE COUNTER CURRENCY DATETIME SINGLE Longitud 1 byte 1 byte 1 byte 4 bytes 8 bytes 8 bytes 4 bytes Descripcin Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. Valores Si/No True/False Un valor entero entre 0 y 255. Un nmero incrementado automticamente (de tipo Long) Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. Un valor de fecha u hora entre los aos 100 y 9999. Un valor en punto flotante de precisin simple con un rango de -3.402823*1038a -1.401298*10-45 para valores negativos, 1.401298*10-45a 3.402823*1038para valores positivos, y 0.
Subconsultas
Una subconsulta es una instruccin SELECT anidada dentro de una instruccin SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta. Puede utilizar tres formas de sintaxis para crear una subconsulta: comparacin [ANY | ALL | SOME] (instruccin sql) expresin [NOT] IN (instruccin sql) [NOT] EXISTS (instruccin sql)
M. en C. Gabriela de Jess Lpez Ruiz 4747
En donde: tb1, tb2 Son los nombres de las tablas desde las que se combinan los registros. campo1, campo2 Son los nombres de los campos que se combinan. Si no son numricos, los campos deben ser del mismo tipo de datos y contener el mismo tipo de datos, pero no tienen que tener el mismo nombre. comp Es cualquier operador de comparacin relacional : =, <, >, <=, >=, o <>.
4848
5050
Consultas de Autocombinacin
La autocombinacin se utiliza para unir una tabla consigo misma, comparando valores de dos columnas con el mismo tipo de datos. La sintaxis en la siguiente: SELECT alias1.columna, alias2.columna, ... FROM tabla1 as alias1, tabla2 as alias2 WHERE alias1.columna = alias2.columna AND otras condiciones Por ejemplo, para visualizar el nmero, nombre y puesto de cada empleado, junto con el nmero, nombre y puesto del supervisor de cada uno de ellos se utilizara la siguiente sentencia: SELECT t.num_emp, t.nombre, t.puesto, t.num_sup,s.nombre, s.puesto FROM empleados AS t, empleados AS s WHERE t.num_sup = s.num_emp
5151
Es el nombre de la tabla que se va a crear. Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo. Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos) Es el tamao del campo slo se aplica para campos de tipo texto.
ndice1 Es una clusula CONSTRAINT que define el tipo de indice a ndice2 crear. Esta clusula en opcional. Es una clusula CONSTRAINT que define el tipo de indice ndice multicampos a crear. Un ndice multi campo es aquel que multicam est indexado por el contenido de varios campos. Esta pos clusula en opcional.
M. en C. Gabriela de Jess Lpez Ruiz gaby_dlib@yahoo.com.mx
Tipos de datos
Tipo de Datos Longitud Descripcin Un valor en punto flotante de doble precisin con un rango de -1.79769313486232*10308a -4.94065645841247*10-324para valores negativos, 4.94065645841247*10-324a 1.79769313486232*10308para valores positivos, y 0. Un entero corto entre -32,768 y 32,767. Un entero largo entre -2,147,483,648 y 2,147,483,647.
DOUBLE
8 bytes
2 bytes 4 bytes
1 byte por De cero a un mximo de 1.2 gigabytes. carcter Segn se De cero 1 gigabyte. Utilizado para objetos OLE. necesite 1 byte por De cero a 255 caracteres. caracter
PHP
5454
t i v e SP Hv e r HP a g e s e x t P r e p r o er P: ypert
Software propietario
l l l
Free Software
l l
5555
Caractersticas de PHP
l l l l l
Lenguaje ms fcil y potente Ms rpido que ASP Integracin perfecta con 8 servidores HTTP Acceso a 20 tipos de Bases de Datos Diseo modular de fcil ampliacin Licencia abierta
M. en C. Gabriela de Jess Lpez Ruiz 5656
Historia y Desarrolladores
Fechas Inicio del desarrollo en otoo de 1994 PHP Versin 1 en primavera 1995 PHP Versin 2 1995-1997 PHP Versin 3 1997-2000 PHP Versin 4 en el segundo trimestre de 2000 Equipo de Desarrollo (195 personas) Zeev Suraski y Andi Gutmans (Israel) Shane Caraveo (Florida) Stig Bakken (Norway) Andrei Zmievski (Lincoln, Nebraska) Sascha M. en C. Gabriela de Jess Schumann (Dortmund,
Lpez Ruiz
5757
Estadsticas de uso
5858
Estadsticas de uso
3,314,634 Dominios, 637,746 Direcciones IP 19,823,296 Dominios analizados PHP instalado en el 16.7% de todos los dominios 1,322,329 Servidores Apache analizados 429,589 (32.49%) PHP 247,642 (18.73%) Frontpage 133,414 (10.09%) mod_perl 111,576 (8.44%) mod_ssl 78,030 (5.90%) OpenSSL 46,404 (3.51%) ApacheJServ
5959
Plataformas soportadas
Plataformas (actualidad): Plataformas (en perparacin): UNIX (todas las variantes) OS/390 Win32 (NT/W95/W98/W2000) AS/400 QNX Mac (WebTen) OS/2 BeOS Servidores: Apache (UNIX,Win32) CGI fhttpd ISAPI (IIS, Zeus) NSAPI (Netscape iPlanet) Java servlet AOLServer Roxen Servidores (en preparacin): Apache 2.0 WSAPI (O'Reilly WebSite) phttpd thttpd
6060
Otros Adabas D Empress IBM DB2 Informix Ingres Interbase Frontbase mSQL Direct MS-SQL MySQL ODBC Oracle (OCI7,OCI8) PostgreSQL Raima Velocis Solid Sybase
6161
PHP
El lenguaje PHP es un lenguaje de programacin de estilo clsico, es decir, es un lenguaje de programacin con variables, sentencias condicionales, bucles, funciones. Observar: Que PHP no es un lenguaje de marcas como podra ser HTML, XML o WML. Est mas cercano a JavaScript o a C.
6262
PHP
A diferencia de JavaScript que se ejecuta en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podra ser una base de datos.
Haga clic para modificar el estilo de texto del El programa PHP es ejecutado Segundo nivel en el servidor y el resultado Tercer nivel enviado al navegador. El resultado es Cuarto nivel normalmente una pgina HTML pero igualmente podra ser una Quinto nivel
pagina WML.
6363
PHP
Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, pero sin embargo para que sus pginas PHP funcionen, el servidor donde estn alojadas debe soportar PHP. La ventaja que tiene PHP sobre otros lenguajes de programacin que se ejecutan en el servidor (como podran ser los script CGI Perl), es que nos permite intercalar las sentencias PHP en las paginas HTML.
6464
PHP
6565
PHP
6666
PHP - Variables
Una variable es un contenedor de informacin, en el que podemos meter nmeros enteros, nmeros decimales, caracteres ... el contenido de las variables se puede leer y se puede cambiar durante la ejecucin de una pgina PHP (antes de que lo vea el cliente). En PHP todas las variables comienzan con el smbolo de peso $ y no es necesario definir una variable antes de usarla. Tampoco tienen tipos, es decir que una misma variable puede contener un nmero y luego puede contener caracteres.
6767
6868
6969
PHP Aritmticos
Los operadores de PHP son muy parecidos a los de C y JavaScript. Estos son los operadores que se pueden aplicar a las variables y constantes numricas.
7070
7171
PHP Comparacin
Los operadores de comparacin son usados para comparar valores y as poder tomar decisiones.
7272
7373
7474
7575
PHP Condicionales
Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condicin. Las ms frecuentes son la instruccin if y la instruccin switch. <?php if (condicin) { Sentencias a ejecutar cuando la condicin es cierta. } else { Sentencias a ejecutar cuando la condicin es falsa. } ?>
if
e -
se l
7676
PHP Condicionales
7777
Delimitadores
Archivo .php
<? echo 'Primer mtodo de delimitar cdigo PHP'; ? > <?php echo 'Segundo mtodo, el ms usado'; ?> <script language="php"> echo 'Algunos editores (como el FrontPage) Slo entienden este mtodo'; </script> <% echo 'Mtodo de compatibilidad con ASP'; %>
7878
Delimitadores. Ejemplo.
<%@ Language=VBScript %> <html> <body> <%IF Hour(time)>20 OR Hour(time)<4 THEN%> Buenas noches. <%ELSE%> Buenos das. <%END IF%> </body> </html>
7979
Delimitadores. Ejemplo.
<html> <body> <?php if ( Hour(time)>20 || Hour(time)<4) { ?> Buenas noches. <?php } else { ?> Buenos das. <?php }?> </body> </html>
8080
Delimitadores. Ejemplo.
<html> <body> <?php if ( Hour(time)>20 || Hour(time)<4) { echo Buenas noches.; } else { echo Buenos das.; } ?> </body> M. en C. Gabriela de Jess </html> Lpez Ruiz
8181
Fin de lnea
) ;
8282
Comentarios
/* Comentarios estilo C. * Pueden extenderse durante varias lneas. */ // Comentarios estilo C++. Hasta fin de lnea. # Comentarios estilo Perl. Hasta fin de lnea.
8383
8484
Variables. Tipado.
8585
Variables. Tipado.
Conversin automtica.
PHP realiza conversiones automticas de tipo: $mivar = 123; echo $mivar; // Se convierte a string $mivar = 3; // Se convierte a entero $mivar = 2 + $mivar; // para realizar la suma
8686
Variables. Tipado.
Conversin explcita.
Operador cast:
$mivar = (string)123;
8787
Variables. mbito.
En el cuerpo de un fichero, las variables son GLOBALES al fichero y ficheros incluidos. En una funcin, son LOCALES a esa funcin. Dentro de una clase, slo pueden ser accedidas a travs del operador -> sobre el nombre del objeto.
8888
Referencias.
Se puede eliminar una referencia con la funcin unset(): $a = 1; $b = &$a; unset ($a); // Pero $b sigue valiendo 1
8989
Tipos de datos.
Enteros, en decimal, octal o hexadecimal. $MiVar = 123; Punto flotante. $MiVar = 1.3e4; Arrays. $MiVar[2] = 123; Strings. $MiVar = Cadena de texto\n; Objetos: $MiVar = new MiClase();
M. en C. Gabriela de Jess Lpez Ruiz 9090
9191
Tipos de datos. Arrays (2). Funcionan como vectores: $MiArray[nombre] = Homer; echo $MiArray[0]; // 1 echo $MiArray[nombre]; // Homer Y pueden tener ms de una dimensin: $MiOtroArray[1][pepe][4] = 3 dimensiones!;
M. en C. Gabriela de Jess Lpez Ruiz 9292
Tambin se pueden definir con el constructor array() : $OtroArrayMas = array( 1, hola, 5); $YOtroArray = array( 0 => 1, 1 => hola, 2 => 5, 3 => 8, nombre => Homer );
9393
Si se delim itan entre com illas dobles (), se expandir cualquier variable que haya dentro de la cadena. Adem s, se pueden incluir ciertas secuencias de escape, al igual que en C :
S ecu en cia S ig n ifica d o \n N ueva lnea \r R etorno de carro \t Tabulaci horizontal n \\ B arra invertida \$ S m bolo del dlar \" D obles com illas \[0-7]{1,3} C arcter en octal \x[0-9A-Fa-f]{1,2}C arcter en hexadecim al
9494
Comillas simples.
Si se delimitan entre comillas simples (), las variables no se expanden y adems las nicas secuencias de escape que se reconocen son \\ y \' (barra invertida y comillas simples.)
9595
9696
Constantes.
Las constantes se definen con la funcin define():
define(SALUDO, Hola, mundo!); echo La constante SALUDO vale . SALUDO; Las constantes en PHP se diferencian de las variables en que:
no llevan el smbolo del dlar delante. puede accederse a ellas desde cualquier parte del cdigo donde han sido definidas, sin restricciones de mbito como en las variables. no pueden ser redefinidas o borradas una vez definidas. slo pueden contener valores escalares, no vectores.
M. en C. Gabriela de Jess Lpez Ruiz 9797
Maysculas y minsculas.
Comportamiento funciones:
mixto
en
variables
En las variables, las maysculas y minsculas IMPORTAN. En los nombres de funciones y palabras reservadas, las maysculas NO IMPORTAN.
M. en C. Gabriela de Jess Lpez Ruiz 9898
Operadores aritmticos.
Operacin $a + $b $a - $b $a * $b $a / $b $a % $b
Resultado Suma de $a y $b. Diferencia entre $a y $b. Producto de $a y $b. Cociente de $a y $b. Resto de la operacin $a/$b.
9999
Auto-incremento y auto-decremento.
Resultado Incrementa $a en 1, y Pre-incremento devuelve $a (incrementado). Devuelve $a, y despus lo Post-incremento incrementa en 1. Decrementa $a en 1, y Pre-decremento despus lo devuelve. Devuelve $a, y despus lo Post-decremento incrementa en 1.
100100
Operadores de bits.
Operacin Nombre $a & $b $a | $b $a ^ $b ~ $a $a << $b $a >> $b Resultado Se ponen a 1 los bits que estn a Y 1 en $a y $b. Se ponen a 1 los bits que estn a O 1 en $a o $b. Se ponen a 1 los bits que estn a O Exclusivo 1 en $a o $b, pero no en ambos. Se invierten los bits (se cambian 1 No por 0 y viceversa.) Desplaza $b posiciones a la Desp. Izq. izquierda todos los bits de $a. Desplaza $b posiciones a la Desp. Drch. derecha todos los bits de $a.
M. en C. Gabriela de Jess Lpez Ruiz 101101
Operadores lgicos.
102102
Operacin Nombre
Resultado Asigna el valor de una variable o $a = $b Asignacin expresin del segundo trmino a la variable del primer trmino. Compara si el valor de los dos $a == $b Igualdad operandos es el mismo. Compara si el valor es el mismo y, $a === $b Identidad adems, el tipo coincide.
103103
$var1 = 1; // $var2 = 1; $var3 = 1; ($var1 == $var2) ($var1 == $var3) ($var1 === $var2) ($var1 === $var3)
Asignacin // // // // Cierto, son iguales Son iguales (tras conversin) Cierto, son idnticas FALSO, el tipo no coincide
104104
$var1 = 1; $var2 = 2; if( $var1 = $var2 ) { echo iguales; } else { echo distintas; }
105105
Comparaciones.
Operacin Nombre
Resultado Cierto si el valor de $a no es $a != $b No igual igual al de $b. Cierto si $a no es igual a $b, o $a !== $b No idntico si no tienen el mismo tipo. Cierto si $a es estrictamente $a < $b Menor que menor que $b. Cierto si $a es estrictamente $a > $b Mayor que mayor que $b. Cierto si $a es menor o igual $a <= $b Menor o igual que que $b. Cierto si $a es mayor o igual $a >= $b Mayor o igual que que $b.
106106
Operadores de cadenas.
$a = 1; $b = 2; $c = El resultado de . $a . + . $b . es . $a + $b;
107107
Atajos en la asignacin.
+=
-=
*=
/=
%=
&=
^=
.=
>>=
<<=
108108
Precedencia.
^ & == != === !== < <= > >= << >> +-. */% ! ~ ++ -- (int) (double) (string) (array) (object) @ [ new
109109
Estructuras de control.
if elseif else
110110
Estructuras de control.
if (expresion1) { comandos1 } elseif (expresion2) { comandos2 } elseif (expresion3) { comandos3 } ... else { comandosElse }
111111
while y do while
112112
for
for (expresin1; expresin2; expresin3) { comandos } $factorial5 = 1; for ($i = 2; $i <= 5; $i++ ) { $factorial5 *= $i; }
113113
for (2)
for ($factorial5 = 1, $i = 2; $i <= 5; $i++ ) { $factorial5 = $factorial5 * $i; } for ($factorial5=1, $i=2; $i<=5; $factorial5*=$i, $i++);
114114
ASP <%FOR i=1 TO 100%> <%=MiVar%> <%NEXT%> // PHP <?php for ($i = 1; $i <= 100; $i++) { echo $MiVar; } ?>
115115
foreach
foreach (array as variable) { comandos } $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valor actual de \$a: $v.\n"; } // // // // Valor Valor Valor Valor actual de $a: 1 actual de $a: 2 actualC.de $a: Jess M. en Gabriela de 3 actual Lpez Ruiz 17 de $a:
116116
foreach (2)
117117
switch
switch (variable) { case valor1: comandos1 case valor2: comandos2 ... case valorN: comandosN default: comandosDefault }
118118
switch (2)
switch ($i) { case 1: echo Cdigo del 1; case 2: echo Cdigo del 2; case 3: echo Cdigo del 3; break; M. en C. Gabriela de Jess Lpez Ruiz
119119
Cierto o falso.
Valores numricos.
120120
Cierto o falso.
Strings.
$x = "hello"; // asignamos una cadena a $x if( $x ) // se evala a cierto $x = ""; if( $x ) $x = "0"; if( $x ) // cadena vaca // evala a falso // // // // Excepcin: cero en una cadena evala a falso (se convierte a entero)
121121
Cierto o falso.
Arrays.
$x = array(); if( $x )
122122
Cierto o falso.
Objetos.
Class Yod {} // clase vaca $x = new Yod(); if( $x ) // se evala a falso Class Yod { // clase no vaca var $x = 1; } $x = new Yod(); if( $x ) // se evala a cierto
123123
Cierto o falso.
Constantes.
124124
Funciones.
125125
Funciones. (2)
Ejemplo.
function factorial ($valor) { if ($valor < 0) { return 1; // Error } if ($valor == 0 ) { return 1; } if ($valor == 1 || $valor == 2) { return $valor; } $ret = 1; for ($i = 2; $i <= $valor; $i++) { $ret = $ret * $i; } return $ret; } $factorial5 = factorial(5);
126126
Funciones. (3)
127127
Funciones.
128128
Funciones.
function &buscar_cliente($nombre) { // ... buscamos ... return $registro; } $cliente = &buscar_cliente(Juan); echo $cliente->dni;
129129
include y require
require(cabecera.inc); If ($incluir == TRUE) { $ficheros = array(uno, dos, tres); foreach ($ficheros as $fichero) { include($fichero); } }
130130
Programando en PHP
131131
Forms.
Valores sencillos.
<form action="accion.php" method="POST"> Su nombre: <input type=text name=nombre><br> Su edad: <input type=text name=edad><br> <input type=submit> </form> Hola <?=$nombre?>. Tiene <?=$edad?> aos.
132132
Forms.
Valores mltiples.
<form action="accion.php" method="POST"> name=menu[]> <select multiple name=menu> <option>Tortilla <option>Paella <option>Fabada <option>Lentejas </select><input type=submit></form> <?php echo "Su eleccin:<br>"; foreach($menu as $plato) { echo "$plato<br>\n"; } ?>
M. en C. Gabriela de Jess Lpez Ruiz 133133
Cookies.
int setcookie (string nombre [, string valor [, int fin [, string camino [, string dominio [, int seguro]]]]]) setcookie(PruebaCookie, expirar dentro de una hora, time() + 3600); setcookie(PruebaCookie, , time());
134134
Sesiones.
bool session_start(void); bool session_register (mixed name [, mixed ...]) bool session_destroy(void); // Ejemplo, un contador session_start(); print($contador); $contador++; session_register("contador"); <A HREF="siguiente.php?<?=SID?>">Continuar</A>
135135
Tratamiento de errores.
$nombre = '/etc/shadow'; $fichero = @fopen ($nombre, 'r'); if( !$fichero ) { die("No se pudo abrir el fichero ($nombre)"); }
136136
Cadenas. Comparacin.
int strcmp (string str1, string str2) int strcasecmp (string str1, string str2) // Ejemplo: if (strcmp($a, $b) == 0) { echo iguales; }
137137
Cadenas. Subcadenas.
string substr (string cadena, int inicio [, int tamao]) $str $str $str $str = = = = substr('abcdef', substr('abcdef', substr('abcdef', substr('abcdef', 2, 3); -2); -2, 1); 1, -2); // // // // cde ef e bcd
138138
int strpos (string cadena, string referencia [, int inicio]) int strrpos (string cadena, char referencia) string strstr (string cadena, string referencia) $i // $i // $s // $s // = strpos('cadena de prueba', 'de'); $i = 2 = strpos('cadena de prueba', 'de', 5); $i = 7 = strrpos('cadena de prueba', 'de'); $s = 7 = strstr('cadena de prueba', 'de'); $s = dena de prueba
M. en C. Gabriela de Jess Lpez Ruiz 139139
Cadenas.
Imprimir y formatear.
int printf (string formato [, mixed args...]) string sprintf (string formato [, mixed args...])
1. 2. 3. 4. 5.
140140
Cadenas.
printf(%02d/%02d/%04d, $dia, $mes, $ao); $pago1 = 68.75; $pago2 = 54.35; $pago = $pago1 + $pago2; // echo $pago mostrara "123.1" // Mostrar al menos un dgito entero y exactamente // dos decimales, rellenando con ceros printf ("%01.2f", $pago);
141141
$busca = DAlton; // Habr que escapar el apstrofe $sql = SELECT * FROM usuarios WHERE apellido = \ . addslashes($busca) . \;
142142
Escapar caracteres.
Shell.
string system (string comando [, int valor_salida]) echo system(finger $usuario); Qu pasa si $usuario=pepe ; apachectl stop ? string escapeshellcmd (string comando)
143143
$valor = a>b; echo <input type=hidden name=var value= . htmlspecialchars($valor) . >; // <input type=hidden name=var value=a>b>
144144
Extraer campos.
array explode (string delimitador, string cadena [, int lmite]) $cadena = campo1:campo2:campo3; $campos = explode(:, $cadena); string implode (string delimitador, array campos) $cadena = implode(:, $campos);
145145
array split (string delimitador, string cadena [, int lmite]) $fecha = "12/4 2000"; $campos = split ('[ /.-]', $fecha);
146146
Recorrer un array.
reset(), end(), next(), each(), current(), key() $arr = array(1,'cosa',1.57,'gato'=>'raton','perro'=>'gato'); current($arr); next($arr); current($arr); prev($arr); end($arr); current($arr); key($arr); reset($arr); each($arr); each($arr); each($arr); // // // // // // // // // // // 1 cosa cosa 1 gato gato perro 1 array(0,1) array(1,'foo') array(2,1.57)
147147
Ordenar un array.
148148
Lpez Ruiz
Otras funciones.
Eliminar espacios en blanco: string trim (string cadena) string ltrim (string cadena) string rtrim (string cadena) Maysculas y minsculas: string strtoupper (string cadena) string strtolower (string cadena) string ucfirst (string cadena)
149149
Ficheros.
Abrir y cerrar.
Modos: r Slo lectura. Puntero al inicio. r+ Lectura/escritura. Puntero al inicio. w Slo escritura. Se trunca el fichero. w+ Lectura/escritura. Se trunca el fichero. a Slo escritura. Puntero al final. int fclose (int identificador) a+ Lectura/escritura. Puntero al final.
150150
string fgets (int identificador, int tamao) mixed fscanf (int identificador, string formato [, string var1...]) int feof (int identificador) array file (string fichero [, int include_path]) int fwrite (int identificador, string cadena [, int tamao])
151151
Ficheros.
int copy (string origen, string destino) int rename (string origen, string destino) int unlink (string fichero)
152152
Directorios.
int chdir (string directorio) int mkdir (string nombre, int modo) int rmdir (string nombre)
int opendir (string nombre) string readdir (int identificador) void closedir (int identificador)
153153
Directorio.
Listado de contenidos.
$direcotrio = opendir('.'); while (($fichero = readdir($directorio)) !== FALSE) { echo "$fichero\n"; } closedir($directorio);
M. en C. Gabriela de Jess Lpez Ruiz 154154
Ficheros. Envo.
<FORM ENCTYPE="multipart/form-data" ACTION="recibir.php" METHOD=POST> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Fichero: <INPUT NAME="fichero" TYPE="file"> <INPUT TYPE="submit" VALUE="Enviar"> // Contenido de recibir.php </FORM> echo Recibido el fichero: ". $fichero_name."<br>; echo Tamao del fichero: . $fichero_size . <br>; echo Tipo mime: . $fichero_type . <br>; M. en C. Gabriela de Jess 155155 Lpez Ruiz rename($fichero, $fichero_name);
156156
Ejemplo.
// Constructor por defecto. El coche est parado. function coche() { $this->velocidad = 0; } // Constructor que indica la velocidad inicial. function coche($vel) { $this->velocidad = $vel; } // Mtodo acelerar. El coche va ms rpido. function acelerar() { $this->velocidad++; } // Mtodo frenar. El coche va ms lento hasta frenar. function frenar() { if ($this->velocidad > 0) { $this->velocidad--; } } }
157157
POO. Herencia.
class ClaseDerivada extends ClaseBase { // // // // } definicin de mtodos y variables exclusivos de ClaseDerivada, y redefinicin (especializacin) de mtodos de ClaseBase
158158
POO. Herencia.
Ejemplo.
class CocheFantastico extends coche() { // Frenado instantneo function frena() { $this->velocidad = 0; } // El coche habla! function habla() { echo Hola, Michael.; } // Salta! function salta() { echo Boing!!; } // Turbo propulsin function turbo() { $this->velocidad = 200; } }
159159
// Creacin (instanciacin) $MiCoche = new Coche; $MiCocheSeMueve = new Coche(10); // Uso $MiCoche->acelerar(); $MiCoche->acelerar(); $MiCoche->acelerar(); echo $MiCoche->velocidad; $MiCoche->frenar();
160160
int mysql_connect ([string servidor [:puerto] [:/camino/al/socket] [, string usuario [, string contrasea]]]) int mysql_close ([int identificador]) int mysql_pconnect ([string servidor [:puerto] [:/camino/al/socket] [, string usuario [, string contrasea]]]) int mysql_pclose ([int identificador])
161161
Ejemplo.
$link = mysql_connect ("www.mmlabx.ua.es", "nobody", ""); if (!$link) { die ("No se pudo conectar"); } print ("Conexin realizada"); mysql_close ($link);
162162
163163
BD. Querys.
int mysql_query (string query [, int identificador]) int mysql_db_query (string nombre_bd, string query [, int identificador]) int mysql_free_result (int result) $query = "SELECT codigo, nombre, descripcion, creditos, tipo FROM asignatura"; $asignaturas = mysql_query($query, $link); if (!$asignaturas) { die (Error en el query); }
164164
int mysql_affected_rows ([int identificador]) int mysql_num_rows (int resultado) array mysql_fetch_row (int resultado) array mysql_fetch_array(int resultado [, int tipo_resultado]) object mysql_fetch_object (int result) array mysql_fetch_lengths (int M. en C. Gabriela de Jess Lpez Ruiz resultado)
165165
Ejemplos.
while ($fila = mysql_fetch_array($asignaturas)) { echo $fila[codigo] . . $fila[nombre] . \n; while ($fila = } mysql_fetch_object($asignaturas)) { echo $fila->codigo . . $fila>nombre . \n; }
M. en C. Gabriela de Jess Lpez Ruiz 166166
class ConexionGenerica { var $link; function connect($servidor, $usuario, $clave) { echo "<h1>El método <i>connect</i> ", "no está implementado en la ", "clase <i>".get_class($this)."</i></h1>"; return FALSE; } function function function function function close() {} select_db($base_datos) {} query($query) {} fetch_array($resultado) {} free_result($resultado) {}
167167
require ("ConexionGenerica.inc"); class ConexionMySQL extends ConexionGenerica { function connect($servidor="localhost", $usuario="nobody", $clave="") { return $this->link = mysql_connect($servidor, $usuario, $clave); } function function function function function close() {} select_db($base_datos) {} query($query) {} fetch_array($resultado) {} free_result($resultado) {}
168168
// Fichero CreaConexion.inc require ("ConexionMySQL.inc"); $conexion = new ConexionMySQL(); require ("CreaConexion.inc"); $conexion->connect("localhost", "nobody"); $conexion->select_db("prueba", $link); $asignaturas = $conexion->query("SELECT codigo, nombre, descripcion,
M. en C. Gabriela de Jess Lpez Ruiz 169169
Repaso de JAVA
170170
171171
Servidor web Motor de scripting Capa de base de datos Scripts Motor de base de datos
172172
Request
Response
Servidor / Web server
173173
Desventajas
Clientes pesados
La lgica del negocio debe implementarse en el lado del cliente. Ventajas
Desventajas
174174
176176
Es uno de los lenguajes mas populares para el desarrollo de aplicaciones Web con acceso a base de datos. Razones para escoger JSP.
Lenguaje Java Multiplataforma (Sistema operativo, servidor web ) Acceso a toda la tecnologa de Java como JDBC. Ejecucin rpida de las aplicaciones Ejecuta los scripts mas rpido por el modelo de ejecucin, la primera vez que se invoca el JSP, se realiza la compilacin y carga en memoria, las llamadas posteriores son mucho mas rpidas.
177177
Entender los requerimientos, escoger el motor de Base de Datos (BD), disear la estructura y tablas.
Administra los datos (almacenamiento y recuperacin). Maneja actualizaciones simultaneas Proporciona esquemas de seguridad Asegura la integridad de los datos Proporciona servicios de soporte, para realizar backup, recuperacin en fallas, entre otros. Normalmente se usan RDMS en la capa de base de datos
178178
Interfaz para el desarrollo de aplicaciones Interprete de SQL Evaluador de consultas Acceso a datos Base de datos Hay mas de un usuario que necesita acceso a los datos al mismo tiempo Existe una cantidad considerable de datos Existen relaciones entre los datos almacenados Hay mas de un tipo de datos Hay reglas que deben cumplir los datos Se necesita generar nueva informacin o consolidarla a partir de los datos existentes
179179
Es una motor de base de datos de escala media, con caractersticas de sistemas de gran escala. Tiene algunas limitaciones en la implementacin de SQL Permite acceso concurrente de cientos de usuarios, pero no de miles. Consultas anidadas y vistas, no estn completamente soportadas por MySQL. Sus limitaciones tienen un impacto menor en el desarrollo de las aplicaciones en Web. Para aplicaciones de alto rendimiento, se sugiere usar Postgres o algn motor comercial.
180180
181181
En 1990 James Gosling inicia el desarroll el lenguaje OaK como una variante de C++ en la empresa SUN (Stanford University Network) con la intencin de operar cualquier mecanismo informtico (como licuadoras, lavaplatos, microondas, etc.) mediante un programas sencillos y simples que se distribuyen a travs de una red.
182182
En 1994 se tuvo una versin que se pretenda abandonar por falta de un enfoque apropiado y para cerrarlo el equipo de desarrollo se reuni con Scott McNealy (presidente ejecutivo de SUN) quien vio un gran potencial en el nuevo lenguaje y lo apoy personalmente hasta su lanzamiento al mercado, para esto le cambi el nombre a Java y con el propsito de utilizarlo como plataforma para desarrollos en Internet.
183183
En mayo de 1995 se hizo la presentacin en pblico de Java incluyndolo en el navegador Netscape generando as millones de copias en poco tiempo. Actualmente es uno de los lenguajes ms difundidos para desarrollo de aplicaciones multiplataformas que aprovechan la infraestructura de Internet
184184
Caractersticas de Java
.java .java .java
compilacin
.class .class .class
carga
Mquina Virtual de Java java.exe java appletviewer
ejecucin
UNIX Windows Solaris Linux Hardware
Java es un lenguaje Orientado a Objetos basado en Clases, usa herencia simple, es multiplataforma e interpretado (mediante la JVM, Maquina Virtual de Java, Java Virtual Machine), tiene diferentes tipos de programas: consola, applets, servlets y beans; los applets y servlets se usan directamente en Internet.
185185
Caractersticas de Java
186186
Es un lenguaje de programacin orientado a objetos diseado para ser portable en diversas plataformas y sistemas operativos. Java fue desarrollado por Sun Microsystem, se diseo con base en el lenguaje de programacion C+ +.
187187
188188
HOTJAVA
HOTJAVA es un navegador (como navigator o explorer). HOTJAVA fue el primer navegador que pudo bajar y ejecutar applets escritos en java.
189189
Java es orientado a objetos, se puede usar para desarrollar programas en trminos de los datos y mtodos ( funciones ) que operan sobre ellos.
190190
Al escribir y compilar un applet en Java, se genera un archivo independiente de la plataforma conocido como bytecode (se compone de ceros y unos). Un programa comn un bytecode no es especfico para cada procesador (Pentium de Intel o Motorola).
191191
Una vez que el servidor ha enviado el cdigo al navegador, este lee e interpreta el bytecode a fin de ejecutar un applet. Para ejecutar el bytecode de esta forma, el interprete convierte los unos y ceros que el procesador de su computadora entiende. Cada plataforma de cmputo puede tener su propio intrprete de Java, sin embargo el bytecode es idntico. El bytecode multiplataforma es slo un aspecto de la portabilidad de Java.
M. en C. Gabriela de Jess Lpez Ruiz 192192
Java es seguro
Los applets puede ser una forma de algn programador malicioso cree un virus, pero los applets no pueden leer ni escribir archivos locales que residan en el disco. De esta manera los applets no pueden almacenar virus en su disco ni adjuntarlos a algn archivo.
193193
Java es robusto
Java es confiable, elimina muchos de los problemas de memoria comunes en lenguajes como C y C++. Java no soporta acceso directo a apuntadores a la memoria. Java es muy estrcito ms que C++ en cuanto a los tipos de datos (tipo de clasificacin) y requiere declaraciones explcitas para cada mtodo, reduciendo as los errores (excepcin de errores).
194194
java.sun.com
API (Application Program Interface, Interfase del Programador de Aplicaciones) de Java:
java.sun.com/api
Editar e invocador del compilador, se sugiere el uso de JCreator del sitio: www.jcreator.com
M. en C. Gabriela de Jess Lpez Ruiz 195195
Referencias de Java
Almanaque de Java www.javaalmanac.com El Libro electrnico Thinking in Java (Bruce Eckel)
www.mindview.net/Books/TIJ
Tutorial de Java (SUN)
java.sun.com/docs/books/tutorial
Tutorial de Java www.ulpgc.es/otros/tutoriales/java El libro 1001 C. Chang
196196
Entrada/Salida de la Consola
import java.io.*; class Hola { public static void main(String args[])throws IOException { BufferedReader consola = new BufferedReader( new InputStreamReader(System.in)); // DESPLEGA UN INDICADOR PARA LEER UN DATO System.out.print("Dato> ");
// LEE UNA cadena DE LA CONSOLA String cadena = consola.readLine(); // DESPLEGA LA cadena LEIDA System.out.println("Hola " + cadena);
M. en C. Gabriela de Jess Lpez Ruiz 199199
} }
a = Integer.parseInt(cadena);
// LEE EL dato B System.out.print("Dato B> "); String cadena = consola.readLine();
b = Integer.parseInt(cadena);
// DESPLEGA LA SUMA System.out.println( + a + + + b + = + (a+b)); 200200 M. en C. Gabriela de Jess } Lpez Ruiz
201201
Comentarios
En Java existen tres tipos de comentarios: De Resto de Lnea: while( x < 5 ) // COMENTARIO De Varias Lneas: /* COMENTARIO QUE OCUPA VARIAS LINEAS */ De Documentacin: /** programa.java ESTE ES UN COMENTARIO DE DOCUMENTACION, UTILIZADO POR EL en C. Gabriela de javadoc PROGRAMA Jess 202202 M. */ Lpez Ruiz
Literales
203203
Identificadores de usuario
X y $temporal _auxiliar Los Identificadores de Usuario se usan para nombrar variables (tipos UnaClase
primitivos, u objetos), mtodos o clases. Se escriben con una inicial que puede ser letra mayscula o minscula, subraya (_) o el signo de pesos ($) seguidos por una secuencia de letras, nmeros o subraya. Letra significa cualquier smbolo unicode que represente una letra en cualquier idioma, es un valor entre cero y 65536. La longitud mxima de un identificador es de 64 caracteres y no deben Lpez Ruiz
M. en C. Gabriela de Jess 204204
Palabras reservadas
En la tabla se indican los TDP de Javade Jess espacio que ocupan en 206206 M. en C. Gabriela con el Lpez Ruiz memoria
Operadores
Promocin
Si se tiene:
algn operador, se asigna el tipo ms grande a los operadores que aparecen en la expresin, por ejemplo se estn sumando un int con un float, la suma se efectua promoviendo el int a float y de esta forma el 208208 M. en C. Gabriela de Jess resultado es float
Lpez Ruiz
Disfraz (casting)
Si se tiene:
Estructuras de Control
Secuencia
c A B A1
Decisin
e A2 A3
if v=inicial actualiza v A c
switch
Iteracin
A c
Recursin
A c do-while A
while
for
Estructuras de Control
El bucle FOR Son instrucciones repetitivas Sintaxis for(inicializacin;condicin de continuidad;expresin de variacin) { instrucciones a ejecutar de forma repetitiva }
211211
Estructuras de Control
Public class BucleFor1{ public static void main (String[ ] args) { int i; for (i=1;i<=4;i=+1) { System.out.println(i); } } }
M. en C. Gabriela de Jess Lpez Ruiz 212212
Estructuras de Control
Public class BucleFor2{ public static void main (String[ ] args) { int i; for (i=1;i<=10;i=-1) { System.out.println(i); } } }
M. en C. Gabriela de Jess Lpez Ruiz 213213
Estructuras de Control
Public class BucleFor3{ public static void main (String[ ] args) { int i; for (i=1;i<=20;i++) { System.out.println(i); } } }
M. en C. Gabriela de Jess Lpez Ruiz 214214
Estructuras de Control
Public class BucleFor4{ public static void main (String[ ] args) { int i; for (i=1;i<=10;i--) { System.out.println(i); } } }
M. en C. Gabriela de Jess Lpez Ruiz 215215
Estructuras de Control
Factorial de un nmero Factorial de k(k!)=k*(k-1)*(k-2)**2*1 Ejemplo: 4!=4*3*2*1=24 Public class Factorial{ public static void main(String[ ] args){ } }
216216
Estructuras de Control
/*Se declara el paquete para lectura desde el teclado*/ import java.io.*; public class Factorial { public static void main(String []args) { int n; //Variable que guardar el valor de nmero a calcular long valor;//Variable que guardar el Resultado valor = 1; //Lo inicializamos con 1 try{ //Para el manejo del error se utiliza en try... /*Declaracin de la de Jess 217217 M. en C. Gabriela variable Input q almacena Lpez Ruiz la
Estructuras de Control
{ }
/*Se lee lo q el usuario tecleo desde el teclado*/ String linea= buffer.readLine(); /*Se convierte el dato a un valor entero*/ n = Integer.parseInt(linea); /*Se realizan las operacines*/ for(long contador = 1; contador < n;contador++) valor *= (contador+1);
/*Se muestra el resultado final*/ System.out.println("El factorial de " + n + " es: "+ valor); } catch(IOException IO) //... para "cachar" el error y poder M. en C. Gabriela de Jess 218218 Lpez Ruiz // manipularlo
Estructuras de Control
El Bucle While Permite repetir la repetir la ejecucin de una serie de instruccin Sintaxis while(condicion de continuidad){ instrucciones a ejecutar de forma repetitiva }
Estructuras de Control
public class BucleWhile1{ public static void main(String [ ] args){ int i=1; while(i<=4){ system.out.printl(i); contador } } } i++; //no se debe olvidar incrementar el
220220
Estructuras de Control
public class BucleWhile2{ public static void main(String [ ] args){ int i=1; do{ system.out.printl(i); contador } } i++; //no se debe olvidar incrementar el } while(i<=4);
221221
Estructuras de Control
//Ejercicio imprimir numero primo public class Primo{ public static void main(String [ ] args){ int PosiblePrimo=17; Int Divisor=2; Boolean Primo=true; do{ Primo=(PosiblePrimo%divisor)!=0; Divisor++; } while(diviso<posibleprimo&&PriMo); system.Out.prntln(Prim); } }
M. en C. Gabriela de Jess Lpez Ruiz 222222
Estructuras de Control
Instruccin condicional if Es considerado como una estructura de control secuencial Sintaxis if(condicion) instruccin } if(condicion) if(condicion){ instruccin then instrucciones then else } else { instruccin else instrucciones else
223223
if(condicion){ instrucciones
Estructuras de Control
//Ejercicio public class if1{ public static void main(String [ ] args){ int EdadOswaldo=22, EdadMarisol=20;; if(EddOsvaldo<Edadmarisol) Marisol) else systm.Ot.prntln(Oswaldo no es mas joven que Marisol) } } systm.Ot.prntln(Oswaldo es mas joven que
224224
Excepciones
M. en C. Gabriela de Jess Lpez Ruiz. gaby_dlib@yahoo.com.com
225225
Excepcin
try { } catch( Exception nombre) { } finally { }
IOException
ClassNotFoundException
Las Excepciones se organizan en una Jerarqua, donde la clase Exception es la de nivel superior, por lo que es comn para atrapar cualquier excepcin colocar Exception dentro del catch.
M. en C. Gabriela de Jess Lpez Ruiz 227227
MiExcepcion
Una Excepcin Definida por el Usuario se hace con una clase derivada de Exceptionen este ejemplo MiExcepcion se utiliza como culquier excepcin.
M. en C. Gabriela de Jess Lpez Ruiz 228228
JSP
229229
230230
231231
Nuestro primer paso es descargar el software que implementa las especificaciones Java Servlet 2.1 o 2.2 y Java Server Pages 1.0 1.1. Podemos obtener una versin gratuita de Sun, conocida como "JavaServer Web Development Kit" (JSWDK), en http://java.sun.com/products/servlet/. La opcin mas popular es instalar el servidor Apache tomcat, que se puede descargar de : http://jakarta.apache.org/
232232
Para este curso, usaremos el servidor web: Tomcat, aunque hay varias versiones disponibles, la mas estable es la versin 1.4.2 Antes de realizar la instalacin verificar que este correctamente instalada la versin de java. Deben existir las siguientes variables de entorno. JAVA_HOME=c:\j2sdk1.4.2
Nota: debe coincidir con el directorio donde esta instalada su versin de Java.
%JAVA_HOME
modificar el estilo de texto del patrn Haga clic para modificar el estilo de texto del patrn Segundo nivel Tercer nivel el Cuarto nivel vel Quinto nivel
ara modificar el estilo de texto del patrn vel ivel o nivel nto nivel Haga clic para modificar el estilo de texto del patrn Segundo nivel Tercer nivel Cuarto nivel Quinto nivel
235235
modificar el estilo de textoHaga clic para modificar el estilo de texto del pat del patrn Haga clic para modificar el estilo de texto del patrn Servidor Segundo nivel Tercer nivel Segundo nivel Libreras comunes Tercer nivel Cuarto nivel vel Quinto nivel Haga clic nivel nivel Cuarto para modificar el estilo de texto del patrn Quinto nivel Segundo nivel Configuracin Tercer nivel Cuarto nivel Quinto nivel Contextos o aplicaciones
Aplicacin y recurs
Instalacin de Tomcat
Procedimiento de Instalacin para plataformas Haga clic para Microsoft Windows
Obtener el Instalador de Tomcat. Para la Tercer elaboracin de este curso se recomienda nivel usar versiones de Tomcat menores Cuarto nivel a la 5. jakarta-tomcat-4.1.27-LE-jdk14.exe
Segundo nivel
Ejecutar el Instalador. Lo primero que debe clic para modificar Haga mostrar es la versin de Java que encontr Segundo nivel instalado. Si no encontr ninguna, revisar la instalacin de Java. Tercer nivel
Cuarto nivel Aceptar los trminos de la licencia, y despus configurar la Instalacin. Nota, si desea que tomcat se ejecute automticamente, Quinto nivel entonces hacer click en la casilla NT Service (NT/2k/XP)
Quinto nivel
el estilo de texto
237237
Tercer nivel Durante la instalacin, se va a preguntarpor una clave y contrasea de administracin. Cuarto nivel Estas claves se usarn para reiniciar aplicacionesWeb, Quinto nivel sin bajar todo el servidor. Puede poner la
combinacin admin/123
JAVA_HOME CLASSPATH TOMCAT_HOME
Haga clic para modificar el estilo de texto d Segundo nivel Tercer nivel Cuarto nivel Quinto nivel
238238 M. en C. Gabriela de Jess Lpez Ruiz
Segundo nivel Tercer nivel Para el resto del curso se usar siempre la nivel Cuarto variable %TOMCAT_HOME%, para Haga clic para referirnos a la ruta donde se realiz laQuinto nivelmodificar el estilo de texto instalacin de tomcat. Segundo nivel 1.- Crear un archivo con el siguiente Tercer nivel Cuarto nivel contenido y guardarlo con el nombre Hola.jsp Quinto nivel 2.- Guardarlo en la siguiente ruta
%TOMCAT_HOME%/webapps/ROOT 3.- Levantar el servidor web (dejar la ventana ctiva). 4.- Abrir el navegador de Internet en la direccin: http://localhost:8080/Hola.jsp
239239
ga clic para modificar el estilo de texto del patrn Haga clic para modificar el estilo de texto del p undo nivel Segundo nivel Tercer nivel Tercer nivel Cuarto nivel Cuarto nivel Quinto nivel Quinto nivel a clic para modificar el estilo de Haga del patrn texto clic para modificar el estilo de texto d ndo nivel Segundo nivel Tercer nivel ercer nivel Cuarto nivel Cuarto nivel Quinto nivel Quinto nivel
240240
request. Es el objeto que nos permite recibir los parmetros de la peticin, el tipo de peticin y las cabeceras HTTP entrantes.
response. Es el objeto que encapsula la respuesta generada por la pgina JSP para ser enviada al cliente en respuesta a su peticin.
out. Escribe en el flujo de salida. El objeto out se usa casi exclusivamente en scriptlets
Session. Este es el objeto asociado con la sesion del usuario. Las sesiones se crean automticamente. La nica excepcin es usar el atributo session de la directiva page para desactivar las sesiones.
241241
242242
A) Directivas
Son mensajes dirigidos al motor JSP. Se usan para establecer valores globales tales como una declaracin de clase, mtodos que tienen que ser implementados, tipo del contenido de salida, etc. No producen ninguna salida en el cliente. Hay tres tipos de directivas: (page, include, taglib) page. Se aplica a una pgina JSP completa, y a cualquier fichero esttico que incluya con la directiva include o <jsp:include>
Sintaxis: <% @ page [ language =java] [ extends =package.class] [ import ={package.class | package.* }, ... ] [ session =true | false] [ buffer =none | 8kb |sizekb] [ autoFlush =true | false] [ isThreadSafe =true | false ] [ info =text] [ errorPage =URLrelativa] [ contentType =mimeType [;charset=characterSet]|text/html;charset=ISO-8859-1] [ isErrorPage =true | false] %>
244244
A) Directivas (2)
include. Esta directiva indica al motor JSP que debe incluir, en la posicin especificada, el archivo indicado en el momento en el que la pgina JSP es traducida a un servlet. Sintaxis: <%@ include file="url relativa" %> taglib. Esta directiva permite a la pgina usar etiquetas definidas por el usuario. Sintaxis: <%@ taglib url="tagLibraryURL" prefix="tagPrefix" %>
245245
B) Elementos de script
Los elementos de script nos permiten insertar cdigo Java dentro del servlet que se generar desde la pgina JSP actual. Hay tres formas:
1) Expresiones Una expresin JSP se usa para insertar valores Java directamente en la salida, La expresin Java es evaluada, convertida a un String, e insertada en la pgina. .
246246
B) Elementos de script
Los elementos de script nos permiten insertar cdigo Java dentro del servlet que se generar desde la pgina JSP actual. Hay tres formas:
2) Scriptlets Bloque de cdigo Java que se incluye dentro del mtodo service() del servlet generado. Sintaxis: <% cdigo Java %>
Ej. <% if ( materias != null)
Cuando mezclamos elementos de script con etiquetas HTML y JSP, siempre debemos terminar un elemento de script antes de empezar a usar etiquetas y luego reabrir el elemento de script
247247
B) Elementos de script(2)
3) Declaraciones. Una declaracin JSP nos permite definir mtodos o campos que sern insertados dentro del cuerpo principal de la clase servlet (fuera del mtodo service que procesa la peticin). Es decir, nos permite definir variables o y mtodos globales.
248248
C) Acciones
Son etiquetas especficas que afectan al comportamiento en tiempo de ejecucin de la pgina JSP y a la respuesta generada para el cliente.
Podemos insertar un fichero dinmicamente, reutilizar componentes JavaBeans, reenviar al usuario a otra pgina o generar HTML para el plug-in Java.
<jsp:include> Esta accin nos permite insertar ficheros en una pgina que est siendo generada. Sintaxis: <jsp:include page="relative URL" flush="true" /> <jsp:useBean> Encuentra o instanca un JavaBean
<jsp:setProperty> Establece un valor a una propiedad de un JavaBean jsp:getProperty Inserta el valor de una propiedad de un JavaBean en la salida. jsp:forward Esta accin nos permite reenviar la peticin a una pgina esttica, a otra pgina JSP o un servlet que pertenezca al mismo contexto que la pgina actual. Tiene un solo atributo, page, que establece una URL relativa. Este podra ser un valor esttico o podra ser calculado en el momento de la peticin. Sintaxis: <jsp:forward page=URLrelativa />
249249
Consultar un registro de la BD
Haga del patrn clic para modificar el estilo de textoclic para modificar el estilo de texto del p Segundo nivel do nivel Tercer nivel rcer nivel Cuarto nivel Cuarto nivel Quinto nivel Quinto nivel Formulario.html Haga clic para modificar el estilo de texto del patrn Segundo nivel Tercer nivel Cuarto nivel Quinto nivel
Consultar un registro de la BD
Haga del patrn c para modificar el estilo de textoclic para modificar el estilo de texto del pa Segundo nivel nivel Tercer nivel er nivel Cuarto nivel arto nivel Quinto nivel uinto nivel Relacion.jsp Haga clic para modificar el estilo de texto del patrn Segundo nivel Tercer nivel Cuarto nivel Quinto nivel
Sigue
251251 M. en C. Gabriela de Jess Lpez Ruiz
Consultar un registro de la BD
a clic para modificar el estilo de textopara patrn Haga clic del modificar el estilo de texto del pa ndo nivel Segundo nivel Tercer nivel ercer nivel Cuarto nivel Cuarto nivel Quinto nivel Quinto nivel Relacion.jsp
Consultar un registro de la BD
Haga del patrn ic para modificar el estilo de textoclic para modificar el estilo de texto del p Segundo nivel o nivel Tercer nivel er nivel Cuarto nivel uarto nivel Quinto nivel Quinto nivel
253253