P. 1
gaby Diseño web_segundo parcial

gaby Diseño web_segundo parcial

|Views: 98|Likes:
Published by Gandhi Aguirre

More info:

Published by: Gandhi Aguirre on Nov 17, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPSX, PDF, TXT or read online from Scribd
See more
See less

11/17/2011

pdf

text

original

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

Desarrollo de Aplicaciones para la Web I

M. en C. Gabriela de Jesús López Ruiz

M. en C. Gabriela de Jesús López Ruiz

11

Contenido del segundo parcial
UNIDAD TEMA DESCRIPCIÓN DEL TEMA

III

IV

Introducción 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 Jesús López Ruiz 22

Segundo Parcial

M. en C. Gabriela de Jesús López Ruiz

33

Introducción a Servidores

M. en C. Gabriela de Jesús López Ruiz

44

Servidores Web con soporte para JSP
Para poder publicar aplicaciones desarrolladas en JSP o Servlets, se debe realizar la instalación de un servidor Web, algunas de las opciones son las siguientes: Apache Tomcat. Es la implementación de referencia oficial para las especificaciones Servlet 2.2 y JSP 1.1. Puede ser usado como pequeño servidor para probar páginas JSP y servlets, o puede integrarse en el servidor Web Apache. Tomcat, al igual que el propio Apache es gratuito. JavaServer Web Development Kit (JSWDK). El JSWDK es la implementación de referencia oficial para las especificaciones Servlet 2.1 y JSP 1.0. Se usaba como pequeño servidor para probar servlets y páginas JSP antes de desarrollar un completo servidor Web que soporta estas tecnologías.

M. en C. Gabriela de Jesús López Ruiz

55

O’Reilly’s WebSite. de los servidores Web IIS. New Atlanta’s ServletExec. MacOS. o StarNine WebSTAR. viejas versiones de Apache. pero muchas de sus características avanzadas y utilidades de administración estarán desactivadas hasta que compremos una licencia. ServletExec es un rápido motor de servlets y páginas JSP que puede ser conectado dentro de los servidores web más populares para Solaris. Podemos descargarlo y usarlo de forma gratuita. JRun es un motor servelt y JSP que puede conectarse dentro de los servidores Netscape Enterprise o FastTrack. M. Microsoft Personal Web Server. Windows. Gabriela de Jesús López Ruiz 66 .Servidores Web con soporte para JSP Allaire JRun. en C. HPUX y Linux.

Gabriela de Jesús López Ruiz 77 . Zeus) • NSAPI (Netscape iPlanet) • Java servlet • AOLServer • Roxen Servidores (en preparación): • Apache 2.Win32) • CGI • fhttpd • ISAPI (IIS.0 • WSAPI (O'Reilly WebSite) • phttpd • thttpd M.Plataformas y Servidores soportadas por PHP Plataformas (actualidad): Plataformas (en perparación): • • UNIX (todas las variantes) OS/390 • • Win32 (NT/W95/W98/W2000) AS/400 • QNX • Mac (WebTen) • OS/2 • BeOS Servidores: • Apache (UNIX. en C.

en C.Manejadores de base de datos M. Gabriela de Jesús López Ruiz 88 .

Base de datos MySQL Gabriela de Jesús López M. Gabriela de Jesús López Ruiz 99 . en C.

en C. actualizar y borrar datos Consultas. relaciones Modificar la base de datos M.Contenido SQL Diseño de una base de datos Administración Insertar. Gabriela de Jesús López Ruiz 1010 .

construir y manipular BD.. manipulaciones. Seguridad (control de acceso).SISTEMA GENERAL DE BASES DE DATOS (SGBD) Conjunto de programas que permiten definir. M. Manipular: permite hacer consultas. Controlar la concurrencia. Definir: especifica la estructura de datos.. Gabriela de Jesús López Ruiz 1111 . añadir... Controlar la integración de los datos. Construir: permite meter datos en la BD. en C.

MODELO DE DATOS Formalismo matemático que permite describir la estructura de una BD. De bajo nivel (Físico): como se almacenan los datos en la BD. De implementación (de representación): Relacional. Jerárquico. Clasificación de modelos de datos: Conceptuales (Alto Nivel): permite describir la Base de Datos como la percibe el usuario (ER). M. En red. Gabriela de Jesús López Ruiz 1212 . en C.

Gabriela de Jesús López Ruiz .ESQUEMA ESQUEMA Descripción de una BD utilizando modelo de datos. en C. INSTANCIA Contenido de una BD en un instante determinado 1313 M.

Derivados: su valor se puede deducir de algún atributo almacenado. Multivaluados: para cada entidad hay varios atributos. Entidad: Descripción de un conjunto de entidades particulares que comparten la misma estructura. Monovaluados: para cada entidad solo hay un atributo. Gabriela de Jesús López Ruiz 1414 .MODELO ENTIDAD-RELACION ENTIDAD: Entidad particular: Algo del mundo real que tiene existencia independiente. Clave: tienen un valor diferente para cada entidad particular ● ● ● ● ● M. en C. Tipos de atributos: ● Simples: no se pueden descomponer. Compuestos: se descomponen en varios atributos. describen un solo valor. ATRIBUTO: Información o propiedad que describe una entidad.

Tipos de cardinalidad: 1:1. Relación recursiva: relación de una entidad consigo misma. en C.MODELO ENTIDAD-RELACION Dominio de un atributo: Conjunto de valores que puede tomar una entidad particular. 1:N... M:N. Gabriela de Jesús López Ruiz 1515 .xEn entonces grado(R)=N. Grado de una relación: Sí R E1x. M. RELACION: Asociación entre varias entidades. Cardinalidad de una relación: número de entidades particulares con las que puede estar relacionada una entida particular determinada.

en C. Gabriela de Jesús López Ruiz 1616 .Repaso del lenguaje SQL M.

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 normalización 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.

M. en C. Gabriela de Jesús López Ruiz

1717

Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

M. en C. Gabriela de Jesús López Ruiz

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 Jesús López Ruiz 1919

Comandos DLL

Comando

Descripción

CREATE DROP ALTER

Utilizado para crear nuevas tablas, campos e índices Empleado para eliminar tablas e índices Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.

M. en C. Gabriela de Jesús López Ruiz gaby_dlib@yahoo.com.mx

Comandos DML
Comando SELECT INSERT UPDATE DELETE Descripción 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 operación. 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 Jesús López Ruiz gaby_dlib@yahoo.com.mx

Cláusula FROM WHERE GROUP BY HAVING ORDER BY Descripción 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 específicos Utilizada para expresar la condición que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico M. en C.Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.com. Gabriela de Jesús López Ruiz gaby_dlib@yahoo.mx .

mx . en C.Operadores lógicos Operador AND Uso Es el "y" lógico. OR NOT M. Devuelve el valor contrario de la expresión. Es el "o" lógico. Negación lógica.com. Gabriela de Jesús López Ruiz gaby_dlib@yahoo. Evalua dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. Evalúa dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta.

Operadores de Comparación Operador < > <> <= >= = Uso Menor que Mayor que Distinto de Menor ó Igual que Mayor ó Igual que Igual que BETWEEN Utilizado para especificar un intervalo de valores. en C.com. Gabriela de Jesús López Ruiz gaby_dlib@yahoo.mx . LIKE IN Utilizado en la comparación de un modelo Utilizado para especificar registros de una base de datos M.

mx . Función AVG COUNT SUM MAX MIN Descripción Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el número de registros de la selección Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor más alto de un campo especificado Utilizada para devolver el valor más bajo de un campo especificado M.com. Gabriela de Jesús López Ruiz gaby_dlib@yahoo. en C.Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.

Consultas de Selección Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos. en C. M. esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto ResultSet. Este conjunto de registros es modificable. Gabriela de Jesús López Ruiz 2626 .

cct_domicilio FROM CCT. en C.Consultas Básicas La sintaxis básica de una consulta de selección es la siguiente: SELECT Campos FROM Tabla. por ejemplo: SELECT nombre. M. Gabriela de Jesús López Ruiz 2727 . Esta consulta devuelve un Conjunto de Resultados (ResultSet) con el campo nombre y cct_domicilio de la tabla CCT. En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos.

'Domicilio :'. podríamos realizar la siguiente consulta: SELECT cveinm. en C. domicilio FROM inmuebles WHERE CVEINM='090001O'. Gabriela de Jesús López Ruiz 2828 .Devolver Literales En determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de selección. M. supongamos que tenemos una tabla de inmuebles y deseamos recuperar la clave y domicilio. por ejemplo.

domicilio.'Domicilio'. Telefono de la tabla INMUEBLES ordenados por el campo Domicilio. En donde Lista de campos representa los campos a ordenar. domicilio. M. Ejemplo: SELECT cveinm. telefono FROM inmuebles WHERE cveinm='090001O' ORDER BY domicilio Esta consulta devuelve los campos cveinm. en C. Gabriela de Jesús López Ruiz 2929 .Ordenar los Registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la claúsula ORDER BY Lista de Campos.

'Domicilio'. telefono FROM inmuebles WHERE cveinm='090001O' ORDER BY Domicilio. domicilio. como por ejemplo: SELECT cveinm.Ordenar los Registros Se pueden ordenar los registros por mas de un campo. telefono Incluso se puede especificar el orden de los registros: ascendente mediante la cláusula ASC (se toma este valor por defecto) ó descendente (DESC). M. en C. Gabriela de Jesús López Ruiz 3030 .

los posibles predicados son: Predicado ALL TOP DISTINCT Descripción Devuelve todos los campos de la tabla Devuelve un determinado número de registros de la tabla Omite los registros cuyos campos seleccionados coincidan totalmente M. Gabriela de Jesús López Ruiz gaby_dlib@yahoo. en C.com.Consultas con Predicado El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar.mx .

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. en C. M. SELECT DISTINCTROW Apellido AS Empleado FROM Empleados. Gabriela de Jesús López Ruiz 3232 . Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el nombre que deseamos a la columna deseada.

SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999. Gabriela de Jesús López Ruiz 3333 . valor2 (ambos inclusive).Intervalos de Valores Para indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador Between cuya sintaxis es: campo [Not] Between valor1 And valor2 (la condición Not es opcional) En este caso la consulta devolvería los registros que contengan en "campo" un valor incluido en el intervalo valor1. Si anteponemos la condición Not devolverá aquellos valores no incluidos en el intervalo. M. en C.

Se puede utilizar el operador Like para encontrar valores en los campos que coincidan con el modelo especificado. en C. Su sintaxis es: expresión Like modelo En donde expresión es una cadena modelo o campo contra el que se compara expresión. M. Gabriela de Jesús López Ruiz 3434 .El Operador Like Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL. Por modelo puede especificar un valor completo (Ana María). o se pueden utilizar caracteres comodín como los reconocidos por el sistema operativo para encontrar un rango de valores (Like An*).

'Barcelona'. M.) SELECT * FROM Pedidos WHERE Provincia In ('Madrid'. . en C. valor2. . Su sintaxis es: expresión [Not] In(valor1. . Gabriela de Jesús López Ruiz 3535 .El Operador In Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista. 'Sevilla').

M. SELECT * FROM Pedidos WHERE Fecha_Envio = #5/10/94#. SELECT Apellidos.La cláusula WHERE La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT. SELECT Id_Producto. Gabriela de Jesús López Ruiz 3636 . Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido. Depués de escribir esta cláusula se deben especificar las condiciones expuestas en los dos primeros apartados de este capítulo. Salario FROM Empleados WHERE Salario > 21000. en C.

SELECT * FROM Pedidos WHERE Fecha_Envio = #5/10/94#. en C. SELECT Id_Producto. Existencias FROM Productos WHERE Existencias <= Nuevo_Pedido. Salario FROM Empleados WHERE Salario > 21000. M.La cláusula WHERE SELECT Apellidos. Gabriela de Jesús López Ruiz 3737 .

M. 'Los Angeles'. Nombre. en C. 'Barcelona'). Ciudad FROM Empleados WHERE Ciudad In ('Sevilla'. Salario FROM Empl WHERE Apellidos Between 'Lon' And 'Tol'. SELECT Apellidos.La cláusula WHERE SELECT Apellidos. SELECT Id_Pedido. Fecha_Pedido FROM Pedidos WHERE Fecha_Pedido Between #1-1-94# And #30-6-94#. Gabriela de Jesús López Ruiz 3838 .

Gabriela de Jesús López Ruiz 3939 . como por ejemplo Sum o Count. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo M. en la lista de campos especificados. en un único registro. en C. en la instrucción SELECT. Para cada registro se crea un valor sumario si se incluye una función SQL agregada.Agrupamiento de Registros y Funciones Agregadas La cláusula GROUP BY Combina los registros con valores idénticos.

y la cláusula HAVING para filtrar los registros una vez agrupados. No obstante. Los valores de resumen se omiten si no existe una función SQL agregada en la instrucción SELECT. Gabriela de Jesús López Ruiz 4040 .Agrupamiento de Registros y Funciones Agregadas GROUP BY es opcional. M. Los valores Null en los campos GROUP BY se agrupan y no se omiten. Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar. en C. los valores Null no se evalúan en ninguna de las funciones SQL agregadas.

Una vez que los registros se han agrupado utilizando GROUP BY.Agrupamiento de Registros y Funciones Agregadas Una vez que GROUP BY ha combinado los registros. en C. HAVING es similar a WHERE. M. HAVING determina cuales de ellos se van a mostrar. HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. determina qué registros se seleccionan. SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100 AND NombreProducto Like BOS*. Gabriela de Jesús López Ruiz 4141 .

no es posible eliminar el contenido de algún campo en concreto. Esta consulta elimina los registros completos.Consultas de Actualización Las consultas de actualización son aquellas que no devuelven ningún registro. Su sintaxis es: DELETE FROM Tabla WHERE criterio M. son las encargadas de acciones como añadir y borrar y modificar registros. en C. DELETE Crea una consulta de eliminación que elimina los registros de una o más de las tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE. Gabriela de Jesús López Ruiz 4242 .

campoN)VALUES (valor1. en C. valor2. Esta consulta puede ser de dos tipos: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla. .Consultas de Actualización INSERT INTO Agrega un registro en una tabla. Se la conoce como una consulta de datos añadidos..... valorN) M. .. Gabriela de Jesús López Ruiz 4343 . campo2. Insertar un único Registro En este caso la sintaxis es la siguiente: INSERT INTO Tabla (campo1.

TablaOrigen... . campoN) SELECT TablaOrigen.. 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.campoN FROM TablaOrigen M. campo2. TablaOrigen..Consultas de Actualización Para seleccionar registros e insertarlos en una tabla nueva En este caso la sintaxis es la siguiente: SELECT campo1. .. campo2.campo2. Gabriela de Jesús López Ruiz 4444 ... en C... .campo1.

Consultas de Actualización Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en un criterio específico.. CampoN=ValorN WHERE Criterio. M. Gabriela de Jesús López Ruiz 4545 .. Su sintaxis es: UPDATE Tabla SET Campo1=Valor1. Campo2=Valor2. . en C.

401298*10-45 para valores negativos.5807. 1.203. Gabriela de Jesús López Ruiz gaby_dlib@yahoo.5808 y 922. M.477. y 0.com. Un valor de fecha u hora entre los años 100 y 9999.401298*10-45a 3.mx .402823*1038a -1.685.685.402823*1038para valores positivos. Valores Si/No ó True/False Un valor entero entre 0 y 255.337.203.337. en C.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 Descripción Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. Un número incrementado automáticamente (de tipo Long) Un entero escalable entre 922. Un valor en punto flotante de precisión simple con un rango de -3.477.

.INTO. Puede utilizar tres formas de sintaxis para crear una subconsulta: comparación [ANY | ALL | SOME] (instrucción sql) expresión [NOT] IN (instrucción sql) [NOT] EXISTS (instrucción sql) M.INTO.. INSERT.. o UPDATE o dentro de otra subconsulta.. DELETE. en C.Subconsultas Una subconsulta es una instrucción SELECT anidada dentro de una instrucción SELECT. Gabriela de Jesús López Ruiz 4747 . SELECT.

los campos deben ser del mismo tipo de datos y contener el mismo tipo de datos. tb2 Son los nombres de las tablas desde las que se combinan los registros.campo1 comp tb2. campo1. en C. >=. >. <=.Consultas de Unión Internas Consultas de Combinación entre tablas Las vinculaciones entre tablas se realiza mediante la cláusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo común. Si no son numéricos. pero no tienen que tener el mismo nombre. comp Es cualquier operador de comparación relacional : =. <. M. Su sintaxis es: SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo2 En donde: tb1. campo2 Son los nombres de los campos que se combinan. Gabriela de Jesús López Ruiz 4848 . o <>.

M. Esto crea una combinación por equivalencia. NombreProducto FROM Categorias INNER JOIN Productos ON Categorias. El ejemplo siguiente muestra cómo podría combinar las tablas Categorías y Productos basándose en el campo IDCategoria: SELECT Nombre_Categoría. conocida también como unión interna. Las combinaciones Equi son las más comunes. en C. éstas combinan los registros de dos tablas siempre que haya concordancia de valores en un campo común a ambas tablas.Consultas de Unión Internas Se puede utilizar una operación INNER JOIN en cualquier cláusula FROM.IDCategoria = Productos. Gabriela de Jesús López Ruiz 4949 .IDCategoria.

campo2) OR ON tb1.campo3 comp tbx. También puede anidar instrucciones JOIN utilizando la siguiente sintaxis: SELECT campos FROM tb1 INNER JOIN (tb2 INNER JOIN [( ]tb3 [INNER JOIN [( ]tablax [INNER JOIN .campo1 comp tb2. utilizando la sintaxis siguiente: SELECT campos FROM tabla1 INNER JOIN tabla2 ON tb1.campo2.Consultas de Unión Internas También se pueden enlazar varias cláusulas ON en una instrucción JOIN.campo3)].campox)] ON tb2.campo3) ON tb1. M..campo2 comp tb3.campo3 comp tb2.campo1 AND ON tb1. Gabriela de Jesús López Ruiz 5050 . en C..campo2 comp tb2.)] ON tb3.campo1 comp tb2.

FROM tabla1 as alias1.columna = alias2.nombre.puesto.num_emp M. t. Gabriela de Jesús López Ruiz 5151 .s.columna. para visualizar el número. t. alias2.num_emp. La sintaxis en la siguiente: SELECT alias1..nombre. en C.columna. nombre y puesto de cada empleado.. comparando valores de dos columnas con el mismo tipo de datos. junto con el número.Consultas de Autocombinación La autocombinación se utiliza para unir una tabla consigo misma. s. tabla2 as alias2 WHERE alias1.num_sup = s.num_sup. nombre y puesto del supervisor de cada uno de ellos se utilizaría la siguiente sentencia: SELECT t. empleados AS s WHERE t. t.columna AND otras condiciones Por ejemplo. .puesto FROM empleados AS t.

al menos. Esta pos cláusula en opcional. Esta cláusula en opcional.com. en C... campo2 tipo (tamaño) índice2 . un campo. Es una cláusula CONSTRAINT que define el tipo de indice índice multicampos a crear.Creación de Tablas Nuevas CREATE TABLE tabla (campo1 tipo (tamaño) índice1 . .. Es el tipo de datos de campo en la nueva tabla. .. Un índice multi campo es aquel que multicam está indexado por el contenido de varios campos. M. índice1 Es una cláusula CONSTRAINT que define el tipo de indice a índice2 crear.. La nueva tabla debe contener. Es el nombre del campo o de los campos que se van a crear en la nueva tabla. ) tabla campo1 campo2 tipo tamaño Descripción Es el nombre de la tabla que se va a crear. índice Parte multicampo . (Ver Tipos de Datos) Es el tamaño del campo sólo se aplica para campos de tipo texto. Gabriela de Jesús López Ruiz gaby_dlib@yahoo.mx .

648 y 2. 4. caracter M. y 0.Tipos de datos Tipo de Datos Longitud Descripción Un valor en punto flotante de doble precisión con un rango de -1. carácter Según se De cero 1 gigabyte.94065645841247*10-324para valores negativos.79769313486232*10308a -4.483.com.767.147.mx .483. Un entero corto entre -32. Utilizado para objetos OLE.79769313486232*10308para valores positivos.768 y 32.94065645841247*10-324a 1.2 gigabytes.147. Gabriela de Jesús López Ruiz gaby_dlib@yahoo. necesite 1 byte por De cero a 255 caracteres.647. Un entero largo entre -2. DOUBLE 8 bytes SHORT LONG LONGTEXT LONGBINARY TEXT 2 bytes 4 bytes 1 byte por De cero a un máximo de 1. en C.

en C. Gabriela de Jesús López Ruiz 5454 .PHP M.

Gabriela de Jesús López Ruiz 5555 .INTRODUCCIÓN: Diferencias entre ASP y PHP 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 Plataformas Microsoft Varios lenguajes (VBScript. JScript) Multiplataforma Un solo lenguaje: PHP M. en C.

en C.Características de PHP l • l l l l Lenguaje más fácil y potente Más rápido que ASP Integración perfecta con 8 servidores HTTP Acceso a 20 tipos de Bases de Datos Diseño modular de fácil ampliación Licencia abierta M. Gabriela de Jesús López Ruiz 5656 .

Gabriela de Jesús Schumann (Dortmund. en C. Nebraska) • Sascha M. López Ruiz 5757 .Historia y Desarrolladores Fechas • Inicio del desarrollo en otoño de 1994 • PHP Versión 1 en primavera 1995 • PHP Versión 2 1995-1997 • PHP Versión 3 1997-2000 • PHP Versión 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.

en C.Estadísticas de uso M. Gabriela de Jesús López Ruiz 5858 .

73%) Frontpage 133.329 Servidores Apache analizados 429.746 Direcciones IP 19.com Septiembre 2000 Informe sobre Módulos Apache M.576 (8.642 (18.030 (5. 637.634 Dominios.44%) mod_ssl 78.09%) mod_perl 111.404 (3.Estadísticas de uso Fuente: Netcraft Agosto 2000 3.589 (32.823.296 Dominios analizados PHP instalado en el 16.314.414 (10. en C.90%) OpenSSL 46.322. Gabriela de Jesús López Ruiz 5959 .49%) PHP 247.7% de todos los dominios 1.51%) ApacheJServ Fuente: SecuritySpace.

0 • WSAPI (O'Reilly WebSite) • phttpd • thttpd M.Plataformas soportadas Plataformas (actualidad): Plataformas (en perparación): • • 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. Gabriela de Jesús López Ruiz 6060 . en C. Zeus) • NSAPI (Netscape iPlanet) • Java servlet • AOLServer • Roxen Servidores (en preparación): • Apache 2.

gdbm. Berkeley db) M. Gabriela de Jesús López Ruiz 6161 .OCI8) PostgreSQL Raima Velocis Solid Sybase • • • dBase filePro (sólo lectura) dbm (ndbm. en C.Bases de datos soportadas SQL • • • • • • • • • • • • • • • • Otros Adabas D Empress IBM DB2 Informix Ingres Interbase Frontbase mSQL Direct MS-SQL MySQL ODBC Oracle (OCI7.

sentencias condicionales. es un lenguaje de programación con variables. es decir. XML o WML. funciones. en C. Gabriela de Jesús López Ruiz 6262 . bucles. M. Está mas cercano a JavaScript o a C.PHP El lenguaje PHP es un lenguaje de programación de estilo clásico. Observar: Que PHP no es un lenguaje de marcas como podría ser HTML.

M. Gabriela de Jesús López Ruiz 6363 . en C. por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El resultado es ● Cuarto nivel normalmente una página HTML ● pero igualmente podría ser una Quinto nivel pagina WML. PHP se ejecuta en el servidor.PHP A diferencia de JavaScript que se ejecuta en el navegador. 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.

es independiente del navegador. Gabriela de Jesús López Ruiz 6464 . M. La ventaja que tiene PHP sobre otros lenguajes de programación que se ejecutan en el servidor (como podrían ser los script CGI Perl). pero sin embargo para que sus páginas PHP funcionen.PHP Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte. en C. el servidor donde están alojadas debe soportar PHP. es que nos permite intercalar las sentencias PHP en las paginas HTML.

en C. Gabriela de Jesús López Ruiz 6565 .PHP M.

en C. Gabriela de Jesús López Ruiz 6666 .PHP M.

PHP . Gabriela de Jesús López Ruiz 6767 . números decimales. caracteres . Tampoco tienen tipos. En PHP todas las variables comienzan con el símbolo de peso $ y no es necesario definir una variable antes de usarla. M. en C..Variables Una variable es un contenedor de información. el contenido de las variables se puede leer y se puede cambiar durante la ejecución de una página PHP (antes de que lo vea el cliente).. es decir que una misma variable puede contener un número y luego puede contener caracteres. en el que podemos meter números enteros.

PHP – Variables .Ejemplo M. en C. Gabriela de Jesús López Ruiz 6868 .

Las variables globales. en C. Gabriela de Jesús López Ruiz 6969 .Ejemplo Existen 2 tipos de variables: Las variables locales.. M.PHP – Variables .solo pueden ser usadas dentro de funciones.. podemos acceder a una variable global desde una función con la instrucción global nombre_variable.tienen su ámbito de uso fuera de las funciones.

M. en C.PHP – Aritméticos Los operadores de PHP son muy parecidos a los de C y JavaScript. Gabriela de Jesús López Ruiz 7070 . Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.

Ejemplo M. en C. Gabriela de Jesús López Ruiz 7171 .PHP – Aritméticos .

Gabriela de Jesús López Ruiz 7272 . en C.PHP – Comparación Los operadores de comparación son usados para comparar valores y así poder tomar decisiones. M.

Ejemplo M. en C.PHP – Comparación . Gabriela de Jesús López Ruiz 7373 .

Gabriela de Jesús López Ruiz 7474 . M. en C. combinando los posibles valores de estas.PHP – Operadores lógicos Los operadores lógicos son usados para evaluar varias comparaciones.

Ejemplo M. en C. Gabriela de Jesús López Ruiz 7575 .PHP – Operadores lógicos .

en C. Gabriela de Jesús López Ruiz 7676 . Las más frecuentes son la instrucción if y la instrucción switch. ● <?php if (condición) { Sentencias a ejecutar cuando la condición es cierta. } ?> if e - se l M. } else { Sentencias a ejecutar cuando la condición es falsa.PHP – Condicionales Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del resultado de evaluar una condición.

PHP – Condicionales La sentencia if ejecuta una serie de instrucciones u otras dependiendo de la condición M. en C. Gabriela de Jesús López Ruiz 7777 .

%> M. </script> <% echo 'Método de compatibilidad con ASP'.Delimitadores Archivo . Gabriela de Jesús López Ruiz 7878 .php <? echo 'Primer método de delimitar código PHP'. en C. el más usado'. ?> <script language="php"> echo 'Algunos editores (como el FrontPage) Sólo entienden este método'. ? > <?php echo 'Segundo método.

Delimitadores. Ejemplo. Gabriela de Jesús López Ruiz 7979 . <%@ Language=VBScript %> <html> <body> <%IF Hour(time)>20 OR Hour(time)<4 THEN%> Buenas noches. en C. <%ELSE%> Buenos días. <%END IF%> </body> </html> M.

Gabriela de Jesús López Ruiz 8080 . <?php } else { ?> Buenos días. en C. <html> <body> <?php if ( Hour(time)>20 || Hour(time)<4) { ?> Buenas noches. Ejemplo.Delimitadores. <?php }?> </body> </html> M.

”. <html> <body> <?php if ( Hour(time)>20 || Hour(time)<4) { echo “Buenas noches. en C.Delimitadores. } ?> </body> M. } else { echo “Buenos días. Ejemplo.”. Gabriela de Jesús </html> López Ruiz 8181 .

en C. Gabriela de Jesús López Ruiz 8282 . Y H:i:s". time()) ).Fin de línea print( date("M d. time() ) ) . Y H:i:s". M. print ( date( "M d.

* Pueden extenderse durante varias líneas. Hasta fin de línea.Comentarios /* Comentarios estilo C. Hasta fin de línea. # Comentarios estilo Perl. Gabriela de Jesús López Ruiz 8383 . */ // Comentarios estilo C++. M. en C.

Declaración y Uso. Gabriela de Jesús López Ruiz 8484 .Variables. M. $var_3 = $var_1 * 2. en C. $var_2 = ’hola’. $var_1 = 123. • • NO hace falta declararlas Llevan delante el signo de peso ‘$’.

Tipado.14 * $mi_variable. M. Gabriela de Jesús López Ruiz 8585 . Variables débilmente tipadas (tipo mixed).Variables. en C. new MiClase(). // Float. // Objeto. $mi_variable $mi_variable $mi_variable $mi_variable = = = = ’Inicializamos como texto’. 3. 3. // Entero.

Conversión automática. PHP realiza conversiones automáticas de tipo: $mivar = 123. en C. // para realizar la suma M. Gabriela de Jesús López Ruiz 8686 . echo $mivar. // Se convierte a string $mivar = ’3’. Tipado.Variables. // Se convierte a entero $mivar = 2 + $mivar.

Tipado. Operador cast: $mivar = (string)123. M. Conversión explícita. Gabriela de Jesús López Ruiz 8787 . settype($mivar. "double").Variables. Cabiar el tipo de una variable: $mivar = 12. en C.

Ámbito. En una función.Variables. En el cuerpo de un fichero. M. Gabriela de Jesús López Ruiz 8888 . en C. son LOCALES a esa función. sólo pueden ser accedidas a través del operador “->” sobre el nombre del objeto. Dentro de una clase. las variables son GLOBALES al fichero y ficheros incluidos.

$b = &$a. en C. // Pero $b sigue valiendo 1 M. unset ($a).Referencias. Gabriela de Jesús López Ruiz 8989 . Se definen con el carácter ‘&’: $alias = &$variable Se puede eliminar una referencia con la función unset(): $a = 1.

• Enteros. Arrays. M. Objetos: $MiVar = new MiClase(). Punto flotante. $MiVar = 1. Gabriela de Jesús López Ruiz 9090 • • • • . octal o hexadecimal. $MiVar = “Cadena de texto\n”.Tipos de datos. Strings. $MiVar[2] = 123. en decimal. $MiVar = 123. en C.3e4.

$MiArray[1] = “hola!!”. en C. // 3 M. $MiArray[] = 3.Tipos de datos. Gabriela de Jesús López Ruiz 9191 . $MiArray[0] = 1. echo $MiArray[2]. Arrays.

M. // “Homer” Y pueden tener más de una dimensión: $MiOtroArray[1][“pepe”][4] = “3 dimensiones!”. echo $MiArray[0]. Funcionan como vectores: $MiArray[“nombre”] = “Homer”. Gabriela de Jesús López Ruiz 9292 . en C.Tipos de datos. Arrays (2). // 1 echo $MiArray[“nombre”].

M. 3 => 8.Tipos de datos. en C. 5). Gabriela de Jesús López Ruiz 9393 . 2 => 5. Arrays (3). $YOtroArray = array( 0 => 1. “hola”. “nombre” => “Homer” ). También se pueden definir con el constructor array() : $OtroArrayMas = array( 1. 1 => “hola”.

Gabriela de Jesús López Ruiz 9494 .3} C arácter en octal \x[0-9A-Fa-f]{1. al igual que en C : S ecu en cia S ig n ifica d o \n N ueva línea \r R etorno de carro \t Tabulació horizontal n \\ B arra invertida \$ S ím bolo del dólar \" D obles com illas \[0-7]{1. Comillas dobles. Strings.2}C arácter en hexadecim al M. • Si se delim itan entre com illas dobles (”).Tipos de datos. en C. se pueden incluir ciertas secuencias de escape. se expandirá cualquier variable que haya dentro de la cadena. Adem ás.

Comillas simples.) M. Gabriela de Jesús López Ruiz 9595 . las variables no se expanden y además las únicas secuencias de escape que se reconocen son “\\” y “\'” (barra invertida y comillas simples. Strings (2).Tipos de datos. en C. Si se delimitan entre comillas simples (’).

$cad = $cad .’ : $cad = ‘A esta cadena ‘.Tipos de datos. Gabriela de Jesús López Ruiz 9696 . Para concatenar cadenas se utiliza el operador ‘. en C. Strings (4).’. ‘le vamos a añadir más texto. M. Se puede acceder a cada carácter como si fuera un array: $cad2 = “Tercer carácter de \$cad : ‘$cad[2]’”.

Las constantes en PHP se diferencian de las variables en que: • • • • no llevan el símbolo del dólar delante. puede accederse a ellas desde cualquier parte del código donde han sido definidas. sólo pueden contener valores escalares. no vectores. Gabriela de Jesús López Ruiz 9797 .Constantes. sin restricciones de ámbito como en las variables. no pueden ser redefinidas o borradas una vez definidas. M. “Hola. mundo!”). echo “La constante SALUDO vale ” . Las constantes se definen con la función define(): define(“SALUDO”. en C. SALUDO.

en C. Comportamiento funciones: • mixto en variables y • En las variables. las mayúsculas y minúsculas IMPORTAN.Mayúsculas y minúsculas. Gabriela de Jesús López Ruiz 9898 . M. En los nombres de funciones y palabras reservadas. las mayúsculas NO IMPORTAN.

Operación $a + $b $a . en C.$b $a * $b $a / $b $a % $b Nombre Suma Resta Multiplicación División Módulo Resultado Suma de $a y $b. Diferencia entre $a y $b. Gabriela de Jesús López Ruiz 9999 .Operadores aritméticos. Resto de la operación $a/$b. M. Cociente de $a y $b. Producto de $a y $b.

y Pre-incremento devuelve $a (incrementado). Operación Nombre ++$a $a++ --$a $a-- Resultado Incrementa $a en 1. Decrementa $a en 1. Devuelve $a. y después lo Post-incremento incrementa en 1. en C. y después lo Post-decremento incrementa en 1. y Pre-decremento después lo devuelve. M.Auto-incremento y auto-decremento. Gabriela de Jesús López Ruiz 100100 . Devuelve $a.

en C. Se invierten los bits (se cambian 1 No por 0 y viceversa. Drch. Se ponen a 1 los bits que están a O Exclusivo 1 en $a o $b. pero no en ambos. Izq. M. izquierda todos los bits de $a. Gabriela de Jesús López Ruiz 101101 . Desplaza $b posiciones a la Desp.Operadores de bits.) Desplaza $b posiciones a la Desp. Operación Nombre $a & $b $a | $b $a ^ $b ~ $a $a << $b $a >> $b Resultado Se ponen a 1 los bits que están a Y 1 en $a y $b. Se ponen a 1 los bits que están a O 1 en $a o $b. derecha todos los bits de $a.

Operadores lógicos. Operación Nombre $a and $b Y $a or $b O $a xor $b ! $a $a && $b $a || $b Resultado Cierto si $a Cierto si $a Cierto si $a O Exclusivo. o $b es cierto. M. y $b son ciertos. o $b es cierto. pero no es falso. o $b es cierto. ambos. en C. Gabriela de Jesús López Ruiz 102102 . No Cierto si $a Y Cierto si $a O Cierto si $a y $b son ciertos.

el tipo coincide. Compara si el valor es el mismo y. M. Compara si el valor de los dos $a == $b Igualdad operandos es el mismo. igualdad e identidad. Operación Nombre Resultado Asigna el valor de una variable o $a = $b Asignación expresión del segundo término a la variable del primer término. Asignación. en C. $a === $b Identidad además.Operadores. Gabriela de Jesús López Ruiz 103103 .

$var3 = “1”. en C. Ejemplo. son iguales Son iguales (tras conversión) Cierto. // $var2 = 1.Operadores. igualdad e identidad. ($var1 == $var2) ($var1 == $var3) ($var1 === $var2) ($var1 === $var3) Asignación // // // // Cierto. Gabriela de Jesús López Ruiz 104104 . el tipo no coincide M. $var1 = 1. son idénticas FALSO. Asignación.

$var1 = 1. en C.Operadores. Error. if( $var1 = $var2 ) { echo ‘iguales’. $var2 = 2. } M. Gabriela de Jesús López Ruiz 105105 . Asignación. igualdad e identidad. } else { echo ‘distintas’.

en C.Comparaciones. Cierto si $a es estrictamente $a < $b Menor que menor que $b. Operación 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 idéntico si no tienen el mismo tipo. Cierto si $a es mayor o igual $a >= $b Mayor o igual que que $b. Cierto si $a es menor o igual $a <= $b Menor o igual que que $b. M. Cierto si $a es estrictamente $a > $b Mayor que mayor que $b. Gabriela de Jesús López Ruiz 106106 .

$a . Gabriela de Jesús López Ruiz 107107 . $a + $b. $c = ‘El resultado de ‘ .Operadores de cadenas. $b = 2. $b . M. ‘ es ‘ . ‘ + ‘ . en C. $a = 1.

M. en C. Gabriela de Jesús López Ruiz 108108 . $var3 >>= 1.= >>= y <<= $var1 += 3.Atajos en la asignación. // $var2 = $var2 / 2. += -= *= /= %= &= ^= . // $var3 = $var3 >> 1. // $var1 = $var1 + 3. $var2 /= 2.

Precedencia. Gabriela de Jesús López Ruiz 109109 . or xor and print = += -= *= /= . en C.(int) (double) (string) (array) (object) @ [ new M. */% ! ~ ++ -. .= %= &= |= ^= ~= <<= >>= ?: || && | ^ & == != === !== < <= > >= << >> +-.

Gabriela de Jesús López Ruiz 110110 . if … elseif … else if (expresión) { comandos } if (expresión) { comandos_cierto } else { comandos_falso } M. en C.Estructuras de control.

. if … elseif … else (2) if (expresion1) { comandos1 } elseif (expresion2) { comandos2 } elseif (expresion3) { comandos3 } . else { comandosElse } M..Estructuras de control. Gabriela de Jesús López Ruiz 111111 . en C.

while y do … while while (expresión) { comandos } do { comandos } while (expresión). en C. Gabriela de Jesús López Ruiz 112112 . M.

expresión3) { comandos } $factorial5 = 1. en C. for ($i = 2.for for (expresión1. } M. $i <= 5. Gabriela de Jesús López Ruiz 113113 . expresión2. $i++ ) { $factorial5 *= $i.

Gabriela de Jesús López Ruiz 114114 . } for ($factorial5=1. en C. $i <= 5. $i=2. $i = 2. M. $factorial5*=$i. $i++). $i++ ) { $factorial5 = $factorial5 * $i. $i<=5.for (2) for ($factorial5 = 1.

} ?> M. $i++) { echo $MiVar. ’ ASP <%FOR i=1 TO 100%> <%=MiVar%> <%NEXT%> // PHP <?php for ($i = 1. $i <= 100. en C.for (3). Gabriela de Jesús López Ruiz 115115 . ASP.

de $a: Jesús M.foreach foreach (array as variable) { comandos } $a = array (1. } // // // // Valor Valor Valor Valor actual de $a: 1 actual de $a: 2 actualC. foreach ($a as $v) { print "Valor actual de \$a: $v. en Gabriela de 3 actual López Ruiz 17 de $a: 116116 . 2. 3. 17).\n".

foreach (2) foreach (array as indice => variable) { comandos } M. en C. Gabriela de Jesús López Ruiz 117117 .

en C.. case valorN: comandosN default: comandosDefault } M. Gabriela de Jesús López Ruiz 118118 .switch switch (variable) { case valor1: comandos1 case valor2: comandos2 ..

case 2: echo “Código del 2”. case 3: echo “Código del 3”.switch (2) switch ($i) { case 1: echo “Código del 1”. M. en C. Gabriela de Jesús López Ruiz 119119 . break.

$x = 1.Cierto o falso. Valores numéricos. // $x if( $x ) // se evalúa a cierto $x = 0. // $x definida como el entero 0 if( $x ) // se evalúa a falso M. en C. Gabriela de Jesús López Ruiz 120120 .

Cierto o falso. $x = "hello". // asignamos una cadena a $x if( $x ) // se evalúa a cierto $x = "". Gabriela de Jesús López Ruiz 121121 . Strings. en C. if( $x ) // cadena vacía // evalúa a falso // // // // Excepción: cero en una cadena evalúa a falso (se convierte a entero) M. if( $x ) $x = "0".

"b". $x = array().Cierto o falso. en C. if( $x ) // se evalúa a cierto M. Arrays. "c" ). Gabriela de Jesús López Ruiz 122122 . if( $x ) // $x es un array vacío // se evalúa como falso $x = array( "a".

if( $x ) // se evalúa a falso Class Yod { // clase no vacía var $x = 1. } $x = new Yod().Cierto o falso. Gabriela de Jesús López Ruiz 123123 . Objetos. Class Yod {} // clase vacía $x = new Yod(). if( $x ) // se evalúa a cierto M. en C.

Cierto o falso. • TRUE es el valor entero decimal 1. en C. Constantes. FALSE es la cadena vacía. Gabriela de Jesús López Ruiz 124124 . • M.

$arg_2. Gabriela de Jesús López Ruiz 125125 . en C.. . $arg_n) { comandos return $salida. function nombre ($arg_1.Funciones. } M...

} if ($valor == 1 || $valor == 2) { return $valor. for ($i = 2. } $factorial5 = factorial(5). Gabriela de Jesús López Ruiz 126126 . $i <= $valor. (2) Ejemplo. M. en C. } $ret = 1. // Error } if ($valor == 0 ) { return 1.Funciones. function factorial ($valor) { if ($valor < 0) { return –1. $i++) { $ret = $ret * $i. } return $ret.

Gabriela de Jesús López Ruiz 127127 . en C.net”) { echo ‘<a href=”’ .php. $url . (3) Valores por defecto.Funciones. ‘”>Pulsa aquí</a>’. } M. function enlace($url = ”www.

// Aquí $a == 6 M. Argumentos por referencia. function MiFuncion(&$var) { $var++. MiFuncion($a). Gabriela de Jesús López Ruiz 128128 . en C.Funciones. } $a = 5.

Gabriela de Jesús López Ruiz 129129 . en C.Funciones. function &buscar_cliente($nombre) { // . Devolución por referencia. } $cliente = &buscar_cliente(“Juan”). return $registro.... echo $cliente->dni. M. buscamos ..

foreach ($ficheros as $fichero) { include($fichero). Gabriela de Jesús López Ruiz 130130 .inc”). ”dos”. } } M. If ($incluir == TRUE) { $ficheros = array(“uno”. en C. ”tres”).include y require require(“cabecera.

Programando en PHP M. en C. Gabriela de Jesús López Ruiz 131131 .

en C.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?>. <form action="accion. M. Gabriela de Jesús López Ruiz 132132 .Forms. Valores sencillos. Tiene <?=$edad?> años.

} ?> M.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 elección:<br>". Gabriela de Jesús López Ruiz 133133 . Valores múltiples. <form action="accion. en C.Forms. foreach($menu as $plato) { echo "$plato<br>\n".

“”.Cookies. “expiraré dentro de una hora”. int fin [. string dominio [. M. int seguro]]]]]) setcookie(“PruebaCookie”. Gabriela de Jesús López Ruiz 134134 . string camino [. time() + 3600). setcookie(“PruebaCookie”. time()). int setcookie (string nombre [. string valor [. en C.

print($contador)..]) bool session_destroy(void). Gabriela de Jesús López Ruiz 135135 . bool session_register (mixed name [. mixed . bool session_start(void). session_register("contador"). un contador session_start(). // Ejemplo.. $contador++. en C.php?<?=SID?>">Continuar</A> M.Sesiones. <A HREF="siguiente.

Tratamiento de errores. 'r'). $fichero = @fopen ($nombre. if( !$fichero ) { die("No se pudo abrir el fichero ($nombre)"). Gabriela de Jesús López Ruiz 136136 . } M. $nombre = '/etc/shadow'. en C.

Cadenas. string str2) int strcasecmp (string str1. int strcmp (string str1. $b) == 0) { echo ‘iguales’. } M. en C. Comparación. Gabriela de Jesús López Ruiz 137137 . string str2) // Ejemplo: if (strcmp($a.

substr('abcdef'. string substr (string cadena. int tamaño]) $str $str $str $str = = = = substr('abcdef'. -2). -2). 3). substr('abcdef'. Gabriela de Jesús López Ruiz 138138 . int inicio [. // // // // cde ef e bcd M. en C. -2. Subcadenas. 1. 1). substr('abcdef'. 2.Cadenas.

char referencia) string strstr (string cadena. en C. Gabriela de Jesús López Ruiz 139139 . 5). int inicio]) int strrpos (string cadena. (2) int strpos (string cadena. 'de'). string referencia) $i // $i // $s // $s // = strpos('cadena de prueba'. Subcadenas. 'de'). $i = 2 = strpos('cadena de prueba'.Cadenas. $i = 7 = strrpos('cadena de prueba'. 'de'). $s = dena de prueba M. string referencia [. 'de'. $s = 7 = strstr('cadena de prueba'.

5. Gabriela de Jesús López Ruiz 140140 . Entero en octal. en C. mixed args..Cadenas... Entero en binario. 3. 4. Cadena. Relleno Secuencias de formato Alineación Número de caracteres Precisión Tipo % b c d f o s x X El carácter de tanto por ciento.]) string sprintf (string formato [. Double en punto flotante.. Entero en decimal. mixed args. Entero en hexadecimal (mayúsculas). Entero en hexadecimal (minúsculas). M. Imprimir y formatear.]) 1. Entero como carácter ASCII. 2. int printf (string formato [.

$pago2 = 54.2f".Cadenas. $pago1 = 68. $año). Gabriela de Jesús López Ruiz 141141 . $mes.35.75. // echo $pago mostraría "123. Imprimir y formatear. $dia. (2) printf(“%02d/%02d/%04d”. $pago = $pago1 + $pago2. M. rellenando con ceros printf ("%01. $pago). en C.1" // Mostrar al menos un dígito entero y exactamente // dos decimales.

// Habrá que escapar el apóstrofe $sql = ‘SELECT * FROM usuarios WHERE apellido = \’’ . en C. $busca = “D’Alton”. Gabriela de Jesús López Ruiz 142142 . SQL.Escapar caracteres. addslashes($busca) . M. ‘\’’.

en C. ¿Qué pasa si $usuario=“pepe . Shell. string system (string comando [. apachectl stop” ? string escapeshellcmd (string comando) M. int valor_salida]) echo system(“finger $usuario”).Escapar caracteres. Gabriela de Jesús López Ruiz 143143 .

htmlspecialchars($valor) . // <input type=hidden name=var value=”a&gt. en C.b”> string nl2br (string cadena) M. Gabriela de Jesús López Ruiz 144144 . echo ‘<input type=hidden name=var value=”’ . ‘”>’. HTML.Escapar caracteres. $valor = “a>b”.

array explode (string delimitador. $campos). Gabriela de Jesús López Ruiz 145145 . $cadena). en C. M.Extraer campos. int límite]) $cadena = “campo1:campo2:campo3”. $campos = explode(“:”. array campos) $cadena = implode(“:”. string implode (string delimitador. string cadena [.

array split (string delimitador. Expresiones regulares.-]'. $fecha). int límite]) $fecha = "12/4 2000". M. $campos = split ('[ /. string cadena [. Gabriela de Jesús López Ruiz 146146 .Extraer campos. en C.

next(). next($arr). en C. each($arr). end($arr). key($arr). end(). reset($arr). Gabriela de Jesús López Ruiz 147147 . current($arr).1.Recorrer un array.57) M. key() $arr = array(1. each(). each($arr).'perro'=>'gato').1.1) array(1. // // // // // // // // // // // 1 cosa cosa 1 gato gato perro 1 array(0. current($arr). reset().57.'cosa'. current($arr). current().'gato'=>'raton'. prev($arr). each($arr).'foo') array(2.

• rsort(): Ordena por contenido en orden descendente.Ordenar un array. sort(): Ordena el array por contenido en orden ascendente. en C. Gabriela de Jesús • 148148 López Ruiz . • rksort(): Ordena por el índice en orden descendente. • ksort(): Ordena por el índice en orden ascendente. M.

en C. Gabriela de Jesús López Ruiz 149149 .Otras funciones. Eliminar espacios en blanco: string trim (string cadena) string ltrim (string cadena) string rtrim (string cadena) Mayúsculas y minúsculas: string strtoupper (string cadena) string strtolower (string cadena) string ucfirst (string cadena) M.

int fopen (string nombre.Ficheros. • ‘w+’ Lectura/escritura. int include_path]) Modos: • ‘r’ Sólo lectura. en C. • ‘w’ Sólo escritura. Puntero al final. Abrir y cerrar. Se trunca el fichero. string modo [. • ‘r+’ Lectura/escritura. • int fclose (int identificador) ‘a+’ Lectura/escritura. • ‘a’ Sólo escritura. Puntero al inicio. Puntero al final. Gabriela de Jesús López Ruiz 150150 . Puntero al inicio. M. Se trunca el fichero.

en C.]) int feof (int identificador) array file (string fichero [.. int include_path]) int fwrite (int identificador. string fgets (int identificador. string formato [. string var1. int tamaño) mixed fscanf (int identificador.Ficheros. Leer y escribir.. string cadena [. int tamaño]) M. Gabriela de Jesús López Ruiz 151151 .

int copy (string origen. en C.Ficheros. Gabriela de Jesús López Ruiz 152152 . string destino) int unlink (string fichero) M. Copiar / renombrar / borrar. string destino) int rename (string origen.

Gabriela de Jesús López Ruiz 153153 . en C. int modo) int rmdir (string nombre) int opendir (string nombre) string readdir (int identificador) void closedir (int identificador) M.Directorios. int chdir (string directorio) int mkdir (string nombre.

} closedir($directorio). $direcotrio = opendir('. Listado de contenidos.Directorio. Gabriela de Jesús López Ruiz 154154 .'). M. en C. while (($fichero = readdir($directorio)) !== FALSE) { echo "$fichero\n".

<FORM ENCTYPE="multipart/form-data" ACTION="recibir.Ficheros. Envío. $fichero_type . $fichero_name. en C. Gabriela de Jesús 155155 López Ruiz rename($fichero.php” </FORM> echo ’Recibido el fichero: "’.’"<br>’. echo ’Tamaño del fichero: ’ .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. ’<br>’. echo ’Tipo mime: ’ . ’<br>’. $fichero_name). M. . $fichero_size .

Definición de una clase. function metodos ($parametros) { codigo } } M. Gabriela de Jesús López Ruiz 156156 . class NombreClase { var $variables.POO. en C.

El coche está parado. en C. function coche() { $this->velocidad = 0. } // Método frenar. Gabriela de Jesús López Ruiz 157157 . // Constructor por defecto. function acelerar() { $this->velocidad++. } // Constructor que indica la velocidad inicial. } } } M. Definición de una clase. function frenar() { if ($this->velocidad > 0) { $this->velocidad--. El coche va más lento hasta frenar. El coche va más rápido. function coche($vel) { $this->velocidad = $vel. } // Método acelerar. // Velocidad actual Ejemplo. class Coche { var $velocidad.POO.

class ClaseDerivada extends ClaseBase { // // // // } definición de métodos y variables exclusivos de ClaseDerivada.POO. Herencia. y redefinición (especialización) de métodos de ClaseBase M. Gabriela de Jesús López Ruiz 158158 . en C.

} // Turbo propulsión function turbo() { $this->velocidad = 200. Ejemplo. en C. Herencia. } // ¡El coche habla! function habla() { echo “Hola. Michael. Gabriela de Jesús López Ruiz 159159 . class CocheFantastico extends coche() { // Frenado instantáneo function frena() { $this->velocidad = 0. } } M.”.POO. } // ¡Salta! function salta() { echo “Boing!!”.

$MiCocheSeMueve = new Coche(10). // Uso $MiCoche->acelerar(). en C.POO. M. $MiCoche->acelerar(). $MiCoche->frenar(). // Creación (instanciación) $MiCoche = new Coche. Gabriela de Jesús López Ruiz 160160 . echo $MiCoche->velocidad. $MiCoche->acelerar(). Creación y uso de objetos.

int mysql_connect ([string servidor [:puerto] [:/camino/al/socket] [.BD. string usuario [. Gabriela de Jesús López Ruiz 161161 . string contraseña]]]) int mysql_close ([int identificador]) int mysql_pconnect ([string servidor [:puerto] [:/camino/al/socket] [. string contraseña]]]) int mysql_pclose ([int identificador]) M. en C. Conexión y desconexión. string usuario [.

"nobody".es". en C. } print ("Conexión realizada"). mysql_close ($link). if (!$link) { die ("No se pudo conectar").mmlabx.BD. Gabriela de Jesús López Ruiz 162162 . Ejemplo.ua. ""). $link = mysql_connect ("www. Conexión y desconexión. M.

Gabriela de Jesús López Ruiz 163163 . int mysql_select_db (string nombre_bd [. } M. int identificador]) if (!mysql_select_db("prueba".BD. $link)) { die (“No existe la BD”). Elegir una BD. en C.

en C. creditos. descripcion. int identificador]) int mysql_db_query (string nombre_bd. $link). Querys. int identificador]) int mysql_free_result (int result) $query = "SELECT codigo. $asignaturas = mysql_query($query. nombre. int mysql_query (string query [.BD. if (!$asignaturas) { die (“Error en el query”). string query [. Gabriela de Jesús López Ruiz 164164 . } M. tipo FROM asignatura".

int mysql_affected_rows ([int identificador]) int mysql_num_rows (int resultado) array mysql_fetch_row (int resultado) array mysql_fetch_array(int resultado [. Extraer información. Gabriela de Jesús López Ruiz resultado) 165165 .BD. en C. int tipo_resultado]) object mysql_fetch_object (int result) array mysql_fetch_lengths (int M.

“\n”. en C. Gabriela de Jesús López Ruiz 166166 . } M. “\n”. $fila[‘nombre’] . ‘ ‘ .BD. $fila>nombre . while ($fila = mysql_fetch_array($asignaturas)) { echo $fila[‘codigo’] . Ejemplos. Extraer información. while ($fila = } mysql_fetch_object($asignaturas)) { echo $fila->codigo . ‘ ‘ .

todo <i>connect</i> ". Clase Conexión Generica. $usuario. } function function function function function close() {} select_db($base_datos) {} query($query) {} fetch_array($resultado) {} free_result($resultado) {} } M. $clave) { echo "<h1>El m&eacute.get_class($this). implementado en la ". return FALSE. function connect($servidor."</i></h1>". class ConexionGenerica { var $link. Gabriela de Jesús López Ruiz 167167 .Acceso a BD unificado. "clase <i>". "no est&aacute. en C.

require ("ConexionGenerica. en C. Gabriela de Jesús López Ruiz 168168 .inc"). $usuario="nobody". $usuario. class ConexionMySQL extends ConexionGenerica { function connect($servidor="localhost". } function function function function function close() {} select_db($base_datos) {} query($query) {} fetch_array($resultado) {} free_result($resultado) {} } M. Clase ConexionMySQL.Acceso a BD unificado. $clave="") { return $this->link = mysql_connect($servidor. $clave).

descripcion. $conexion = new ConexionMySQL(). "nobody"). $conexion->connect("localhost". Gabriela de Jesús López Ruiz 169169 .inc").inc"). M.Acceso a BD unificado. nombre. $asignaturas = $conexion->query("SELECT codigo. // Fichero CreaConexion.inc require ("ConexionMySQL. $conexion->select_db("prueba". Uso. en C. $link). require ("CreaConexion.

Repaso de JAVA M. Gabriela de Jesús López Ruiz 170170 . en C.

Aplicaciones Web con tecnología Java Gabriela de Jesús López Ruiz M. Gabriela de Jesús López Ruiz 171171 . en C.

Modelo de aplicaciones en Web Arquitectura de 3 capas Capa del cliente Capa intermedia Internet •Hosts • • Servidor web •Motor de scripting Capa de base de datos •Scripts • Motor de base de datos M. en C. Gabriela de Jesús López Ruiz 172172 .

Modelo de aplicaciones en Web Arquitectura de Internet Request Cliente / Web browser Response Servidor / Web server 173173 .

● Desventajas ● Exige un mayor poder de procesamiento en el servidor. Gabriela de Jesús López Ruiz 174174 .Modelo de aplicaciones en Web Clientes delgados El cliente no implementa lógica de negocios Las reglas de negocio residen en el servidor Ventajas ● No es necesario realizar instalaciones en el cliente. en C. M. Clientes pesados La lógica del negocio debe implementarse en el lado del cliente. Actualización automática de la versión en el cliente. Ventajas ● Se libera de carga de trabajo al servidor Desventajas ● Es muy complicado mantener un control de las versiones instaladas en cada cliente.

Los navegadores permiten.Modelo de aplicaciones en Web La capa del cliente Se encarga de mostrar y recolectar los datos del usuario. El navegador solamente procesa HTML El servidor se encarga de atender la solicitudes (request) y procesar las respuestas (response). en C. Soporte a hojas de estilo y html dinámico. vbscript. etc). Normalmente es un navegador de Internet (Browser). Algunos navegadores soportan lenguajes de procesamiento en el cliente (Javascript. M. usar las aplicaciones desde diferentes plataformas. Gabriela de Jesús López Ruiz 175175 .

la capa intermedia es responsable de implementar la lógica de negocios. En este curso se va a usar el lenguaje de scripting JSP. un lenguaje de scripting y el motor del lenguaje de scripting. en C. Procesa las entradas del usuarios para convertirlas en consultas a la base de datos. Gabriela de Jesús López Ruiz 176176 . M. como capa intermedia En este curso los componentes de la capa intermedia son: un servidor Web. Maneja la estructura y contenido de los datos.Modelo de aplicaciones en Web La capa intermedia En la mayorías de sistemas de base de datos en web. La capa intermedia integra la Web con el motor de base de datos.

se realiza la compilación y carga en memoria. Gabriela de Jesús López Ruiz 177177 . servidor web ) Acceso a toda la tecnología de Java como JDBC. – – – – – ● Lenguaje Java Multiplataforma (Sistema operativo. en C. Razones para escoger JSP. las llamadas posteriores son mucho mas rápidas. Ejecución rápida de las aplicaciones Ejecuta los scripts mas rápido por el modelo de ejecución. la primera vez que se invoca el JSP.Modelo de aplicaciones en Web La capa intermedia JSP ● Es uno de los lenguajes mas populares para el desarrollo de aplicaciones Web con acceso a base de datos. M.

entre otros. Maneja actualizaciones simultaneas Proporciona esquemas de seguridad Asegura la integridad de los datos Proporciona servicios de soporte. para realizar backup. recuperación en fallas. Gabriela de Jesús López Ruiz 178178 .Modelo de aplicaciones en Web La capa de base de datos Es la base de una aplicación de base de datos en Web El primer paso desarrollar una aplicación en Internet ● Entender los requerimientos. Administra los datos (almacenamiento y recuperación). diseñar la estructura y tablas. Normalmente se usan RDMS en la capa de base de datos M. escoger el motor de Base de Datos (BD). en C.

en C. Gabriela de Jesús López Ruiz 179179 .Modelo de aplicaciones en Web La capa de base de datos Componentes de un DBMS ● 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 información o consolidarla a partir de los datos existentes ● ● ● ● Cuando usar un DBMS ● ● ● ● ● ● M.

Sus limitaciones tienen un impacto menor en el desarrollo de las aplicaciones en Web. con características de sistemas de gran escala.Modelo de aplicaciones en Web La capa de base de datos MySQL ● Es una motor de base de datos de escala media. Gabriela de Jesús López Ruiz 180180 . pero no de miles. en C. ● ● ● ● ● M. no están completamente soportadas por MySQL. Consultas anidadas y vistas. Tiene algunas limitaciones en la implementación de SQL Permite acceso concurrente de cientos de usuarios. se sugiere usar Postgres o algún motor comercial. Para aplicaciones de alto rendimiento.

com. Gabriela de Jesús López Ruiz 181181 .com M. Gabriela de Jesús López Ruiz.Breve Historia de Java M. gaby_dlib@yahoo. en C. en C.

lavaplatos. microondas. en C.Breve historia de java En 1990 James Gosling inicia el desarrolló el lenguaje OaK como una variante de C++ en la empresa SUN (Stanford University Network) con la intención de operar cualquier mecanismo informático (como licuadoras. etc.) mediante un programas sencillos y simples que se distribuyen a través de una red. M. Gabriela de Jesús López Ruiz 182182 .

para esto le cambió el nombre a Java y con el propósito de utilizarlo como plataforma para desarrollos en Internet.Breve historia de Java En 1994 se tuvo una versión que se pretendía 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. Gabriela de Jesús López Ruiz 183183 . M. en C.

Gabriela de Jesús López Ruiz 184184 . Actualmente es uno de los lenguajes más difundidos para desarrollo de aplicaciones multiplataformas que aprovechan la infraestructura de Internet M. en C.Breve historia de Java En mayo de 1995 se hizo la presentación en público de Java incluyéndolo en el navegador Netscape generando así millones de copias en poco tiempo.

Características de Java . Java Virtual Machine).class . Maquina Virtual de Java. tiene diferentes tipos de programas: consola. servlets y beans.exe java appletviewer ejecución UNIX Windows Solaris Linux Hardware Java es un lenguaje Orientado a Objetos basado en Clases. applets. es multiplataforma e interpretado (mediante la JVM. en C. los applets y servlets se usan directamente en Internet.class carga Máquina Virtual de Java java.java .java compilación . Gabriela de Jesús López Ruiz 185185 .java . usa herencia simple.class . M.

Gabriela de Jesús López Ruiz 186186 . Ø Es robusto.Características de Java Es un lenguaje de programación. Ø Es independiente de la plataforma. en C. Ø Es seguro. ØEs orientado a objetos. Ø M.

Java es un lenguaje de programación orientado a objetos

Es un lenguaje de programación orientado a objetos diseñado para ser portable en diversas plataformas y sistemas operativos. Java fue desarrollado por Sun Microsystem, se diseño con base en el lenguaje de programacion C+ +.

M. en C. Gabriela de Jesús López Ruiz

187187

Java es un lenguaje de programación orientado a objetos
Java puede hacer graficas interactivas, tiene caracteristicas especiales para internet, permite escribir programas, applets. Los applets se ejecutan dentro de una página Web. Al ejecutar un applet, el servidor remoto lo transmite a su navegador a través de Internet.

M. en C. Gabriela de Jesús López Ruiz

188188

HOTJAVA

HOTJAVA es un navegador (como navigator o explorer). HOTJAVA fue el primer navegador que pudo bajar y ejecutar applets escritos en java.

M. en C. Gabriela de Jesús López Ruiz

189189

Java es orientado a objetos

Java es orientado a objetos, se puede usar para desarrollar programas en términos de los datos y métodos ( funciones ) que operan sobre ellos.

M. en C. Gabriela de Jesús López Ruiz

190190

Java es independiente de la plataforma

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 común un bytecode no es específico para cada procesador (Pentium de Intel o Motorola).

M. en C. Gabriela de Jesús López Ruiz

191191

Cada plataforma de cómputo puede tener su propio intérprete de Java. este lee e interpreta el bytecode a fin de ejecutar un applet. sin embargo el bytecode es idéntico. Para ejecutar el bytecode de esta forma.Java es independiente de la plataforma Una vez que el servidor ha enviado el código al navegador. El bytecode multiplataforma es sólo un aspecto de la portabilidad de Java. M. en C. el interprete convierte los unos y ceros que el procesador de su computadora entiende. Gabriela de Jesús López Ruiz 192192 .

pero los applets no pueden leer ni escribir archivos locales que residan en el disco. Gabriela de Jesús López Ruiz 193193 . M. De esta manera los applets no pueden almacenar virus en su disco ni adjuntarlos a algún archivo. en C.Java es seguro Los applets puede ser una forma de algún programador malicioso cree un virus.

M. Gabriela de Jesús López Ruiz 194194 . en C.Java es robusto Java es confiable. reduciendo así los errores (excepción de errores). Java es muy estrcito más que C++ en cuanto a los tipos de datos (tipo de clasificación) y requiere declaraciones explícitas para cada método. elimina muchos de los problemas de memoria comunes en lenguajes como C y C++. Java no soporta acceso directo a apuntadores a la memoria.

com/api Editar e invocador del compilador. en C.com API (Application Program Interface. Gabriela de Jesús López Ruiz 195195 . se obtiene del sitio de SUN.Recursos para Utilizar Java Kit de desarrollo (Software Development Kit.sun. SDK).com M. en el archivo: j2sdk-1_4_2-windows-i586.sun. se sugiere el uso de JCreator del sitio: www.jcreator. Interfase del Programador de Aplicaciones) de Java: java.exe java. que incluye el compilador y la máquina virtual de Java.

Referencias de Java
Almanaque de Java www.javaalmanac.com El Libro electrónico 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

Tips para programar en Java” de Mark

El libro “java” de Kris Jamsa

M. en C. Gabriela de Jesús López Ruiz

196196

Instalación del Compilador y del Editor
La instalación del Compilador en Windows requiere dar doble click al archivo : j2sdk-1_4_2windows-i586.exe (durante la instalación se sugiere dar las opciones por omisión) La instalación del Editor JCreator en Windows, se hace después de instalar el compilador, requiere dar doble click al archivo: setup.exe (durante la instalación se sugiere dar las opciones por omisión)
M. en C. Gabriela de Jesús López Ruiz 197197

Primer programa de Java
class Hola { public static void main(String args[]) { System.out.println("hola amigos"); } } El editor JCreator se activa mediante el icono: La compilación se hace presionando el ícono: La ejecución se hace mediante el ícono:
M. en C. Gabriela de Jesús López Ruiz 198198

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 Jesús López Ruiz 199199

} }

Suma de dos números
import java.io.*; class Hola { public static void main(String args[]) throws IOException { BufferedReader consola = new BufferedReader( new InputStreamReader(System.in)); int a, b ; // LEE EL dato A System.out.print("Dato A> "); String cadena = consola.readLine();

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 Jesús } López Ruiz

en C. en C. Gabriela de Jesús López Ruiz.com M. Gabriela de Jesús López Ruiz 201201 .com. gaby_dlib@yahoo.Elementos del Lenguaje JAVA M.

java ● ESTE ES UN COMENTARIO DE DOCUMENTACION. ● */ López Ruiz .Comentarios En Java existen tres tipos de comentarios: De Resto de Línea: while( x < 5 ) // COMENTARIO De Varias Líneas: ● /* COMENTARIO QUE OCUPA ● VARIAS LINEAS ● */ De Documentación: ● /** programa. Gabriela de javadoc PROGRAMA Jesús 202202 M. UTILIZADO POR EL en C.

en C. En la tabla se indican los tipos de literales de Java y algunos ejemplos M.Literales Una Literal es un valor constante. Gabriela de Jesús López Ruiz 203203 .

u objetos). Letra significa cualquier símbolo unicode que represente una letra en cualquier idioma. números o subraya. es un valor entre cero y 65536. métodos o clases.Identificadores de usuario X y $temporal _auxiliar Los Identificadores de Usuario se usan para nombrar variables (tipos UnaClase primitivos. La longitud máxima de un identificador es de 64 caracteres y no deben López Ruiz M. Se escriben con una inicial que puede ser letra mayúscula o minúscula. subraya (_) o el signo de pesos ($) seguidos por una secuencia de letras. Gabriela de Jesús 204204 . en C.

en C.Palabras reservadas Las Palabras Reservadas son aquellas que tienen un uso específico en el lenguaje Java y No deben utilizarse como identificadores de usuario. Gabriela de Jesús en la tabla están reservadas para uso futuro 205205 López Ruiz . Las que llevan asterisco (*) M.

Gabriela con el López Ruiz memoria . en C. En la tabla se indican los TDP de Javade Jesús espacio que ocupan en 206206 M.Tipos de Datos Primitivos Los Tipos de Datos Primitivos (TDP) son variables que se utilizan directamente con los operadores del lenguaje Java (en vez de utilizar métodos como ocurre con los objetos).

en C.Operadores Los Operadores son símbolos (o grupos de símbolos) que representan acciones que se aplican sobre literales o variables de Java. 207207 M. Gabriela de Jesús En la tabla se muestranLópez Ruiz los operadores de Java con su .

x = 5. Gabriela de Jesús resultado es float López Ruiz . por ejemplo se están sumando un int con un float. double y . y = x + PI.1416. en este caso se promociona x al tipo double antes de hacer la suma. en C.Promoción Si se tiene: int x . se asigna el tipo más grande a los operadores que aparecen en la expresión. la promoción es automática La Promoción se hace automáticamente en Java cuando se aplica algún operador. PI = 3. la suma se efectua promoviendo el int a float y de esta forma el 208208 M.

Gabriela de se escribe entre paréntesis López Ruiz . en C. en este caso disfraza a PI de tipo int para asignarle valor a X aunque se pierde precisión (los decimales se pierden en este caso) Si fuera al revés de un int a un float no se pierde precisión y no es necesario hacer el casting porque se hace una promoción Un Casting se utiliza cuando se quiere cambiar el tipo de un resultado diferente al que se obtiene normalmente. El tipo de dato del casting Jesús 209209 M. por ejemplo int cuando el resultado es float.Disfraz (casting) Si se tiene: int x . x = (int) PI. PI = 3.1416. double y .

Estructuras de Control Secuencia c A B A1 Decisión e A2 A3 if v=inicial actualiza v A c switch Iteración A c Recursión A c do-while A while for Las Estructuras de Control se utilizan para controlar el flujo de ejecución de M. Gabriela métodos las instrucciones en los de Jesús de Java. López Ruiz 210210 . en C.

Estructuras de Control El bucle FOR Son instrucciones repetitivas Sintaxis for(inicialización. en C.condición de continuidad.expresiòn de variaciòn) { instrucciones a ejecutar de forma repetitiva } M. Gabriela de Jesús López Ruiz 211211 .

out. Gabriela de Jesús López Ruiz 212212 .println(i). for (i=1. } } } M.i=+1) { System.i<=4.Estructuras de Control Public class BucleFor1{ public static void main (String[ ] args) { int i. en C.

println(i). en C.i=-1) { System.Estructuras de Control Public class BucleFor2{ public static void main (String[ ] args) { int i.i<=10. for (i=1. Gabriela de Jesús López Ruiz 213213 .out. } } } M.

en C.Estructuras de Control Public class BucleFor3{ public static void main (String[ ] args) { int i. } } } M.out. Gabriela de Jesús López Ruiz 214214 .i<=20.i++) { System. for (i=1.println(i).

Gabriela de Jesús López Ruiz 215215 .i<=10. en C.println(i).i--) { System.out. for (i=1.Estructuras de Control Public class BucleFor4{ public static void main (String[ ] args) { int i. } } } M.

Gabriela de Jesús López Ruiz 216216 .Estructuras de Control Factorial de un número 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){ } } M. en C.

/*Declaración de la de Jesús 217217 M. //Lo inicializamos con 1 try{ //Para el manejo del error se utiliza en try.//Variable que guardará el Resultado valor = 1. //Variable que guardará el valor de número a calcular long valor. Gabriela variable Input q almacena López Ruiz la . public class Factorial { public static void main(String []args) { int n..io.Estructuras de Control /*Se declara el paquete para lectura desde el teclado*/ import java..*. en C.

} catch(IOException IO) //.readLine(). Gabriela de Jesús 218218 López Ruiz // manipularlo .contador++) valor *= (contador+1). /*Se convierte el dato a un valor entero*/ n = Integer. /*Se realizan las operaciónes*/ for(long contador = 1.println("El factorial de " + n + " es: "+ valor). para "cachar" el error y poder M.Estructuras de Control { } /*Se lee lo q el usuario tecleo desde el teclado*/ String linea= buffer. /*Se muestra el resultado final*/ System..parseInt(linea). contador < n.. en C.out.

Estructuras de Control

El Bucle While Permite repetir la repetir la ejecución de una serie de instrucción Sintaxis while(condicion de continuidad){ instrucciones a ejecutar de forma repetitiva }

do{ instrucciones a ejecutar de forma repetitiva } while(condicion de continuidad);
M. en C. Gabriela de Jesús López Ruiz 219219

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

M. en C. Gabriela de Jesús López Ruiz

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

M. en C. Gabriela de Jesús López Ruiz

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 Jesús López Ruiz 222222

Estructuras de Control
Instrucción condicional if Es considerado como una estructura de control secuencial Sintaxis if(condicion) instrucción } if(condicion) if(condicion){ instrucción then instrucciones then else } else { instrucción else instrucciones else
223223

if(condicion){ instrucciones

M. en C. Gabriela de Jesús López Ruiz

prntln(“Oswaldo no es mas joven que Marisol) } } systm..Ot.Estructuras de Control //Ejercicio public class if1{ public static void main(String [ ] args){ int EdadOswaldo=22.Ot. EdadMarisol=20. if(EddOsvaldo<Edadmarisol) Marisol) else systm. en C.prntln(“Oswaldo es mas joven que M. Gabriela de Jesús López Ruiz 224224 .

Gabriela de Jesús López Ruiz 225225 . gaby_dlib@yahoo. en C. Gabriela de Jesús López Ruiz.com.Excepciones M. en C.com M.

Gabrielaambos casos se ejecuta en de Jesús López Ruiz .Excepción try { } catch( Exception nombre) { } finally { } Una Excepción es una alteración en el flujo normal de control. Las excepciones en Java se detectan dentro de un bloque try {} y si ocurre entre las llaves una excepción se atrapa ejecutando el bloque catch(){} siempre y cuando la excepción sea la indicada entre paréntesis. en C. El 226226 bloque finally {}M. Se pueden atrapar varias excepciones en bloques catch consecutivos.

por lo que es común para atrapar cualquier excepción colocar Exception dentro del catch. M. en C.Jerarquía de Java de Excepciones Exception IOException ClassNotFoundException Las Excepciones se organizan en una Jerarquía. donde la clase Exception es la de nivel superior. Gabriela de Jesús López Ruiz 227227 .

Excepciones Definidas por el Usuario Exception MiExcepcion Una Excepción Definida por el Usuario se hace con una clase derivada de Exceptionen este ejemplo MiExcepcion se utiliza como culquier excepción. M. en C. Gabriela de Jesús López Ruiz 228228 .

Gabriela de Jesús López Ruiz 229229 . en C.JSP Java Server Pages M.

en C. al igual que el propio Apache es gratuito. JavaServer Web Development Kit (JSWDK).0. Tomcat. 230230 M.Servidores Web con soporte para JSP Para poder publicar aplicaciones desarrolladas en JSP o Servlets. Se usaba como pequeño servidor para probar servlets y páginas JSP antes de desarrollar un completo servidor Web que soporta estas tecnologías. Gabriela de Jesús López Ruiz . Puede ser usado como pequeño servidor para probar páginas JSP y servlets. se debe realizar la instalación de un servidor Web. El JSWDK es la implementación de referencia oficial para las especificaciones Servlet 2.2 y JSP 1. o puede integrarse en el servidor Web Apache. algunas de las opciones son las siguientes: Apache Tomcat.1 y JSP 1. Es la implementación de referencia oficial para las especificaciones Servlet 2.1.

viejas versiones de Apache. New Atlanta’s ServletExec. Windows. O’Reilly’s WebSite. JRun es un motor servelt y JSP que puede conectarse dentro de los servidores Netscape Enterprise o FastTrack. ServletExec es un rápido motor de servlets y páginas JSP que puede ser conectado dentro de los servidores web más populares para Solaris. de los servidores Web IIS. HPUX y Linux. MacOS. o StarNine WebSTAR. en C.Servidores Web con soporte para JSP Allaire JRun. M. Podemos descargarlo y usarlo de forma gratuita. Microsoft Personal Web Server. pero muchas de sus características avanzadas y utilidades de administración estarán desactivadas hasta que compremos una licencia. Gabriela de Jesús López Ruiz 231231 .

Descarga Nuestro primer paso es descargar el software que implementa las especificaciones Java Servlet 2.Servidores Web con soporte para JSP . conocida como "JavaServer Web Development Kit" (JSWDK). en http://java.1.com/products/servlet/.apache.org/ M.0 ó 1. La opción mas popular es instalar el servidor Apache tomcat.1 o 2.2 y Java Server Pages 1. Podemos obtener una versión gratuita de Sun. Gabriela de Jesús López Ruiz 232232 . en C. que se puede descargar de : http://jakarta.sun.

TOMCAT_HOME=Directorio donde instalará tomcat. Gabriela de Jesús López Ruiz 233233 %JAVA_HOME . M.jar. la mas estable es la versión 1.2 Antes de realizar la instalación verificar que este correctamente instalada la versión de java.jar. Deben existir las siguientes variables de entorno.Servidores Web con soporte para JSP .2 Nota: debe coincidir con el directorio donde esta instalada su versión de Java. usaremos el servidor web: Tomcat.%JAVA_HOME%\bin CLASSPATH=%JAVA_HOME%\lib\tools. JAVA_HOME=c:\j2sdk1. PATH=%PATH%. en C.Instalación Para este curso.. aunque hay varias versiones disponibles. %\jre\lib\rt.4.4.

Instalación Ejecutar el instalador del servidor. en C.Servidores Web con soporte para JSP . Gabriela de Jesús López Ruiz . modificar el estilo de texto del patrón Haga clic para modificar el estilo de texto del patrón Segundo nivel ● Tercer nivel el ● Cuarto nivel vel ● Quinto nivel 234234 M.

ara modificar el estilo de texto del patrón vel ivel o nivel nto nivel Haga clic para modificar el estilo de texto del patrón Segundo nivel ● Tercer nivel ● Cuarto nivel ● Quinto nivel 235235 .Instalación Ejecutar el instalador del servidor.Servidores Web con soporte para JSP .

Servidores Web con soporte para JSP – Estructura de directorios modificar el estilo de textoHaga clic para modificar el estilo de texto del pat del patrón Haga clic para modificar el estilo de texto del patrón Servidor Segundo nivel ● Tercer nivel Segundo nivel Librerías comunes ● Tercer nivel ● Cuarto nivel vel ● ● Quinto nivel Haga clic nivel nivel Cuarto para modificar el estilo de texto del patrón ● Quinto nivel Segundo nivel Configuración ● Tercer nivel ● Cuarto nivel ● Quinto nivel Contextos o aplicaciones Aplicación y recurs Librerías para la aplicació .

● Tercer nivel ● Cuarto nivel Aceptar los términos de la licencia. revisar la instalación de Java. Nota.27-LE-jdk14. y después configurar la Instalación. Si no encontró ninguna.1. Quinto nivel entonces hacer click en la casilla “NT Service (NT/2k/XP)” Quinto nivel el estilo de texto 237237 . si desea que ● tomcat se ejecute automáticamente. Para la ● Tercer elaboración de este curso se recomienda nivel usar versiones de Tomcat menores Cuarto nivel ● a la 5. jakarta-tomcat-4. Lo primero que debe clic para modificar Haga mostrar es la versión de Java que encontró Segundo nivel instalado.Instalación de Tomcat Procedimiento de Instalación para plataformas Haga clic para Microsoft Windows Obtener el Instalador de Tomcat.exe ● Segundo nivel modificar el estilo de texto d Ejecutar el Instalador.

Instalación de Tomcat (2) Indicar la ruta donde se va a instalar. ● Haga clic para modificar el estilo de texto d Tercer nivel Durante la instalación. en C. Cuarto nivel Estas claves se usarán para reiniciar aplicaciones●Web. Quinto nivel sin bajar todo el servidor. este es el valor que debe tener la variableSegundo nivel de entorno TOMCAT_HOME. Puede poner la combinación admin/123 JAVA_HOME CLASSPATH TOMCAT_HOME Al terminar la instalación. se va a preguntar●por una clave y contraseña de administración. configurar las variables: Haga clic para modificar el estilo de texto d Segundo nivel ● Tercer nivel ● Cuarto nivel ● Quinto nivel 238238 M. Gabriela de Jesús López Ruiz . que veremos mas adelante.

.Guardarlo en la siguiente ruta %TOMCAT_HOME%/webapps/ROOT 3. 4. para● Haga clic para referirnos a la ruta donde se realizó laQuinto nivelmodificar el estilo de texto instalación de tomcat.jsp ● Quinto nivel 2. Segundo nivel 1.Levantar el servidor web (dejar la ventana áctiva).jsp 239239 .Abrir el navegador de Internet en la dirección: http://localhost:8080/Hola.Crear un archivo con el siguiente ● Tercer nivel ● Cuarto nivel contenido y guardarlo con el nombre Hola.Hola Mundoclic para modificar el estilo de texto del Haga Segundo nivel ● Tercer nivel Para el resto del curso se usará siempre la nivel ● Cuarto variable %TOMCAT_HOME%....

html procesa.Envío y recepcíón de Parámetros formulario.jsp ga clic para modificar el estilo de texto del patrón 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 patrón 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 .

response. Escribe en el flujo de salida. Es el objeto que encapsula la respuesta generada por la página JSP para ser enviada al cliente en respuesta a su petición. request. Es el objeto que nos permite recibir los parámetros de la petición. El objeto out se usa casi exclusivamente en scriptlets Session. Gabriela de Jesús López Ruiz 241241 . out.Objetos implicitos en JSP Son objetos que no hay que declarar o inicializar y siempre están disponibles dentro de los scriptlets y en las expresiones. Las sesiones se crean automáticamente. M. La única excepción es usar el atributo session de la directiva page para desactivar las sesiones. Este es el objeto asociado con la sesion del usuario. en C. el tipo de petición y las cabeceras HTTP entrantes.

pageContext.Throwable que está disponible sólo en las páginas de error. M. Este es el ServletContext obtenido mediante getServletConfig(). en C. exception. Este es el objeto ServletConfig para esta página. Fue creado como situación para el día que se puedan utilizar otros lenguajes distintos de Java como lenguajes de script. Este objeto es un sinónimo de this. page. Tiene alcance de página.getContext() Tiene alcance de aplicación. JSP presenta una nueva clase llamada PageContext para encapsular características de uso específicas del servidor como JspWriters de alto rendimiento. Es un objeto del tipo java. Tiene alcance de página. config. Tiene alcance de página.Objetos implicitos en JSP(2) application. y no es muy útil en Java.lang. Gabriela de Jesús López Ruiz 242242 .

nos permiten especificar componentes que deberían ser usados. Gabriela de Jesús López Ruiz 243243 . B) Elementos de script. M. nos permiten especificar código Java que se convertirá en parte del servlet resultante C) Acciones. a parte del código HTML normal: A) Directivas. nos permiten controlar la estructura general del servlet. y de otro modo controlar el comportamiento del motor JSP.Tipos de construcciones en un JSP Hay tres tipos de construcciones JSP que agregaremos en una página. en C.

class | package. taglib) page. Se aplica a una página JSP completa. métodos que tienen que ser implementados. include. en C. Hay tres tipos de directivas: (page.” ] [ session =”true | false”] [ buffer =”none | 8kb |sizekb”] [ autoFlush =”true | false”] [ isThreadSafe =”true | false “] [ info =“text”] [ errorPage =”URLrelativa”] [ contentType =”mimeType [... Gabriela de Jesús López Ruiz 244244 . tipo del contenido de salida. . etc. y a cualquier fichero estático que incluya con la directiva include o <jsp:include> ● Sintaxis: <% @ page [ language =”java”] [ extends =”package.charset=characterSet]”|“text/html”. No producen ninguna salida en el cliente.* }.class”] [ import =”{package.A) Directivas Son mensajes dirigidos al motor JSP. Se usan para establecer valores globales tales como una declaración de clase.charset=ISO-8859-1”] [ isErrorPage =”true | false”] %> ● ● ● ● ● ● ● ● ● ● ● ● ● M.

el archivo indicado en el momento en el que la página JSP es traducida a un servlet. en C.A) Directivas (2) include. en la posición especificada. Sintaxis: <%@ taglib url="tagLibraryURL" prefix="tagPrefix" %> M. Esta directiva permite a la página usar etiquetas definidas por el usuario. Esta directiva indica al motor JSP que debe incluir. Sintaxis: <%@ include file="url relativa" %> taglib. Gabriela de Jesús López Ruiz 245245 .

Gabriela de Jesús López Ruiz 246246 . . e insertada en la página. en C.B) Elementos de script Los elementos de script nos permiten insertar código Java dentro del servlet que se generará desde la página JSP actual. convertida a un String. Sintaxis: <%= exprexión java %> Ej. Hay tres formas: 1) Expresiones Una expresión JSP se usa para insertar valores Java directamente en la salida. La expresión Java es evaluada. <%=nombre%> M.

<% if ( materias != null) for ( int i = 0 . Hay tres formas: 2) Scriptlets Bloque de código Java que se incluye dentro del método service() del servlet generado. i < materias. i++) out.B) Elementos de script Los elementos de script nos permiten insertar código Java dentro del servlet que se generará desde la página JSP actual.length . en C. Sintaxis: <% código Java %> Ej. Gabriela de Jesús López Ruiz 247247 .println(materias[i]). siempre debemos terminar un elemento de script antes de empezar a usar etiquetas y luego reabrir el elemento de script M. %> Cuando mezclamos elementos de script con etiquetas HTML y JSP.

%> M. Una declaración JSP nos permite definir métodos o campos que serán insertados dentro del cuerpo principal de la clase servlet (fuera del método service que procesa la petición). Gabriela de Jesús López Ruiz 248248 . nos permite definir variables o y métodos globales.B) Elementos de script(2) • 3) Declaraciones. Es decir. Sintaxis: <% ! Código Java %> Ejemplo: <% ! private int a=0. en C.

<jsp:include> Esta acción nos permite insertar ficheros en una página que está siendo generada. Gabriela de Jesús López Ruiz 249249 . Sintaxis: <jsp:include page="relative URL" flush="true" /> <jsp:useBean> Encuentra o instancía 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. Este podría ser un valor estático o podría ser calculado en el momento de la petición. Tiene un solo atributo. Podemos insertar un fichero dinámicamente. en C. page. jsp:forward Esta acción nos permite reenviar la petición a una página estática.C) Acciones Son etiquetas específicas que afectan al comportamiento en tiempo de ejecución de la página JSP y a la respuesta generada para el cliente. Sintaxis: <jsp:forward page=”URLrelativa” /> M. que establece una URL relativa. a otra página JSP o un servlet que pertenezca al mismo contexto que la página actual. reenviar al usuario a otra página o generar HTML para el plug-in Java. reutilizar componentes JavaBeans.

html Haga clic para modificar el estilo de texto del patrón Segundo nivel ● Tercer nivel ● Cuarto nivel ● Quinto nivel 250250 M. en C.Consultar un registro de la BD Haga del patrón 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. Gabriela de Jesús López Ruiz .

Consultar un registro de la BD Haga del patrón 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. en C.jsp Haga clic para modificar el estilo de texto del patrón Segundo nivel ● Tercer nivel ● Cuarto nivel ● Quinto nivel Sigue… 251251 M. Gabriela de Jesús López Ruiz .

jsp 252252 M.Consultar un registro de la BD a clic para modificar el estilo de textopara patrón 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. en C. Gabriela de Jesús López Ruiz .

Consultar un registro de la BD Haga del patrón 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 .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->