You are on page 1of 192

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

TALLER
Sitios Web con ASP y Lenguajes Scripts
ADO (Activex Data Object)
( 2001 )

Recopilacin realizada por:


Ing. Cintia Vernica Gioia. Ing. Mariano DOrtona.

Docentes:
Ing. Cintia Vernica Gioia. Ing. Mariano DOrtona.

UNIVERSIDAD NACIONAL DE LA MATANZA


Pgina 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

INDICE 1. INTRODUCCIN ASP______________________________________________5


1.1. APLICACIONES DE LAS PGINAS ASP................................................................................................................................6 1.2. REQUISITOS...................................................................................................................................................................7 1.3. HERRAMIENTAS..............................................................................................................................................................8 1.4. CARACTERSTICAS PRINCIPALES........................................................................................................................................9 1.5. VENTAJAS...................................................................................................................................................................10 1.6. ACLARACIONES............................................................................................................................................................11

2. PGINAS ACTIVE SERVER_______________________________________13


2.1. EL MODELO DE PGINAS ASP.......................................................................................................................................13 2.2. CREAR PGINAS ASP..................................................................................................................................................13 2.3. FUNCIONAMIENTO BSICO:............................................................................................................................................14 2.4. UTILIZACIN DE OBJETOS INTEGRADOS :..........................................................................................................................16 2.5. OBTENCIN DE LA INFORMACIN ENVIADA EN LOS FORMULARIOS POR LOS CLIENTES:..............................................................16

3. HTML - DHTML - LENGUAJES DE ESCRITURA DE SCRIPTS ________24


3.1. HTML......................................................................................................................................................................24 3.2. HTML DINMICO (DHTML).......................................................................................................................................27 3.2.1. Ventajas y Avances alcanzados con HTML Dinmico:....................................................................................30 3.3. LENGUAJE DE ESCRITURA DE SCRIPTS VS. LENGUAJES DE PROGRAMACIN..........................................................................37 3.4. VBSCRIPT VS. JSCRIPT...............................................................................................................................................38 3.5. ESCRITURA DE SCRIPTS DEL LADO DEL CLIENTE VS. ESCRITURA DE SCRIPTS DEL LADO DEL SERVIDOR...................................39 3.6. ESCRITURA DE SCRIPTS DEL LADO DEL SERVIDOR.............................................................................................................43 3.7. ESCRITURA DE SCRIPTS DEL LADO DEL CLIENTE................................................................................................................47 3.8. INFORMACIN GENERAL DE IMPORTANCIA.........................................................................................................................48 3.8.1. CGI..................................................................................................................................................................48 3.8.2. PHP.................................................................................................................................................................49 3.8.3. XML.................................................................................................................................................................50 3.8.4. WML................................................................................................................................................................50 3.8.5. Scriptlets..........................................................................................................................................................51

4. INTERNET INFORMATION SERVER_______________________________52


4.1. INTRODUCCIN A IIS....................................................................................................................................................52 4.2. INSTALACIN DEL PROTOCOLO TCP/IP...........................................................................................................................53 4.3. MECANISMOS DE SEGURIDAD..........................................................................................................................................54 4.3.1. Mecanismo de seguridad en una peticin:.......................................................................................................54 4.3.2. Administracin de la cuenta de usuario annimo:...........................................................................................55 4.3.3. Autenticacin...................................................................................................................................................55 4.3.4. Establecimiento de permisos en los directorios y ficheros de un sitio Web (aspectos Bsicos).......................56

5. CONTENIDO DE UNA PGINA ASP________________________________58


5.1. CONCEPTOS INICIALES...................................................................................................................................................58 5.1.1. Declaracin del lenguaje.................................................................................................................................58 5.1.2. Bloques de cdigo y Comentarios....................................................................................................................58 5.1.3. Tratamiento de las Variables...........................................................................................................................61 5.2. COMPORTAMIENTO DEL PROCESADOR ASP.......................................................................................................................62 5.3. FORMA DE UNA PGINA ASP.........................................................................................................................................63 5.4. EJEMPLOS BSICOS DE ASP.........................................................................................................................................65 5.4.1. Ejemplos 1: ASP soporta HTML......................................................................................................................65

Pgina 2

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.2. Ejemplos 2: Instruccin ejecutable en JScript.................................................................................................67 5.4.3. Ejemplos 3: Suma de los 100 primeros nmeros.............................................................................................68 5.4.4. Ejemplos 4: Hola a todos en un bucle.........................................................................................................70 5.4.5. Ejemplos 5: Fecha y hora del servidor............................................................................................................71 5.4.6. Ejemplos 6: Script sin texto HTML..................................................................................................................73 5.4.7. Ejemplos 7: Tabla de multiplicar.....................................................................................................................75

6. LOS OBJETOS Y LAS FUNCIONES EN LAS PGINAS ASP____________77


6.1. COMPORTAMIENTO DE LOS OBJETOS................................................................................................................................77 6.2. ORGANIZACIN DEL CDIGO EN FUNCIONES......................................................................................................................78

7. MODELO DE OBJETOS___________________________________________81
7.1. REQUEST.....................................................................................................................................................................83 7.1.1. Form................................................................................................................................................................84 7.1.2. QueryString.....................................................................................................................................................84 7.2. RESPONSE...................................................................................................................................................................85 7.2.1. Write................................................................................................................................................................86 7.2.2. Redirect...........................................................................................................................................................88 7.3. SERVER......................................................................................................................................................................89 7.3.1. Propiedad ScriptTimeout.................................................................................................................................90 7.3.2. Mtodo CreateObject:.....................................................................................................................................91 7.4. APPLICATION...............................................................................................................................................................91 7.4.1. Lock.................................................................................................................................................................92 7.4.2. Unlock.............................................................................................................................................................92 7.4.3. Ejemplos..........................................................................................................................................................92 7.5. SESSION......................................................................................................................................................................94 7.5.1. Creacin de una variable en Session...............................................................................................................96 7.5.2. Mtodo Abandon.............................................................................................................................................98 7.6. OBJECTCONTEXT.........................................................................................................................................................98

8. EJEMPLOS DE ASP______________________________________________101
8.1. EJEMPLO 1: CREAR UNA PGINA ASP SIMPLE................................................................................................................101 8.1.1. Crear y guardar una pgina..........................................................................................................................102 8.2. EJEMPLO 2: CREAR UN FORMULARIO HTML................................................................................................................105 8.2.1. Creacin del formulario................................................................................................................................106 8.2.2. Creacin de la pgina de respuesta de ASP..................................................................................................107 8.3. EJEMPLOS 3: FORMULARIO CON DOS PGINAS WEB.........................................................................................................109 8.4. EJEMPLOS 4: FORMULARIO CON UNA SOLA PGINA WEB..................................................................................................113

9. EL ARCHIVO GLOBAL.ASA______________________________________117
9.1. ESTRUCTURA.............................................................................................................................................................117 9.2. EVENTOS..................................................................................................................................................................117 9.3. EJEMPLO...................................................................................................................................................................118

10. ALGUNAS FUNCIONES BSICAS________________________________120


10.1. FECHA Y HORA.........................................................................................................................................................120 10.1.1. Fecha (Date, Day, WeekDay, WeekDayName, Month, MonthName, Year).................................................120 10.1.2. Hora (Now, Time, Hour, Minute, Second)...................................................................................................120 10.2. TRATAMIENTO DE CADENAS.......................................................................................................................................121 10.3. NUMRICAS.............................................................................................................................................................121

11. EJEMPLOS____________________________________________________122
Pgina 3

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

11.1. EJEMPLO 1: HORA Y FECHA ACTUAL.........................................................................................................................122 11.2. EJEMPLO 2: VARIABLES DEL SERVIDOR.......................................................................................................................125 11.3. EJEMPLO 3: RECUPERACIN DE LOS DATOS DE UN FORMULARIO......................................................................................128 11.4. EJEMPLO 4: ACCESO A BASE DE DATOS.......................................................................................................................130 11.5. EJEMPLO 5: INSERCIN EN UNA BASE DE DATOS A PARTIR DE UN FORMULARIO...................................................................131 11.6. EJEMPLO 6: CDIGO SCRIPT DE CLIENTE Y DE SERVIDOR EN LA MISMA PGINA..................................................................133

12. COOKIES______________________________________________________135
12.1. EJEMPLO DE MONITORIZACIN DE ACCESOS DE UN USUARIO A UNA PGINA.......................................................................139 12.2. EJEMPLO DE PERSONALIZACIN DE PRESENTACIONES......................................................................................................142 12.2. EJEMPLO DE PERSONALIZACIN DE PRESENTACIONES AVANZADO.......................................................................................145 12.3. EJEMPLO DE DIRECCIONES WEB..................................................................................................................................148

13. UTILIZAR COMPONENTES ACTIVEX SERVER___________________157


13.1. UTILIZAR EL COMPONENTE AD ROTATOR.....................................................................................................................157 13.1.1. Propiedades.................................................................................................................................................158 13.1.2. Mtodos.......................................................................................................................................................159 13.1.3. Estructura del archivo Schedule..................................................................................................................160 13.1.4. Ejemplo........................................................................................................................................................161 13.2. UTILIZAR EL COMPONENTE CAPACIDADES DEL EXPLORADOR............................................................................................164 13.2.1. Crear la secuencia de comandos.................................................................................................................164 13.3. UTILIZAR EL COMPONENTE FILESYSTEMOBJECT............................................................................................................167 13.3.1. Mtodos.......................................................................................................................................................167 13.4. UTILIZAR EL COMPONENTE TEXTSTREAM.....................................................................................................................169 13.4.1. Mtodos.......................................................................................................................................................169 13.5. UTILIZAR EL COMPONENTE DE ACCESO A BASES DE DATOS - ACTIVEX DATA OBJECT.......................................................172 13.5.1. Objetos........................................................................................................................................................173 13.5.2. Objeto Connection.......................................................................................................................................174 13.5.3. Objeto Error................................................................................................................................................177 13.5.4. Objeto Recordset.........................................................................................................................................178 13.5.5. Primer ejemplo Activex Data Object (ADO)................................................................................................183 13.5.6. Segundo Ejemplo Activex Data Object (ADO).............................................................................................186

BIBLIOGRAFA___________________________________________________192

Pgina 4

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

1. Introduccin ASP
ASP responden al nombre Active Server Pages, que en castellano significa Pginas de Servidor Activas. Active Server Pages (ASP), es una tecnologa propietaria de Microsoft. Se utiliza casi exclusivamente en los servidores Web de Microsoft (Internet Information Server y Personal Web Server.) Con ASP se pueden realizar fcilmente pginas de consulta de bases de datos, funciones sencillas como obtener la fecha y la hora actual del sistema servidor, clculos matemticos simples, etc. Gracias a esta tecnologa creada por Microsoft, el usuario de Internet puede recibir pginas generadas dinmicamente en el servidor. Active Server Pages (ASP) es una nueva tecnologa creada por Microsoft, destinada a la creacin de sitios web. No se trata de un lenguaje de programacin en s mismo (ya que los ASP se pueden programar en VBScript, JavaScript, PerlScript o en varios otros lenguajes), sino de un marco sobre el que construir aplicaciones basadas en Internet Agrupadas en la categora de lenguajes de script (guin) las pginas ASP contienen adems de los tags de HTML habituales en las pginas Web, fragmentos de cdigo que el servidor resolver antes de enviarlo al navegador. Los scripts ASP se ejecutan, por lo tanto, en el servidor y puede utilizarse conjuntamente con HTML, VBScript y Javascript para realizar tareas interactivas y en tiempo real con el cliente. La tecnologa ASP apareci por primera vez (versin 1.0) con el servidor Internet Information Server 3.0 de Microsoft en Diciembre
Pgina 5

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

de 1996. La versin 4.0 de IIS (el Option Pack para NT 4.0) incluye la versin 2.0 de ASP, y la versin 5.0 de IIS, distribuida con Windows 2000, incluye ASP 3.0. Los predecesores de ASP incluyen CGI y Perl. Las tecnologas de Microsoft predecesoras de ASP incluyen IDC y WebDB. Otras tecnologas que compiten con ASP son ColdFusion (Allaire), JavaServer Pages (Sun Microsystems) y PHP (de libre distribucin bajo Open System). 1.1. Aplicaciones de las pginas ASP Pginas Active Server (ASP, Active Server Pages) es un entorno para crear y ejecutar aplicaciones dinmicas e interactivas en la Web. Se puede combinar pginas HTML, secuencias de comandos y componentes ActiveX para crear pginas y aplicaciones Web interactivas. La facilidad para conectar con una Base de datos y extraer datos de la misma dinmicamente visualizndolos en el navegador es la utilidad ms practicada de las pginas ASP. Puede conectarse a gestores de Base de datos SQL, Access, Oracle, o cualquier otro motor que disponga de driver ODBC. Comercio electrnico, portales, sedes personalizables y todas aquellas aplicaciones en las que el protagonista es la informacin dinmica. La tecnologa ASP se emplea principalmente para crear aplicaciones interactivas que funcionan en Internet. Las pginas ASP cumplen una importante funcin en la red de redes, pues nos permiten obtener, de forma simple y variada,

Pgina 6

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

informacin especfica a nuestros requerimientos. Ya no es necesario el estar creando nuevas pginas cada vez que deseamos subir nueva informacin, ni estar remodelando pginas publicadas, con la finalidad de lograr tener al da toda la informacin 1.2. Requisitos Para procesar una pgina ASP no existe ninguna restriccin especial en el lado del cliente, por lo que es indiferente la utilizacin del navegador Internet Explorer o Netscape Comunicator sin embargo, en el lado del servidor, es necesario un servidor Web de Microsoft. Igualmente es importante considerar algunas salvedades en algunas funciones utilizadas. Se utiliza el archivo ASP.DLL para interpretar el cdigo, siendo el servidor ms extendido Internet Information Server (ms conocido como IIS.) Estos son los servidores de contenidos ASP posibles para plataformas Microsoft: Internet Information Server 3.0 o superior (para sistema operativo Windows NT 4.0.) Personal Web Server (para Windows 95 y Windows 98.) Para plataformas Unix es necesario aadir un software que acte de intrprete siendo algunos de los ms conocidos: Chilisoft Instant ASP Si se quiere acceder a una base de datos, se puede usar una conexin ODBC, una conexin OLE-DB, o una ruta fsica. Como plataforma de bases de datos, una simple base de datos hecha en Microsoft Access es suficiente.

Pgina 7

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Para el manejo de bases de datos, dado que estamos en un entorno casi totalmente Microsoft, en estas pginas se explicarn las bases de datos Access, aunque la dinmica es muy similar en otras. Adems se necesita por lo menos un simple editor de textos como el Bloc de notas de Windows para escribir los guiones. Resumen Software necesario para la ejecucin de Pginas Active Server: Requerimientos para la implantacin de un servidor Web de alto rendimiento que soporte ASP WINDOWS NT 4.0 IIS 4.0 (INTERNET INFORMATION SERVER 4.0) IIS3.0 + ASP.EXE Requerimientos para la implantacin de desarrollo o sistemas Intranet WINDOWS 95 + PERSONAL WEB SERVER 1.0 + ASP.EXE WINDOWS 98 + PERSONAL WEB SERVER 4.0 Nota: Personal Web Server 4.0 esta incluido en algunas de las distribuciones de Windows 98 en el directorio ADD-ONS\PWS

1.3. Herramientas ASP, VBScript y Javascript son lenguajes de programacin comunes, luego su sintaxis es implementada en cdigo ASCII, por lo que para poder crear, editar y modificar dicho cdigo, slo es necesario utilizar un simple y comn editor de textos, como puede ser el "edit" del DOS, el "Notepad" o el "Wordpad" de los entornos Windows, o cualquiera de los mltiples editores de texto que existen.

Pgina 8

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Microsoft ha tenido la diferencia de crear, dentro de su suite de desarrollo DevStudio, una aplicacin especfica para administracin y creacin de proyectos Web, denominada Visual InterDev, que en el momento de realizarse este documento estaba en su versin 6.0. Sin embargo, en este documento no nos basaremos en dicho en primera instancia en dicho software, ya que nos limitaremos a dar unas pinceladas sobre los conceptos bsicos del lenguaje, sin afn de introducirnos en reas ms profundas, como la administracin de proyectos, y dems. 1.4. Caractersticas Principales ASP es totalmente gratuito para Microsoft Windows NT o Windows 95/98. El cdigo ASP se puede mezclar con el cdigo HTML en la misma pgina (no es necesario compilarlo por separado). El cdigo ASP se puede escribir con un simple editor de textos como el Bloc de notas de Windows o UltraEdit. Cmo el cdigo ASP se ejecuta en el servidor, y produce como salida cdigo HTML puro, su resultado es entendible por todos los navegadores existentes. Mediante ASP se puede manipular bases de datos (consultas, actualizaciones, borrados, etc.) de prcticamente cualquier plataforma, con tal de que proporcione un driver OLEDB u ODBC. ASP permite usar componentes escritos en otros lenguajes (C++, Visual Basic, Delphi), que se pueden llamar desde los guiones ASP.

Pgina 9

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Sin modificar la instalacin, los guiones ASP se pueden programar en JScript o VBScript (este ltimo es el ms usado porque ms programadores lo dominan), pero tambin existen otros lenguajes, como PerlScript y Rexx, que se pueden emplear para programar ASP. Se ha portado a la plataforma Java por ChiliSoft y Halcyon Software, lo que permite que ASP sea usado en casi cualquier sistema operativo. 1.5. Ventajas Permite compatibilizar la creacin de pginas Web activas en el cliente y en el servidor, pudindose as balancear la carga de proceso y de comunicaciones segn los deseos del diseador. Permite utilizar diversos tipos de lenguajes de programacin de scripts en una misma pgina; aunque esta prctica no resulta recomendable, en algunas ocasiones puede resultar beneficiosa. Fciles de utilizar y funcionan adecuadamente en todos los navegadores (Explorer, Netscape, etc.). Proporcionan un acceso simple a la base de datos (Oracle, SQL Server, Access, etc.). Su ejecucin es muy eficiente (lo que permite utilizar servidores econmicos). Simplifican el aplicaciones Web. desarrollo y mantenimiento de las

Permiten la utilizacin e integracin de productos y tecnologas de Microsoft tales como Interdev, FrontPage, ADO, etc.
Pgina 10

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

ASP se encuentra integrado en el soporte estndar de comunicaciones de Windows NT: Internet Information Server (IIS. Las pginas se generan dinmicamente mediante el cdigo de scripts, (guiones). El cdigo de script se ejecuta en el servidor, y no se depende del navegador que se emplee. Permite acceder a bases de datos de una forma sencilla y rpida. Desde una pgina ASP se pueden ejecutar servidores OLE en el servidor de web, lo que abre un abanico de nuevas posibilidades slo accesibles previamente usando CGI y filtros ISAPI: acceso a base de datos, acceso a ficheros, logging en el sistema, envo de correo, etc. 1.6. Aclaraciones Para acceder a los ficheros .mdb de Access desde un ASP no es necesario tener instalado Microsoft Access. Slo hace falta el driver ODBC correspondiente. Una coleccin es una estructura de datos, similar a un vector, pero que almacena los valores junto con una clave de acceso. Para recuperar los valores hay que indicar la clave correspondiente. Una cookie es un mensaje enviado a un navegador desde un servidor. El navegador almacena el mensaje en un fichero de texto y se lo devuelve al servidor cada vez que realiza una

Pgina 11

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

peticin. El principal uso de las cookies es poder identificar a los usuarios. Conjunto de tecnologas de Microsoft, basado en OLE (Object Linking and Embedding) y COM (Component Object Model). Una transaccin es un conjunto de acciones que, o se realizan todas ellas o no se realiza ninguna de ellas. Una transaccin tiene que cumplir el test ACID (Atomic, Consistent, Isolated y Durable).

Pgina 12 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2. Pginas Active Server


2.1. El modelo de Pginas ASP Las pginas ASP comienzan a ejecutarse cuando un usuario solicita un archivo. ASP al servidor Web a travs del explorador. El servidor web llama a ASP, que lee el archivo solicitado, ejecuta las secuencias de comandos que encuentre y enva los resultados al explorador del cliente. Puesto que las secuencias de comandos se ejecutan en el servidor, y NO en el cliente, es el servidor el que hace todo el trabajo necesario para generar las paginas que se envan al explorador. Las secuencias de comandos quedan ocultas a los usuarios, estos solo reciben el resultado de la ejecucin en formato HTML. Desaparece por tanto el problema de s el cliente puede o no ejecutar sentencias de comandos, el servidor Web solo enva el resultado en cdigo HTML standard interpretable por cualquier explorador. 2.2. Crear Pginas ASP Los archivos .asp son archivos de texto normales, no es necesario ningn editor especial para crearlos, puede usarse cualquier editor que genere cdigo ASCII. Un archivo .asp puede contener texto, cdigo HTML, cdigo ASP o cualquier combinacin de estos. Si no contiene cdigo ASP se comporta como un archivo . html normal. Nota: todos los archivos .asp requieren una parte de proceso por el servidor, por lo cual no es conveniente convertir a .asp los archivos que no contengan cdigo.

Pgina 13 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2.3. Funcionamiento Bsico: ASP proporciona un mtodo eficiente y sencillo de crear sitios Web con pginas dinmicas y acceso a bases de datos. Para que un usuario realice una peticin de pgina Web, deber proporcionar en su explorador una direccin que indique un archivo con extensin .Asp. Cuando se trabaja con IIS y ASP, el servidor de Web analiza las peticiones de pgina que recibe. Si se encuentra con una solicitud de pgina con extensin .asp en lugar de .htm, entonces se apoya en la aplicacin ISAPI que sirve de soporte de ejecucin de las pginas ASP. . AS P
Servidor de Web Tratamiento Tratamiento de peticiones de peticiones .HTM .HTM Servidor Peticin

ISAPI ISAPI (DLL) (DLL) de ASP d ASP de

La aplicacin ISAPI de ASP diferencia las lneas HTML de las instrucciones que dan la funcionalidad dinmica de las pginas activas. Cuando determina el lenguaje en el que se encuentran los programas (Scripts), da paso al motor de ejecucin de scripts adecuado (Jscript, VBScript, etc.). Los motores de ejecucin de scripts se encargan de realizar el anlisis sintctico y la compilacin de las instrucciones ejecutables. Existe una memoria cach de pginas recientemente procesadas que permite aumentar las prestaciones de ASP, evitando repetir los procesos de separacin de instrucciones, anlisis sintctico y compilacin de las pginas ms utilizadas.

Pgina 14

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Otros motores de lenguajes Motor de Java Script

ISAPI (DLL) . ISAPI (DLL) de ASP d ASP ASP de Servidor de Web Servidor Petici n

Motor de Visual Basic Script

Tratamient Tratamient oo de de peticiones peticiones .HTM .HTM

Cach de Cach de ASP ASP

Una vez resuelta las fases anteriores, se proceden a ejecutar las instrucciones. Los motores de ejecucin de scripts a menudo se encuentran con objetos ActiveX exteriores con los que tienen que interactuar. Un ejemplo muy importante de esta situacin se centra en el acceso a bases de datos a travs de ADO (Actives Data Objects), basado en tecnologa COM (Component Object Model). El usuario recibe como respuesta un archivo .htm, que se ha formado uniendo las instrucciones HTML originales de la pgina .asp con las instrucciones HTML que se han generado tras la ejecucin de los scripts.
PGINA .ASP PGINA .ASP = = HTML HTML + + SCRIPTS SCRIPTS EJECUCIN DE EJECUCIN DE LOS LOS SCRIPTS SCRIPTS PGINA PGINA HTML HTML DE DE RESPUESTA RESPUESTA

HTML HTML ORIGINALES ORIGINALES

HTML HTML GENERADO G GENERADO

Pgina 15

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2.4. Utilizacin de Objetos Integrados: La mayor parte de las aplicaciones Web requieren un intercambio de informacin entre clientes y servidores.

ASP proporciona un mtodo sencillo encapsulando los detalles de la obtencin de datos dentro de la funcionalidad de los objetos integrados.
Procesamiento de los datos del usuario Datos recogidos al cliente

Peticin HTTP

Servidor

Respuesta HTTP H

C Cliente

Los objetos integrados son componentes ActiveX Server que no requieren ser instanciados para poder utilizarse. Los objetos integrados que ASP proporciona estn especialmente diseados para facilitar el intercambio de informacin entre los usuarios y el equipo servidor. 2.5. Obtencin de la formularios por los clientes: informacin enviada en los

Cuando se usa ASP, existen diversas maneras de preparar pginas para procesar la informacin que envan los usuarios. A continuacin explicaremos las configuraciones de los tres mecanismos bsicos de trabajo.

Pgina 16 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

A. Un fichero .htm para enviar informacin y un fichero .asp para recibirla y procesarla. Paso 1: El usuario realiza una peticin de la pgina que contiene el formulario. Los campos se visualizan en su explorador y rellena los datos de respuesta.
Peticin HTTP Pgina Pgina .htm .htm

C Cliente

Pgina Pgina .htm .htm

Servid or

Pgina . . Pgina asp aasp

Paso 2: Cuando el usuario selecciona el botn de envo, la informacin introducida se transmite (junto con datos de control y entorno) hacia el equipo Pgina Pgina .htm servidor. .htm Servid or

C Cliente

Respuesta (datos del d formulario)

Pgina . . Pgina asp asp

Pgina Pgina .htm .htm

C Cliente

Pgina Pgina .htm .htm generada generada

Servid or

Pgina . . Pgina asp asp

Pgina 17 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Paso 3: La pgina .asp se procesa y el resultado HTML generado se enva al usuario para que su explorador lo pueda visualizar.

Pgina 18 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

B. Un fichero .asp para enviar informacin y un fichero .asp para recibirla y procesarla.

Pgina 19 1

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Paso 1: El usuario realiza una peticin de la pgina .asp, la cual, tras procesarse, queda como un fichero HTML con algn formulario. Los campos se Pgina . . visualizan en el explorador y el usuario rellena los Pgina asp asp datos de respuesta. Peticin HTTP C Cliente Servid or

Pgina .htm Pgina .htm generada generada

Pgina . . Pgina asp aasp

Pgina . Paso 2: Cuando el usuario selecciona el botnasp envo, la de informacin introducida se transmiteasp (junto con datos de control y entorno) hacia el equipo servidor. Servid C Cliente Respuesta (datos or Pgina . . Pgina d del formulario) asp asp

Pgina .

Pgina . . Pgina asp asp

C Cliente

Pgina Pgina .htm .htm generada generada

Servid or

Pgina . . Pgina asp asp

Pgina 20 2

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Paso 3: La pgina .asp se procesa y el resultado HTML generado se enva al usuario para que su explorador lo pueda visualizar.

Pgina 21 2

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

C. Un fichero .asp para enviar informacin y el mismo fichero .asp para recibirla y procesarla.

Pgina 22 2

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Paso 1: El usuario realiza una peticin de la pgina .asp, la cual, tras procesarse, queda como un fichero HTML con algn formulario. Los campos se visualizan Peticin HTTP en el explorador y el usuario rellena los datos de respuesta. C Cliente
Pgina .htm Pgina .htm generada generada

Servid or

Pgina . . Pgina asp aasp

Paso 2: Cuando el usuario selecciona el botn de envo, la informacin introducida se transmite (junto con datos de control y entorno) hacia el . equipo Pgina . Pgina servidor. aasp asp Servid Cliente Respuesta (datos o or
del formulario)

C Cliente

Pgina Pgina .htm .htm generada generada

Servid or

Pgina . . Pgina asp asp

Pgina 23 2

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Paso 3: La pgina .asp se procesa y el resultado HTML generado se enva al usuario para que su explorador lo pueda visualizar.

3. HTML - DHTML - Lenguajes de Escritura de Scripts


3.1. HTML La finalidad de esta seccin no es desarrollar la sintaxis y ejemplos de HTML si no dar una breve explicacin a ttulo informativo y comparativo. HTML es una implementacin del standard SGML (Standard Generalized Markup Language), estndar internacional para la definicin de texto electrnico independiente de dispositivos, sistemas y aplicaciones. Metalenguaje para definir lenguajes de diseo descriptivos; proporciona un medio de codificar documentos hipertexto cuyo destino sea el intercambio directo entre sistemas o aplicaciones. Este documento es el que, en la World Wide Web (WWW), conocemos como hipertexto. Un documento hipertexto no se compone nicamente de texto, pues tambin contiene relaciones con otros documentos. Con el paso del tiempo este concepto se ampli aun ms haciendo que los enlaces no solo sean de texto,

Pgina 24

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

sino que se complementan con informacin en otros formatos, como grficos, sonidos, vdeo, etc. El resultado es un documento que podamos prcticamente llamar multimedia. El concepto bsico es que los documentos tienen referencias a otros documentos, estn donde estn, bien en un equipo local en uno remoto. Estos enlaces pueden ser palabras, frases e incluso imgenes. Estos documentos pueden ser mostrados por los visores de pginas Web en Internet, como Netscape, Mosaic o Microsoft Explorer. Por el momento no existe un standard de HTML ya que tanto Netscape como Microsoft se empean en incluir directivas que solo funcionan con sus respectivos navegadores. De cualquier manera existen diferentes revisiones o niveles de estandarizacin, el 1.0, el 2.0 y el 3.0, lo que produce que algunos visores no "comprendan" en su totalidad el contenido de un documento. En este manual se ha utilizado la revisin 3.0 de HTML. Esto quiere decir que algunas de las rdenes de HTML que aqu se indican puede que no sean reconocidas por algunos visores de pginas Web. Netscape 2.x en adelante y Microsoft Explorer 3.x en adelante reconocen prcticamente todas las rdenes HTML vistas en este manual. Aprender a programar en HTML es considerablemente diferente de aprender a desarrollar software en otros lenguajes de programacin. El lenguaje HTML es un lenguaje interpretado y permite dar indicaciones precisas al programa cliente, en este caso los "browsers", o ms bien los conocidos navegadores, de cmo debe presentarse el documento en pantalla. Un documento HTML es simplemente un archivo ASCII, en el que se incluye un texto que se quiere mostrar en pantalla, por lo que no se necesita nada ms que un editor normal que nos permita salvar el archivo en formato ASCII, no obstante programas como Microsoft Word ya vienen preparados para escribir documentos HTML.
Pgina 25

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Existe en el mercado software que ayuda a construir las pginas Web, reduciendo el trabajo de escribir cdigo, pero siempre hay que retocar el cdigo resultante por lo que es necesario el conocer el lenguaje HTML a fondo, si es que se quiere llegar a realizar buenas pginas. A continuacin mencionaremos el software necesario para el desarrollo de una pgina Web. Programas de tratamiento de imgenes tipo Paint Shop Pro, Corel Draw o similar. Editor de texto. Navegador o "browser", para ver los resultados de las pginas que se hagan (Nestcape Navigator, Nestcape Comunicator o Internet Explorer). Dado que no todos los navegadores se comportan ante una instruccin de HTML de la misma forma, se advertir de las excepciones, por lo que no utilizaremos un nico navegador. Los programas de tratamiento de imgenes se utilizaran para crear botones, banners, animaciones y retocar todas las imgenes que se utilizan en una pgina Web. El editor se utilizar para escribir el cdigo HTML, y por ultimo los navegadores nos servirn para ver el trabajo realizado. El documento HTML se hallar situado en algn ordenador al que se pueda acceder a travs de Internet. Para indicar la situacin del documento en Internet se utiliza la URL (Uniform Resource Locator). La URL es el camino que ha de seguir nuestro visor a travs de Internet para acceder a un determinado recurso, bien sea una pgina Web, un archivo, un grupo de noticias, etc.

Pgina 26

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Es decir, lo que el visor de pginas Web hace es acceder a un archivo situado en un ordenador que est conectado a la red Internet. La estructura de una URL para una pgina Web suele ser del tipo http://dominio/directorio/archivo. El dominio indica el nombre del ordenador al que accedemos, el directorio es el nombre del directorio de ese ordenador y archivo el nombre del archivo que contiene la pgina Web escrita en HTML. Por ejemplo: http://unlm.edu.ar/taller/indice.html donde: http://unlm.edu.ar es el indicador de pgina Web /taller/ es el Directorio dentro del ordenador indice.html es el Archivo que contiene la pgina Web Adems de ser un texto ASCII, el lenguaje HTML se caracteriza por la necesidad de introducir unos comandos o etiquetas llamadas "Tags" que indican al programa cliente ("browser") como se debe visualizar el documento en la pantalla. 3.2. Html Dinmico (DHTML) DHTML son las siglas de Dynamic HyperText Markup Language (conocido como HTML Dinmico.) Se trata de una nueva especificacin que viene a dar respuesta a la demanda de interactividad en las pginas web. El mundo de la red hasta ahora haba estado lleno de pginas con un contenido ms o menos interesante, pero esttico: una vez la pgina haba cargado, ya no haba modificacin posible que la dotara de la interactividad que el gran pblico peda. La especificacin DHTML se podra dividir en tres grandes categoras: las hojas de estilo, las capas (layers) y las fuentes de
Pgina 27

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

letra cargables. Adems, el uso de algn lenguaje de script, como JavaScript, contribuye en buena medida a la interactividad de las pginas, pues estos lenguajes son los que nos permiten cambiar las propiedades de forma dinmica. Las hojas de estilo vienen a intentar volver a separar en un documento el estilo lgico del estilo fsico, dejando este ltimo en bloques de definicin de estilos separados de la estructura del documento. El estilo lgico se refiere a la lgica del documento: cabeceras, prrafos,... no se preocupa de la apariencia final, sino de la estructura del documento. Por el contrario, el estilo fsico no se preocupa de la estructura del documento, sino por la apariencia final: prrafos con un cierto tipo de letra, tablas con un determinado color de fondo,... La finalidad de las hojas de estilo es crear unos estilos fsicos, separados de las etiquetas HTML (en lugar de como parmetros de las etiquetas), y aplicarlos en los bloques de texto en los que se quieran aplicar. Estos estilos podrn ser modificados en algunas ocasiones desde JavaScript, y esto empieza a darnos un poco ms de interactividad. Por otra parte, tenemos las capas, que vienen a darnos la solucin al problema de poner elementos justo en la posicin que queramos, evitndonos tener que hacer artificios para obtener el resultado buscado. Una capa ser una parte ms del documento que puede ser situada en cualquier posicin del mismo, consiguiendo que se solape sobre algunos elementos si es lo que necesitamos, adecuando sus mrgenes y otras propiedades a lo que queramos hacer... Por ltimo, las fuentes cargables intentan solucionar el problema de que quien est viendo nuestro documento no tenga en su ordenador la fuente que nosotros consideramos ms apropiada para nuestra pgina, incrustando de alguna manera la fuente en la propia pgina.
Pgina 28

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Estas tres grandes categoras sern las que se irn viendo poco a poco, con ejemplos claros, a lo largo de este curso.

Pgina 29

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.2.1. Ventajas y Avances alcanzados con HTML Dinmico: Permite manejar eficientemente la interaccin con sus usuarios permitiendo la modificacin dinmica del contenido de una pgina Web. Permite modificar el aspecto o contenido de una pgina Web sin necesidad de cargar una nueva. Esto es importante ya que sin estas ventajas el dinamismo se basaba en recoger informacin de formularios y responder con ventanas de aviso, con pequeos cambios en el estado de los elementos de un formulario, cargando una nueva pgina, etc. As se trabajaba hasta la versin 3.2 de HTML. Brinda la posibilidad de modificar el contenido de la pgina como el formato de la misma segn las diferentes repuestas de los usuarios. Utilizacin de estilos dinmicos. HTML Dinmico permite, por ejemplo, variar el color de fondo de una pgina, aumentar el tamao de un texto, modificar el texto, variar el color de un botn, hacer aparecer una lista desplegable, mover una figura, etc, sin necesidad de cargar una pgina nueva. Estos cambios se hacen en forma dinmica, atendiendo a las interacciones provenientes delos usuarios. Utiliza CCS (Cascade Style Sheet) para definir estilos comunes en las diferentes pginas de una aplicacin Web, as como modificar de forma dinmica estos estilos. Esta ventaja facilita el mantenimiento del aspecto homogneo de las diferentes pginas de una aplicacin Web. En HTML para lograr esto era necesario sealar para cada elemento de las pginas, el tipo de letra, el tamao, el color y todas las dems caractersticas propias. Lo cual era bastante tedioso, que lleva demasiado tiempo para lograr y para mantenerlo actualizado (cualquier modificacin

Pgina 30

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

requera modificar todos los elementos para mantener la homogeneidad.) DHTML soluciona este problema con las Hojas de Estilo en Cascada (HEC o CCS), permitiendo el manejo de estilos generales para las distintas pginas. Permite separar el contenido o informacin con la estructura de presentacin. DHTML permite realizar modificaciones de apariencia de los documentos sin tener que efectuar comunicaciones con el servidor. Una forma de realizarlo es modificar el aspecto de un documento tras su carga dependiendo de las acciones del usuario basndose en el uso de JavaScript. De esta manera se puede modificar las propiedades de un objeto independientemente que su estilo haya sido definido en el mismo documento o haya sido importado desde un documento HEC. Posibilita definir las caractersticas de estilo para un contenedor, de tal forma que se aplican a los objetos contenidos. Manejo de la visibilidad y posicionamiento dinmicos de los elementos y activacin de capas. DHTML permite el posicionamiento de los elementos visibles o contenedores dinmicamente. Posibilita la carga de elementos no visibles con el documento principal, de tal forma que, de acuerdo con los requerimientos del usuario, se muestren los elementos que interesen. De esta forma se evitan las comunicaciones con el servidor y la recarga de nuevas pginas, que a veces puede resultar demasiado lenta, logrando respuestas en forma local. Adems, permite definir el orden en que se superponen los contenedores en caso de aparecer varios de ellos al mismo tiempo sobre la misma zona del documento (manejo de capas.) Efectos multimedia y Controles ActiveX.

Pgina 31

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Esta ventaja se basa en la utilizacin de capas. Dado que las capas son elementos independientes con caractersticas propias que no afectan al resto del documento y que pueden hacerse visibles o no, se pueden aprovechar para conseguir los efectos deseados. Se pueden lograr diversos movimientos combinando movimientos de las capas. Sin embargo, DHTML incorpora la posibilidad de usar en las pginas una serie de controles de ActiveX. Se pueden incorporar a los documentos que se estn diseando sin necesidad de introducir identificadores de objetos ni nada similar, ya que han sido incorporados al navegador como un componente ms. Simplemente se declaran y se hace uso de ellos: son los filtros y las transiciones. Los filtros se pueden aplicar directamente sobre un objeto para producir un determinado efecto sobre l. Esto reduce la necesidad de almacenamiento de variantes del objeto con todos los efectos deseados en el servidor (siempre y cuando el efecto deseado sea algunos de los disponibles.)

Pgina 32

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Mejora en el enlazado de datos. La forma habitual en que un sistema Web interacta con el usuario es en base a que dicho sistema contiene una serie de programas CGIs que recogen los datos aportados por dicho usuario (introducidos en una pgina con un formulario), y que atacan las bases de datos de que dispongan para recuperar las selecciones realizadas. Luego, generan una pgina HTML con los datos as recuperados y la envan al computador cliente. Esta forma de proceder requiere de, al menos, una conexin con el computador servidor, de tal manera que siempre significa un retraso en la ejecucin. Normalmente. Adems, si la informacin recuperada de las bases de datos es muy voluminosa, el servidor no la enviar en su totalidad al cliente, ya que resultar inmanejable, por lo que se opta, en la mayora de los casos, por dividirla y enviar el resto de la informacin por partes y bajo demanda del usuario, lo que conlleva a que el nmero de conexiones con el servidor crezca con el volumen de informacin. Todo este proceso requiere, adems, que el servidor tenga permanentemente informacin de qu es lo que ha enviado a cada uno de los clientes que estn conectados, qu es lo siguiente que enviar y, en general, el estado de todas sus peticiones. A este proceso, que implica una sobrecarga del trabajo en el servidor que hace que se retarde demasiado el sistema, hay que sumarle la carga generada por todos los clientes atacando las bases de datos en bsqueda de informacin. DHTML incorpora un mtodo de trabajo en el que esta carga es parcialmente (o totalmente) compartida por los computadores clientes que estn realizando peticiones al sistema Web, de tal forma que el servidor se limita a enviar la informacin y sta puede ser procesada, clasificada y seleccionada por el cliente. Este mtodo de trabajo necesita de una conexin inicial ms larga con el servidor ya que enva el cdigo de la pgina Web y la informacin a procesar, pero es ms eficiente que el clsico sistema de conexiones permanentes entre cliente y servidor. A esta forma de trabajar se la denomina vinculacin de datos o enlazado de datos y hace referencia a la existencia de dos
Pgina 33

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

elementos caractersticos: los productores y los consumidores de datos. Es importante poder conocer cuando est indicado este tipo de diseo, ya que no siempre es recomendable. Inicialmente, si el servidor realiza las bsquedas sobre un volumen muy grande de informacin (caso de los buscadores de Internet), o sobre informacin muy compleja, con enlaces entre sus diferentes componentes o con estructuras que no son simples, este mtodo no es recomendable y es muy probable que haya que recurrir al tradicional mtodo de los CGIs y control por parte del servidor. Sin embargo, si la informacin que se quiere ofrecer al usuario se puede organizar en lo que se ha dado por denominar organizacin tabular, esto es, si la informacin se puede estructurar segn una tabla en la que cada tupla represente un registro de informacin y cada columna represente un atributo o campo (estructura tpica en los entornos de base de datos relacionales clsicos), si el nmero de filas de dicha tabla no es muy elevado, y el tipo de los datos que se necesita en dicha informacin no es especialmente complejo, entonces s se puede pensar en disear con el mtodo de vinculacin de datos. Existencia y funcionamiento basada en: La creacin de una nueva versin de HTML que incorpora las caractersticas de dinamismo (Hojas de Estilo CSS, modelo de objetos, etc.) El desarrollo de versiones de navegadores comerciales que interpretan las caractersticas y propiedades dinmicas de HTML. Los navegadores son los encargados de visualizar los cambios de forma autnoma en el equipo del cliente. Aclaracin importante: Pese a los esfuerzos de estandarizacin del W3C (World Wide Web Consortium) gran parte de las posibilidades que nos brinda HTML Dinmico son dependientes de cada fabricante de navegadores. Utilizacin de eventos con HTML Dinmico:

Pgina 34

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Para crear pginas Web que hagan un uso adecuado de las posibilidades que nos ofrece HTML Dinmico es necesario utilizar un lenguaje de scripts como VisualBasicScript o JavaScript, los cuales tienen un diseo, filosofa y funcionamiento orientado a objetos y a eventos. En un lenguaje orientado a eventos, la ejecucin de la mayor parte de los cmputos que va a realizar el computador est supeditada a la activacin de alguno de los diferentes eventos que se han definido en el lenguaje y en su sistema de soporte (en nuestro caso el hardware, el sistema operativo y el navegador.)La filosofa de un lenguaje orientado a eventos se basa en dar respuesta a cada uno de los eventos disponibles cuando ste se produzca. Los distintos elementos admiten una serie de eventos que pueden asociarse a manejadores de eventos (instrucciones que se ejecutan cuando le llega el evento esperado al elemento definido.) La mayor parte de los eventos provienen de: - Seales de hardware producidas directamente por el usuario a travs del ratn y del teclado (click con el mouse, movimiento del mouse, presionar una tecla del teclado, etc.) - Seales externas, a veces iniciadas por el usuario (encender la impresora, ocurrencia de un error, etc.) - Cambios de estado en el entorno, por ejemplo referente a operaciones con el escritorio (copy, paste, etc.). - Sucesos de temporizacin. - Eventos generados por programa (se dispone de mtodos para simular sucesos). NAVEGADOR

SISTEMA
Pgina 35

HARDWARE

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Los eventos que se pueden utilizar han variado a lo largo del tiempo, debido a que los navegadores cada vez permiten mayores posibilidades en este sentido. El Explorer de Microsoft, en su versin 5.0, incorpora la posibilidad de utilizar una gran cantidad de eventos, alguno de ellos de carcter muy especializado. Por el contrario, Netscape no incluye tanta variedad de sucesos, aunque por supuesto soporta los eventos ms importantes.

Pgina 36

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.3. Lenguaje de Escritura de Scripts vs. Lenguajes de Programacin Lenguajes de Escritura de Scripts El host es un explorador Web o el motor de pginas ASP. Son interpretados por el host y no requieren una operacin de compilacin. Tienen accesos a los recursos que proporciona su aplicacin host. El lenguaje tendr acceso a un modelo de objetos segn el host sea por ejemplo Internet Explorer 4.0 o el motor ASP. Los dos host proporcionan acceso a componentes Actives en el sistema host. Lenguajes de Programacin El host es el propio sistema operativo. Producen archivos ejecutables compilados, ya que se ejecutan sobre el sistema operativo. Tienen acceso a todos los recursos que ofrece el sistema operativo. Esto significa que tiene una interfaz de programacin de aplicaciones (API) que proporciona acceso a todas sus funciones internas.

Host sobre el que se ejecuta el cdigo Compilacin

Cantidad de recursos del sistema a los que tienen acceso

Pgina 37

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.4. VBScript vs. JScript VBScript JScript Caracters Subconjunto de Proporciona varios ticas Visual Basic y, objetos propios y Generales como tal, funciones. proporciona un Conjunto de nmero muy funciones ms grande de pequeo que en funciones propias VBScript. del lenguaje Visual Basic. Pocas funciones propias del lenguaje en s. Tipos de Solo hay un tipo de Tres tipos de datos Datos dato: variant. internos: string, number y boolean. Una variable puede Poca rigidez en los almacenar tipos. No hace falta cualquier tipo de especificar dato. Los explcitamente el requerimientos de tipo de dato de una almacenamiento variable, sino que se concreto de una tienen en cuenta variable no se varios tipos de datos pueden determinar permitidos. hasta el momento en que se asignan los datos a la variable. El tipo variant tiene Gestiona varios muchos subtipos objetos internos que ( Ej.: bolean, proporcionan integer, etc.). capacidades Tiene funciones de adicionales. conversin de subtipos.
Pgina 38

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Declaracio La declaracin no es obligatoria. nes y Para informar al host de scripts el uso de la nombre de variable. variables Las variables globales que se declaran en un lenguaje son visibles en el otro. Se declaran con Se declaran con Var, Dim, pero no pero no puede puede indicarse indicarse ningn tipo ningn tipo de dato de dato en la en la declaracin. declaracin. No se pueden Se pueden asignar asignar valores valores iniciales y no iniciales. tienen porque ser constantes. 3.5. Escritura de Scripts del Lado del Cliente vs. Escritura de Scripts del Lado del Servidor Escritura de Scripts del Lado del Cliente se Se ejecutan dentro de las pginas web que se envan al explorador. Explorador (el cual nunca ve el contenido de los scripts del lado del servidor, slo la salida que producen.) VBScript o Jscript (o cualquier otro.) de Uso de variables Escritura de Scripts del Lado del Servidor Se ejecutan en el propio servidor web. Motor ASP.

Donde ejecutan Host

Lenguaje Tipos

VBScript o Jscript (o cualquier otro.) Uso de variables que


Pgina 39

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Datos Variables

y que tienen un tipo tienen de dato. dato.

un

tipo

de

Cuando se desarrolla un sitio web para ASP y para un explorador web capaz de ejecutar scripts, la mayor parte de las pginas contienen una combinacin de scripts del lado del cliente y del lado del servidor.

Pgina 40

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Escritura de Scripts del Lado del Cliente Ventaja Menor carga en el s servidor. Permite una mayor interactividad in situ con la pgina web. No requiere tiempo adicional de descarga, al no tener que esperar respuesta del servidor. Pueden realizarse funciones que seran imposibles con scripts del lado del servidor, como mostrar y ocultar zonas de una pgina sin tener que recargar la pgina entera. Desvent El cdigo est ajas expuesto al usuario (puede verse con la opcin Ver cdigo fuente del explorador web.) Es necesario que el explorador disponga de un motor de scripts y est basado en el modelo de objeto del explorador.

Escritura de Scripts del Lado del Servidor Se pueden aprovechar los robustos recursos de una mquina central potente. Se puede crear un sitio independiente del explorador. Pueden realizarse funciones que seran imposibles con scripts del lado del cliente, como mantener y presentar la forma en que los mltiples usuarios estn utilizando el sitio web en un momento dado.

Un script mal escrito puede hacer que el servidor se quede bloqueado y tenga que pararse y volverse a arrancar. Requiere que los recursos del servidor estn disponibles para varios usuarios simultneamente. Es necesario que el

Pgina 41

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

servidor web permita ejecutar scripts del lado de servidor.

Pgina 42

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.6. Escritura de Scripts del lado del servidor La principal ventaja de la escritura de Scripts del lado del servidor es que el cdigo, las DDL y los scripts que residen en el mismo son consistentes, mientras que los exploradores clientes no lo son. El desarrollador puede estar seguro de lo que tiene en el servidor, mientras que los exploradores pueden ser tan variados como Internet Explorer, Netscape, Navigator, etc. La escritura de scripts del lado del servidor comprende: Pginas Active Server Objetos predefinidos de Active Server Componentes del lado del Server Pginas Active Server Permiten utilizar objetos del lado de servidor para producir aplicaciones web mejores. Permiten hacer uso de la potencia de los componentes que residen en el servidor. Los anuncios publicitarios, los accesos a base de datos, los contadores, el acceso a archivos y las capacidades del explorador son ejemplos de componentes del lado del servidor accesibles por pginas ASP. Se tiene acceso a mtodos y propiedades que permiten determinar las propiedades del explorador cliente, con las cuales puede decidirse qu tipo de pgina debe enviarse al cliente Web. Como ya se explic, son pginas web preprocesadas por el servidor antes de ser enviadas al explorador web del cliente. El servidor debe ser capaz de trabajar con las mismas, por lo cual necesita Internet Information Server 3.0
Pgina 43

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Objetos predefinid os de Active Server

en adelante o Personal Web Server para Windows 95/98. Existen de antemano en las pginas ASP y no necesitan ser creados antes de usarlos en los scripts. Cada uno de los objetos posee mtodos y eventos (los cuales se declaran en el archivo global.asa) Objetos: Application Propsito: Compartir datos con otros clientes web. Request Propsito: Obtiene los valores que el explorador de cliente pasa al servidor durante una peticin http. Response Propsito: Enva datos de salida la cliente. Server Propsito: Proporciona acceso a los mtodos y propiedades del servidor. Session Propsito: Almacena la informacin necesaria para una determinada sesin de usuario.

Pgina 44

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Componen tes del lado del Server

Componentes ASP instalables. Permiten crear pginas web dinmicas e interactivas. Son, bsicamente, funciones que ya estn escritas y preparadas para su uso y que seguirn evolucionando. Algunos de los componentes se instalan con IIS, mientras que otros permanecen en el CD IIS Resource Kit (Kit de recursos de IIS). Algunos componentes: - AdRotator Propsito: Posibilita la publicidad interactiva. Permite crear un anuncio rotatorio en una pgina web, que cambie automticamente segn una determinada planificacin. - BrowserType Propsito: Proporciona informacin por tipo de explorador. - Database Access Propsito: Proporciona acceso a base de datos. - Next Link Propsito: Gestiona una lista URL, de forma que las pginas de un sitio web puedan tratarse secuencialmente. - FileSystemObject Propsito: Proporciona acceso y administracin del sistema de archivos. - Collaboration Data Objects for NTS Propsito: Objetos de datos de colaboracin para NTS. Permite aadir a la aplicacin la capacidad de enviar y recibir mensajes con VBScript para NT Server. - Tools Propsito: Proporciona utilidades con
Pgina 45

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

- Counters Propsito: Permite crear, almacenar, incrementar y recuperar cualquier nmero de contadores individuales - ContentRotator Propsito: Rota automticamente las cadenas de contenido HTML de una pgina web segn archivo de planificacin de contenido. - PageCounter Propsito: Cuenta y muestra el nmero de veces que una pgina web ha sido abierta. - PermissionChecker Propsito: Verifica permisos a travs de protocolos de autenticacin de claves de acceso que proporciona IIS para determinar si cierto usuario tiene permiso para leer un determinado archivo.

Pgina 46

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.7. Escritura de Scripts del lado del cliente Son pequeos programas incrustados en el texto HTML. Estos pequeos programa se envan al explorador web del cliente donde son compilados y ejecutados. Por ejemplo, Internet Explorer de Microsoft puede ejecutar scripts del lado del cliente escritos en JScript (la versin abierta de Microsoft del lenguaje JavaScript de Netscape) o en VBScript. Permiten uso de controles ActiveX. Modelo de objeto del Explorador Recursos que el explorador ofrece cuando es el host del cdigo de script. El modelo de objetos de Internet Explorer difiere del Netscape. El explorador permite, mediante su modelo de objetos, que el cdigo de script tenga acceso a los diversos elementos que forman la pgina web que est mostrndose y est manipulando el usuario en un momento dado. El modelo de objetos del explorador sirve de interfaz entre el cdigo de script y el explorador de web. Esto incluye no slo la aplicacin del explorador web, sino tambin el contenido de la pgina actual. Mediante este modelo se pueden recuperar y manipular las propiedades de todos los elementos que contiene una pgina HTML.

Pgina 47

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.8. Informacin general de importancia A continuacin se dar una idea conceptual de ciertas herramientas o entornos de trabajo, que si bien, algunos no pertenecen al curso, es importante tener una idea conceptual de las mismas. 3.8.1. CGI CGI son las siglas de Common Gateway Interface, o interfaz de pasarela comn. Se trata de una especificacin que va a realizar la funcin de interfaz o pasarela entre el servidor web y los programas, llamados programas CGI, haciendo uso del protocolo HTTP y el lenguaje HTML. Un programa CGI ser aquel que cumpla la especificacin CGI, es decir, interactuar con el servidor de acuerdo a unos principios establecidos en la especificacin. Usualmente, cuando un navegador busca un URL, sucede lo siguiente. En primer lugar, el ordenador cliente contacta con el servidor HTTP. Este busca el fichero solicitado por el cliente y enva ese fichero. El cliente entonces visualiza el fichero en el formato apropiado. Ahora bien, es posible instalar el servidor HTTP de forma que cuando un fichero de un directorio concreto es solicitado, ese fichero no sea devuelto. En lugar de eso, se ejecuta como un programa, y todo lo que el programa obtiene se enva de vuelta al cliente para ser visualizado. Obviamente, el directorio en el que estn estos programas debe tener permiso de ejecucin, as como los programas, y los permisos de lectura o de lectura / escritura para otros programas que pudieran usarse. Resumiendo: los programas CGI son programas que se ejecutan en el servidor en respuesta a peticiones del cliente. El servidor crear una informacin especial para el CGI cuando pasa a ejecutarlo, y esperar la respuesta del programa. Antes de que el CGI se ejecute, el servidor crea un entorno con el que trabajar el
Pgina 48

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

programa CGI. Este entorno comprende la traduccin de cabeceras de peticiones HTTP en variables de entorno a las que podr acceder nuestro programa. El resultado de la ejecucin del programa suele ser una serie de encabezados de respuesta HTTP y HTML. Estos encabezados son recogidos por el servidor y enviados al cliente que hizo la peticin. Los programas o scripts CGI pueden escribirse en cualquier lenguaje de programacin que sepa manejar entrada y salida estndar. La eleccin depende de qu nos gusta ms, y un poco de sobre qu sistema operativo est el servidor. Si el servidor corre bajo una mquina Unix, a buen seguro podremos programar en C o en Perl (por ejemplo), solicitando al administrador del sistema (si no lo es uno mismo) que le de los permisos necesarios para poder ejecutar los programas. Si el servidor corre bajo una mquina Windows, tambin se puede programar en C o en Perl, esto ltimo si el servidor tiene el intrprete instalado. Lo que se programa en C se tiene que compilar y poner el ejecutable en el directorio destinado a los CGI. Si se usa Perl o algn otro lenguaje interpretado, no existe necesidad de esto; simplemente se pone el script en el directorio para los CGI, y cuando se llame al CGI, el servidor se encargar de ejecutar el intrprete. Lo ms recomendable es usar un lenguaje lo ms portable posible, como los dos citados, pues el cambio de sistema operativo afectara mnimamente al programa hecho y no tendramos que cambiar muchas cosas. 3.8.2. PHP PHP es un lenguaje de programacin orientado a realizar las mismas funciones que los programas CGI. Como tal, se ejecuta en el servidor, y permite, con mayor sencillez que los CGI, realizar acciones como proceso de formularios, acceso a bases de datos, etc. La definicin oficial del lenguaje PHP dice que esto son las siglas de "PHP: Hypertext Preprocessor". Se trata de un lenguaje cuyos programas se ejecutan en la parte del servidor, y cuyo cdigo se escribe incrustado con el cdigo HTML.
Pgina 49

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Dado que se ejecuta en el servidor, es necesario tener un servidor web para poder comprobar nuestros programas. 3.8.3. XML La tecnologa push de Microsoft basa su implementacin en el formato de definicin de canales (CDF), el cual se basa en el lenguaje de marcas extensible XML (Extendible Markup Language). La tecnologa push (activa) permite a los creadores del contenido ofrecer activamente su material a los usuarios finales en lugar de invitarles a que vayan a buscarlo. XML es una norma mucho ms potente que el HTML. La gran ventaja de este formato es que el contenido est casi totalmente disociado del formato. Lo que hace al CDF tan especial es el nivel de integracin que puede conseguir con el sistema operativo. Con la llegada de Windows 98 / NT y Active Desktop de Internet Explorer 4.0... se puede incrustar contenido en el escritorio qu mejor lugar para una tecnologa push? 3.8.4. WML WAP son las siglas de Wireless Application Protocol, o, dicho de otra manera, se trata de un protocolo para la transmisin de datos por un medio inalmbrico, como puede ser un telfono mvil que soporte ese protocolo. Para realizar los documentos que se transmiten va este protocolo, se utiliza un lenguaje llamado WML (el que vamos a ver en este curso), que responde a las siglas de Wireless Markup Language, o lenguaje de marcas para inalmbricos. Este lenguaje es descendiente del XML (eXtensible Markup Language), con unas etiquetas bastante similares a las del HTML.
Pgina 50

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3.8.5. Scriptlets Son una poderosa herramienta que extiende la funcionalidad de Internet Explorer 4.0 ms an. Permiten crear bibliotecas web modulares que pueden utilizarse en cualquier pgina web. Se pueden crear mediante HTML, DHTML o scripts. Estn situados de forma central y generalmente slo son llamados bajo demanda. Como slo existen en un lugar se pueden realizar cambios que afecten a todo el sitio web. Tambin pueden evitar mucha escritura de cdigo, simplemente repitiendo scripts relevantes en el cdigo. Algunos usos comunes de los scriptlets son los de interfaces de usuario repetitivas, definiciones de tablas grandes y segmentos de cdigos repetitivos.

Pgina 51

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

4. Internet Information Server


4.1. Introduccin a IIS IIS es el software estndar que soporta comunicaciones Internet en Windows NT. No es el nico, ni proporciona todos los servicios posibles; sin embargo su importancia es enorme al haberse convertido en uno de los ms extendidos; haciendo fuerte competencia a los servidores basados en plataformas UNIX. El auge viene de la mano de la fuerte penetracin de Windows NT, complementndose Muy adecuadamente con este desde el punto de vista comercial y tcnico. Proporciona unas buenas prestaciones en equipos con muy diferentes prestaciones de hardware. Es especialmente ventajoso en su utilizacin en redes Intranet debido a la compatibilidad y posibilidades de uso conjunto con los productos de la familia Microsoft (Word, Access, Odbc, etc.) Todo indica que el conjunto NT-IIS-Explorer ser utilizado de forma creciente para la publicacin de datos en Intranet / Internet. Los servicios bsicos que nos proporcionan IIS4 son WWW, FTP, Correo y NEWS. La instalacin de IIS es sobre NT Server 4.0, aunque se puede instalar sobre Workstation o Windows 95-98 la versin PWS 4 con la consiguiente perdida de prestaciones. NT Workstation puede servir muy adecuadamente como banco de pruebas y aprendizaje.

Pgina 52

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Una de las principales ventajas de IIS4 es el soporte nativo de pginas ASP (tambin s Soportan en IIS3 mediante la actualizacin pertinente. Para publicar en Intranet necesitamos: Tarjeta adaptadora de red Un servidor DNS o WINS si deseamos usar nombres en vez de direcciones IP numricas.

Para publicar en Internet necesitamos: Una tarjeta de comunicaciones Una conexin a Internet Una direccin IP registrada en un DNS Todo esto nos lo proporciona los Proveedores de Servicios Internet (ISP), junto con la direccin IP de gateway de su servidor, a travs del cual se realizarn los encaminamientos de la informacin. 4.2. Instalacin del protocolo TCP/IP Se configura a travs de la ventana Red en el Panel de Control de Windows, en esta ventana configuramos los servicios, protocolos, adaptadores y enlaces. En la solapa Protocolos seleccionamos TCP/IP, si no aparece, lo aadiremos con el botn Agregar. Una vez escogido pulsamos Propiedades para configurarlo. Solapa Direccin IP: Configuramos por cada tarjeta: Adaptador (Tipo de tarjeta) Direccin IP Mascara de subred
Pgina 53

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Gateway Solapa Direccin DNS: Nombre de Host + Dominio (identificacin de la maquina que estamos configurando.) Orden de bsqueda del servicio Dns Orden de bsqueda de sufijo de dominio (opcional) Todos estos parmetros nos los proporciona nuestro proveedor ISP.

4.3. Mecanismos de seguridad La seguridad de un sitio Web es especialmente importante, debido a la necesidad de Garantizar su utilizacin por usuarios remotos. IIS 4.0 utiliza la seguridad de Windows NT y en algunos casos la amplia. Se recomienda el uso del sistema de archivos NTFS de NT por su mayor seguridad. Windows NT basa su seguridad en el sistema de usuarios y contraseas, el uso adecuado de estas contribuye a mantener el equipo seguro. La mayor parte de las peticiones de paginas Web son realizadas por clientes annimos, en este caso, el servidor web se encarga de suplantar al usuario real mediante el uso de la cuenta del usuario annimo. 4.3.1. Mecanismo de seguridad en una peticin: 1. Comprobacin de la direccin IP del cliente por IIS. 2. Comprobacin de usuario y contrasea.
Pgina 54

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

3. Comprobacin de los permisos de acceso a archivos establecidos en el sistema NTFS. Si cualquiera de estas comprobaciones es errnea, la peticin no tendr xito. 4.3.2. Administracin de la cuenta de usuario annimo: Cuando se instala IIS se crea automticamente en NT el usuario annimo con el nombre IUSR_Nombre del equipo y con la misma contrasea aleatoria que en IIS y el derecho de Inicio de Sesin en Local Conviene revisar los derechos de los grupos que tienen los grupos Todos e Invitados a los que pertenece el usuario annimo. Para que el usuario annimo funcione correctamente debemos activar Permitir Annimos en las propiedades del servicio Web. 4.3.3. Autenticacin Si se desea, se puede restringir la utilizacin de los servicios Web de tal forma que nicamente los clientes que proporcionan un nombre de usuario y una contrasea vlidos puedan acceder a las paginas solicitadas. En IIS existen 2 formas de autenticacin: Autenticacin Bsica: El usuario y la clave se transmiten sin cifrar Autentificacin Desafo / Respuesta de Windows NT: El usuario y la clave se transmiten cifrados; el usuario debe de estar dado de alta en el dominio de la maquina que ejecuta IIS y tener derechos de Acceso al equipo desde la red. Es muy adecuado en redes Intranet; precisa un cliente Internet Explorer en versin 2 como mnimo.

Pgina 55

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Generalmente se permiten simultneamente Annimos y mecanismos de autenticacin, en este caso en primer lugar se usa el usuario Annimo y si se produce un error por falta de permisos de acceso a un recurso, el cliente recibe una ventana de dialogo solicitndole las credenciales. 4.3.4. Establecimiento de permisos en los directorios y ficheros de un sitio Web (aspectos Bsicos) De forma genrica un sitio Web reside en Un directorio particular Los subdirectorios que parten del particular Los directorios virtuales Cada uno de los elementos anteriores, en caso de existir, deber poseer los suficientes permisos para que el sitio Web funcione correctamente, pero con las restricciones adecuadas para que el equipo este seguro. Una buena metodologa consiste en agrupar los ficheros segn su naturaleza y de forma jerrquica; de manera que tengamos separadas distintas aplicaciones en distintos directorios, con sus documentos en subdirectorios.

La asignacin estructura:

general

de

permisos

sigue

la

siguiente

Programas CGI, ISAPI, etc. Permiso de Ejecucin Pginas ASP Permisos de Lectura y Ejecucin Documentos estticos HTML, Imgenes, etc.

Pgina 56

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Permiso de Lectura Bases de datos, ficheros auxiliares, etc. Permisos de Lectura y Escritura. Nota: Se debe tener en cuenta que desde IIS se pueden establecer permisos de Lectura y Ejecucin, y desde NT cualquier permiso implementado en NTFS. En caso de discrepancia se toma la opcin ms restrictiva.

Pgina 57

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5. Contenido de una pgina ASP


Adems del cdigo HTML habitual para las pginas Web, el autor de las pginas ASP puede escoger entre dos lenguajes de script para codificar los contenidos dinmicos. Estos lenguajes son VBScript (Basic Scriptig Edition) y Jscript (Microsoft Jscript), el primero de ellos es el ms utilizado y tiene su origen en el conocido lenguaje Visual Basic. Por el contrario JScript se parece a JavaScript. Nos basaremos en VBScript.
<%@ LANGUAGE="VBSCRIPT" %> <%@ LANGUAGE="JSCRIPT" %>

5.1. Conceptos Iniciales

5.1.1. Declaracin del lenguaje Para comandos propiedad Aplicacin establecer el lenguaje principal de secuencia de en todas las pginas de una aplicacin, establezca la Lenguaje ASP predeterminado en la ficha Opciones de la en el Administrador de Servicios Internet.

Como ocurre en otros lenguajes de programacin, en ASP existe una sentencia de declaracin opcional del lenguaje a utilizar.
<%@ LANGUAGE="Lenguaje_secuencia_comandos " %>

Esta declaracin se pone al principio del archivo, antes de cualquier otra expresin. El valor de la pgina invalida el valor global de todas las pginas de la aplicacin. 5.1.2. Bloques de cdigo y Comentarios

Pgina 58

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Existen dos formas de incluir cdigo ASP en una pgina web: 1. Escribindolo entre las etiquetas <SCRIPT> y </SCRIPT>. En el atributo LANGUAGE podemos indicar en que lenguaje se est programando. Para distinguir el cdigo de script que se ejecuta en el servidor del que se ejecuta en el cliente, se emplea el atributo RUNAT=Server:
<SCRIPT LANGUAGE=VBScript RUNAT=Server> cdigo </SCRIPT>

2. Escribindolo entre los delimitadores <% y %>. Si se usa este atajo, por defecto se usar el lenguaje especificado por el usuario en el Registro de Opciones de ASP. Si se quiere utilizar otro lenguaje, se debe indicar al inicio de la pgina con la instruccin: (Ver 2.1.1) Para identificar las marcas de cdigo ASP se utilizan los tags < % (como marca de inicio del cdigo) y %> como marca final del cdigo.
<%@ Language=Lenguaje %>

En pginas ASP, para introducir bloques de sentencias hay que escribir los smbolos reservados: <% {sentencias} %> donde sentencias pueden ser una o varias expresiones del lenguaje, como se muestra en el siguiente ejemplo: ...
<% Request("param") Response.Write(Now) while not cond do
Pgina 59

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

rem do nothing loop %>

En este punto queremos llamar la atencin del lector sobre el hecho de que las sentencias en VBScript no se separan por punto y coma (;). Los comentarios de cdigo VBScript se especifican mediante la palabra reservada rem o con el carcter comilla simple (') y tienen un mbito de una lnea. Por ejemplo:

Pgina 60

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% rem Esto es un comentario ' que ocupa varias rem lneas 'Esta lnea no ser procesada por tratarse de un comentario %>

No puede incluir comentarios en expresiones de resultados. Por ejemplo, la primera lnea que sigue funciona, pero la segunda no, porque empieza con <%=.
<% i=i+l 'incrementa i. Esta instruccin funciona. %> <%= i 'imprime el valor i. Esta instruccin no funciona. %>

5.1.3. Tratamiento de las Variables Todas las variables de una pginas ASP son de tipo Variant por lo que no debe especificarse entre Integer, string u otro tipo de objeto. Su declaracin es opcional aunque su prctica es una buena costumbre ya que evita errores y facilita la lectura del cdigo. En la declaracin se utiliza la palabra reservada "Dim" pudindose anidar varias declaraciones mediante el separador ",". Para forzar a que se declaren todas las variables de una pgina debe introducirse el cdigo "Option Explicit". Ejemplo de creacin y asignacin de variables:
<%@ LANGUAGE="VBSCRIPT" %> <% Option explicit ' declaracin de 3 variables
Pgina 61

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Dim nombre, fecha_nacimiento, edad 'asignacin de valores nombre = "Alex Morales" fecha_nacimiento = "12/03/69" edad = 31 %>

5.2. Comportamiento del procesador ASP Escriba la siguiente pgina ASP en cualquier editor de texto. Recuerde que debe grabarla con extensin '. asp' y tener un servidor IIS o Personal Web Server (por ejemplo.) Introduzca la direccin de la pgina en el campo 'direccin' de su navegador. Tenga en cuenta que no debe introducir la direccin local del modo (c:\mis documentos\mipagina.asp) sino que es necesario introducir el prejifo 'http' para que el servidor pre-procese la pgina antes de enviarla al navegador, por ejemplo: http://nombrePc/mipagina.asp
<%@ LANGUAGE="VBSCRIPT" %> <HTML> <BODY> <% Dim nombre nombre = "Alex Morales" %> <h1>Mi nombre es: <b>< %=nombre%></b></h1> %> </BODY> </HTML>

Pgina 62

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Recuerda que el texto situado entre los smbolos <% y %> es procesado por el parser ASP.DLL servidor enviando al cliente solo el cdigo resultante. De este modo, cuando desde el navegador se solicite la opcin "Ver cdigo fuente", se visualizar el siguiente cdigo:
Cdigo fuente visualizable en el navegador del cliente <HTML> <BODY> <h1>Mi nombre es: <b>Alex Morales</b></h1> </BODY> </HTML>

5.3. Forma de una pgina ASP Vamos a ver a continuacin, que aspecto tiene un archivo de texto que contiene cdigo ASP y que genera como salida, un documento HTML, es decir, una pgina Web.
<%@ LANGUAGE="VBScript" %> <% rem Declaracin de variables y funciones a realizar antes de visualizar el documento rem como por ejemplo, inicializar drivers de bases de datos, o redireccionar a rem otros documentos %> <HTML> <HEAD> <TITLE>T&iacute;tulo...</TITLE> </HEAD> <BODY> <% rem Este texto se ve en el documento cuando lo abrimos Response.Write("Esto es texto simple<BR>") Response.Write("<B>En el que tambi&eacute;n puedo introducir etiquetas HTML</B><BR>") %>
Pgina 63

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<I>Adem&acute;s es posible mezclar bloques ASP con etiquetas de HTML</I><BR> <% Response.Write("Aunque este es todav&iacute;a un ejemplo muy sencillo<BR>") Response.Write("y con ninguna interactividad...") %> </BODY> </HTML>

Que se vera de la siguiente manera:


Esto es texto simple En el que tambin puedo introducir etiquetas HTML Adems es posible mezclar bloques ASP con etiquetas de HTML Aunque este es todava un ejemplo muy sencillo y con ninguna interactividad...

Pgina 64

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4. Ejemplos Bsicos de ASP 5.4.1. Ejemplos 1: ASP soporta HTML Este ejemplo visualiza un texto en el explorador del cliente. Si cambiamos la extensin del archivo de .asp a .htm, la funcionalidad se mantiene. Ejemplo .asp:
EjSimpl1.asp <html> <head> <title>Primer ejemplo simple</title> </head> <body> Las paginas ASP soportan codigo HTML puro </body> </html>

Pgina 65

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ejemplo .htm:
EjSimpl1.htm <html> <head> <title>Primer ejemplo simple</title> </head> <body> Las paginas ASP soportan codigo HTML puro </body> </html>

Pgina 66

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.2. Ejemplos 2: Instruccin ejecutable en JScript Este ejemplo visualiza un texto en el explorador del cliente. Si cambiamos la extensin del archivo de .asp a .htm, la funcionalidad se mantiene.
EjSimpl2.asp <html> <head> <title>Ejemplo simple 2</title> </head> <%@ LANGUAGE=JScript %> <body> Texto HTML original <BR> <BR> <% for (i=1; i<=3; i++) %> Texto generado en el ejemplo 2 <BR> </body> </html>

Pgina 67

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.3. Ejemplos 3: Suma de los 100 primeros nmeros Cuando se coloca el signo = despus del delimitador inicial < %, se escribe en la pgina de respuesta el valor de la expresin especificada entre los delimitadores.
EjSimpl3..asp <html> <head> <title>Ejemplo simple 3</title> </head> <%@ LANGUAGE=JScript %> <body> <% Acumulador=0 for (Indice=1; Indice<=100; Indice++) { Acumulador=Acumulador+Indice } %> La suma de los 100 primeros enteros es: <%=Acumulador%> </body> </html> Resultado generado por ASP <html> <head> <title>Ejemplo simple 3</title> </head> <body> La suma de los 100 primeros enteros es: 5050 </body> </html>

Pgina 68

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 69

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.4. Ejemplos 4: Hola a todos en un bucle En este ejemplo se puede ver la combinacin de las pginas activas con las sentencias HTML. Se aprovecha la posibilidad de escribir contenidos de variables y se acta sobre el indicador de tamao de los textos que representan los exploradores en los equipos de los usuarios.
EjSimpl4..asp <HTML> <HEAD> <TITLE> Ejemplo simple 3</TITLE> </HEAD> <%@ LANGUAGE=JScript %> <BODY> <% for (i=3; i<=7; i++) { %> <FONT SIZE=<%=i%>>Hola a todos </FONT> <BR> <% } %> </BODY> </HTML> Resultado generado por ASP <HTML> <HEAD> <TITLE> Ejemplo simple 4</TITLE> </HEAD> <BODY> <FONT SIZE=3>Hola a todos </FONT> <BR> <FONT SIZE=4>Hola a todos </FONT> <BR> <FONT SIZE=5>Hola a todos </FONT> <BR> <FONT SIZE=6>Hola a todos </FONT> <BR> <FONT SIZE=7>Hola a todos </FONT> <BR>

Pgina 70

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</BODY> </HTML>

5.4.5. Ejemplos 5: Fecha y hora del servidor En los mtodos y propiedades del objeto Date hay que tener en cuenta que el equipo servidor no tiene por qu encontrarse en la misma zona geogrfica que los equipos de los clientes.
EjSimpl5..asp <HTML> <HEAD><TITLE>Ejemplo simple 5</TITLE></HEAD> <%@ LANGUAGE=JScript %> <BODY> <% Fecha = new Date () Dia = Fecha.getDate() + "/" + Fecha.getMonth() + "/" + Fecha.getYear() Hora = Fecha.getHours() + "." + Fecha.getMinutes() + "." Fecha.getSeconds() %> <%="Hola, hoy es da " + Dia + ", hora " + Hora %>

Pgina 71

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</BODY> </HTML> Resultado generado por ASP <HTML> <HEAD><TITLE>Ejemplo simple 5</TITLE></HEAD> <BODY> Hola, hoy es da 25/4/2001, hora 19.55.30 </BODY> </HTML>

Pgina 72

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.6. Ejemplos 6: Script sin texto HTML El ejemplo est realizado de dos formas diferentes donde el resultado HTML es el mismo en ambos. Una de las pginas no tiene texto HTML y la otra si.
Primera Forma: EjSimpl6..asp <HTML> <HEAD><TITLE>Ejemplo simple 6</TITLE></HEAD> <%@ LANGUAGE=JScript %> <BODY> <% Fecha = new Date () mes= Fecha.getMonth () if ((mes == 6) || (mes == 7)) { %> Aqu en Madrid, donde est el equipo servidor <BR> hace mucho calor en verano <% } else {%> Qu importa el calor cuando tenemos vacaciones! <% } %> </BODY> </HTML> Segunda Forma: EjSimpl6bis..asp <HTML> <HEAD><TITLE>Ejemplo simple 6</TITLE></HEAD> <%@ LANGUAGE=JScript %> <BODY> <% Fecha = new Date () mes= Fecha.getMonth() if ((mes == 6) || (mes == 7)) { Texto="Aqu en Madrid, donde est el equipo servidor hace mucho calor en verano" } else { Texto="Qu importa el calor cuando tenemos vacaciones!" } %> <% = Texto %>
Pgina 73

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</BODY> </HTML> Resultado generado por ASP <HTML> <HEAD><TITLE>Ejemplo simple 6</TITLE></HEAD> <BODY> Qu importa el calor cuando tenemos vacaciones! </BODY> </HTML>

Pgina 74

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

5.4.7. Ejemplos 7: Tabla de multiplicar El objetivo de este ejemplo es mostrar la sencillez y facilidad que la programacin de pginas Web puede ofrecer respecto a la utilizacin de pginas estticas. Existe una variedad de tareas repetitivas que se simplifican de forma natural con tcnicas de programacin.
EjSimpl7..asp <html> <head> <title>Ejemplo simple 7</title> </head> <%@ LANGUAGE=JScript %> <body> Tabla de multiplicar sin cabeceras<BR> <BR> <TABLE BORDER="1" WIDTH="70"> <% for (i=1; i<=10; i++) {%> <TR> <% for (j=1; j<=10; j++) { %> <TD> <% = j*i %> </TD> <% } %> </TR> <% } %> </TABLE> </body>
Pgina 75

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</html> Resultado generado por ASP <html> <head> <title>Ejemplo simple 7</title> </head> <body> Tabla de multiplicar sin cabeceras<BR> <BR> <TABLE BORDER="1" WIDTH="70"> <TR> <TD> 1 </TD> <TD> </TD> </TR> <TR> <TD> 2 </TD> <TD> </TD> </TR> etc. </TABLE> </body> </html>

Pgina 76

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

6. Los objetos y las funciones en las pginas ASP


6.1. Comportamiento de los Objetos Los objetos son programas compilados e instalados en el servidor y que han sido programados para realizar un conjunto de operaciones fcilmente accesibles por otros programas y que reciben el nombre de Mtodos. Debido a que el resultado de procesar una pgina ASP es una pgina HTML, el objeto Response es probablemente el ms utilizado en las pginas ASP ya que permite la comunicacin entre el servidor y el cliente. Veamos ahora el mtodo Write, mediante el cual enviaremos informacin al navegador. Entre esta informacin podremos incluir el valor de las variables y tags html que condicionan el aspecto de la pgina.
Utilizacin del objeto Response <%@ LANGUAGE="VBSCRIPT" %> <HTML> <BODY> <% Dim nombre Nombre = "Alex Morales" ' Imprime el nombre de la variable ' Concatenar strings utilizando VBSCRIPT Response.Write("<h1>Mi nombre es: <b>" & nombre & "</b></h1>") ' Imprime la cadena de texto entre comillas. ' El mismo resultado que Response.Write utilizando

Pgina 77

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

el signo igual '(="Mi primera pgina ASP") %> </BODY> </HTML>

6.2. Organizacin del cdigo en Funciones Para facilitar la lectura del cdigo en las pginas ASP, obtener rehusabilidad y en definitiva estructurar la aplicacin, ASP permite crear funciones y subrutinas (las primeras se distinguen de las segundas porque retornan un valor). Si conoces Visual Basic observars que el sistema es idntico en las pginas ASP.
Ejemplo de subrutina <%@ LANGUAGE="VBSCRIPT" %> <% ' Declaracin de la subrutina Sumar sub Sumar(valorA, valorB, res) res = valorA + valorB end sub %> <HTML> <BODY> <% Dim result 'Llamada a la subrutina Sumar Call Sumar 30, 40, c Response.write "El resultado de: 30 + 40 es " & c %>

Pgina 78

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</BODY> </HTML>

Pgina 79

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ejemplo de Funcin <%@ LANGUAGE="VBSCRIPT" %> <% ' Declaracin de la Funcin Sumar function Sumar(valorA, valorB) Sumar = valorA + valorB end function %> <HTML> <BODY> <% Dim result 'Llamada a la Funcin Sumar Response.write "El resultado de: 30 + 40 es " & Sumar (30,40) %> </BODY> </HTML>

Pgina 80

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7. Modelo de Objetos
ASP incluye seis objetos nativos, que podemos usar en nuestros programas. Al contrario de otros modelos de objetos (como DOM, por ejemplo), los objetos ASP no forman una jerarqua. nicamente se relacionan entre s de forma lgica, no a travs de una relacin padre-hijo. El diagrama de la Figura 1 muestra las relaciones.

Pgina 81

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Objetos integrados de ASP Objeto Application El objeto Application se utiliza para compartir informacin entre todos los usuarios de una aplicacin. Objeto Request El objeto Request se utiliza para tener acceso a la informacin que se pasa en las peticiones HTTP. Entre dicha informacin se incluyen los parmetros que se pasan desde los formularios HTML mediante el mtodo POST o el mtodo GET, cookies y certificados de cliente. Objeto Response El objeto Response se utiliza para controlar la informacin que se enva al usuario. Esto incluye el envo de informacin directamente al explorador, la redireccin del explorador a otra direccin URL o el establecimiento de valores de las cookies. Objeto Server El objeto Server proporciona acceso a los mtodos y las propiedades del servidor. El mtodo utilizado ms frecuentemente es el que crea una instancia de un componente ActiveX (Server.CreateObject). Objeto Session El objeto Session permite almacenar la informacin necesaria para una determinada sesin de usuario. Las variables almacenadas en el objeto Session no se descartan cuando el usuario pasa de una pgina a otra dentro de la aplicacin, si no que dichas variables persisten durante todo el tiempo que el usuario tiene acceso a las pginas de la aplicacin. Tambin puede utilizar los mtodos de Session para terminar explcitamente una sesin y establecer el periodo de tiempo de espera de inactividad de las sesiones.

Pgina 82

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7.1. Request Este objeto nos facilita toda la informacin sobre la peticin HTTP que un usuario realiza a nuestro servidor (informa sobre todo lo que llega al servidor desde el cliente). Dependiendo de la forma en que enviemos los datos al servidor tendremos que utilizar una u otra de las diversas colecciones del objeto Request. Puede incluir parmetros obtenidos a partir de un formulario HTML mediante los mtodos POST o GET, cookies y certificados que posea el cliente, y las variables del servidor. La sentencia Request tiene como misin obtener los valores de los parmetros que pueden pasrseles a las pginas ASP. Donde podemos apreciar que con los datos introducidos por el cliente (en un formulario, o por otros medios), llamamos a una pgina de tratamiento de esos datos. Tambin es posible pasar parmetros a otra pgina a partir de campos de un formulario. En este caso, los nombres de los parmetros vienen dados por los nombres que hay que asignar a dichos campos, y la pgina que los trata o recoge se especifica con el atributo ACTION de la etiqueta FORM, por ejemplo. La siguiente tabla muestra las colecciones, propiedades, y mtodos a que podemos acceder con este objeto. Request Colecciones Propiedad Mtodos es

Pgina 83

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

QueryString TotalBytes Form ServerVariables Cookies ClientCertificate

BinaryRead

7.1.1. Form Supongamos que enviamos la informacin desde el siguiente formulario:


<form method="POST" action="recibir.asp" > <p>Nombre: <input type="text" name="Nombre" size="20"></p> <p>Nacionalidad: <input type="text" name="Nacionalidad" size="20"></p> <p><input type="submit" value="Enviar" name="Enviar"></p> </form>

En nuestra pgina "recibir.asp" podriamos usar la siguiente secuencia:


Hola Sr/a <%=request.form("nombre")%> <br> As que usted es de nacionalidad %=request.form("nacionalidad")%> <

Con lo que el resultado seria:


Hola Sr/a Julin As que usted es de nacionalidad francesa

7.1.2. QueryString

Pgina 84

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Supongamos que enviamos la informacin en forma de cadena de consulta (Notar que una cadena de consulta HTTP esta especificada por las parejas de valores que siguen al signo "?"):
{nombre_pagina}.asp?{nom_var1}={valor1} [&{nom_var2}={valor2}...]

Lo que est encerrado entre llaves puede ser prcticamente, cualquier cadena vlida de caracteres y lo que est escrito en negrita debe aparecer tal como est. Ejemplo:
<a href="recibir.asp? nombre=Julian&nacionalidad=francesa">

En nuestra pgina "recibir.asp" podriamos usar la siguiente secuencia:


Hola Sr/a <%=request.querystring("nombre")%> <br> As que usted es de nacionalidad < %=request.querystring("nacionalidad")%>

Con lo que el resultado sera:


Hola Sr/a Julin As que usted es de nacionalidad francesa

7.2. Response Como su nombre indica, la sentencia Response sirve para enviar respuestas (informacin de salida) al documento HTML que se visualizar en el navegador, para redireccionar a otros recursos, etc. El Objeto response se usa para enviar resultados al navegador cliente o establecer valores de Cookies.
Pgina 85

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Este objeto maneja toda la informacin que se enva desde el servidor al cliente. Incluye el envo de informacin directamente al navegador del cliente, redireccin del navegador hacia otra URL o fijar el valor de las cookies.
Sintaxis general: Response.meto do [valor]

La siguiente tabla muestra las colecciones, propiedades, y mtodos a que podemos acceder con este objeto. Response Colecciones Cookies PropiedadesMtodos Buffer AddHeader CacheControl AppendToL Charset og ContentType BinaryWrite Expires Clear ExpiresAbsolu End te Flush IsClientConne Redirect cted Write PICS Status

7.2.1. Write El mtodo Write escribe una cadena de resultado en el navegador cliente (Nota: cuando se usa la sintaxis <%=variable%> estamos usando implcitamente el mtodo Response.Write). Como sabemos, para escribir texto en el documento que se pretende visualizar hay que escribir:
<%
Pgina 86

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Response.Write({cadena}) %>

Ejemplo:
<%response.write %> "<center>Hola mundo</center>"

Obtenemos
Hola mundo

Una cadena es cualquier combinacin de caracteres ASCII, quitando la comilla doble. Si queremos que aparezca este smbolo debemos introducirla dos veces (""). Veamos algunos ejemplos:
<%@ LANGUAGE="VBScript" %> <% Response.Write("<HTML>") Response.Write("<HEAD>") Response.Write("<TITLE></TITLE>") Response.Write("</HEAD>") Response.Write("<BODY>") Response.Write("Esta p&aacute;gina genera etiquetas de un documento<BR>") Response.Write("HTML normal y corriente...") Response.Write("</BODY>") Response.Write("<HTML>") %>

todas

las

Pgina 87

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <% Response.Write("Esta p&aacute;gina genera etiquetas de un documento<BR>") Response.Write("HTML normal y corriente...") %> </BODY> <HTML>

todas

las

Los dos ejemplos anteriores son equivalentes. Si adems queremos escribir el valor de alguna variable:
<%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <% hoy = Date Response.Write("Hoy es:" & hoy & ") %> </BODY> <HTML>

7.2.2. Redirect El mtodo Redirect hace que el explorador se conecte con una direccin URL diferente. Nota: debemos usar este mtodo antes de enviar cualquier resultado al navegador cliente, en caso contrario produce un error. Ejemplo:

Pgina 88

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<%response.redirect "www.renfe.es"%>

El navegador se dirigir a la URL especificada En ocasiones puede ser til tener una pgina que tras un determinado tratamiento de algn dato obtenido del cliente, llame a otra pgina, o simplemente como mtodo de actualizacin de enlaces antiguos. En cualquiera de estos casos se utiliza la sentencia Response.Redirect:

<%@ LANGUAGE="VBScript" %> <% rem Este enlace ha quedado obsoleto, redireccionar a... Response.Redirect("http://www.w3.org/Style/") rem Todo lo que hay por debajo de este punto: etiquetas HTML, cdigo ASP rem no llega a ser interpretado por el procesador de ASP jams %>

La utilidad del cdigo queda patente si tenemos en cuenta que con la dinamicidad de la red, frecuentemente se dan modificaciones en las localizaciones de los recursos. Veamos ahora ejemplo de redireccionamiento para tratamiento de datos, y de paso anticipamos algo de lo que veremos en el siguiente punto:
<%@ LANGUAGE="VBScript" %> <% opcion = Request("param_opcion") Select Case opcion Case 1: Response.Redirect("pag1.html") Case 2: Response.Redirect("pag2.html") Case 3: Response.Redirect("pag3.html") End Select %>

7.3. Server

Pgina 89

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Este objeto proporciona propiedades y mtodos que estn relacionados con el servidor donde se ejecuta nuestra aplicacin. Normalmente se usa para crear una instancia de un componente ActiveX o fijar el tiempo de validez de un guin. La siguiente tabla muestra las propiedades, y mtodos a que podemos acceder con este objeto. Server Colecciones PropiedadesMtodos ScriptTimeoutCreateObje ct HTMLEncod e MapPath URLEncode

7.3.1. Propiedad ScriptTimeout Especifica la cantidad mxima de tiempo que puede tardar la ejecucin de una secuencia de comandos (Tiempo mximo que puede tardar en ejecutarse una pgina dada).
Sintaxis Server.ScriptTimeout= n de segundos

Ejemplo:
<% Server.ScriptTimeout=120 %>

La pgina puede ejecutarse durante 120 segundos antes de que el servidor la termine.

Pgina 90

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7.3.2. Mtodo CreateObject: Crea una instancia de un componente ActiveX en el servidor.


Sintaxis Server.CreateObject (IdProg)

IdProg es el identificativo del tipo de componente que queremos crear, nos viene suministrado por el fabricante del componente. Ejemplo:
<% set Mitabla = CreateObject("ADODB.Recordset") %>

Instancia un objeto de tipo recordset y lo asigna a la variable "Mitabla". 7.4. Application Este objeto se emplea para compartir informacin entre todos los usuarios de una aplicacin (existe un nico objeto Application que comparten todos los usuarios. Una aplicacin tiene un periodo de vida, como cualquier otro programa. Cuando se inicia se ejecuta el evento OnStart y cuando termina se produce el evento OnEnd. La siguiente muestra las colecciones, propiedades, y mtodos a que podemos acceder con este objeto. Application Colecciones Contents StaticObjects PropiedadesEventos Lock OnStart Unlock OnEnd

Pgina 91

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Como varios usuarios pueden compartir un objeto Application, existen los mtodos Lock y Unlock para asegurar la integridad del mismo (varios usuarios no puedan modificar una misma propiedad al mismo tiempo. 7.4.1. Lock El mtodo Lock asegura que slo un cliente puede modificar o tener acceso a las variables de Application al mismo tiempo.
Sintaxis: Application.Lo ck

7.4.2. Unlock El mtodo Unlock desbloquea el objeto Application para que pueda ser modificado por otro cliente despus de haberse bloqueado mediante el mtodo Lock. Si no se llama a este mtodo de forma explcita, el servidor Web desbloquea el objeto Application cuando el archivo.asp termina o transcurre su tiempo de espera.
Sintaxis: Application.Un lock

7.4.3. Ejemplos
<% Application.Lock Application("visitas") = Application("visitas") +1 Application.Unlock %> Eres el visitante numero <%= Application("visitas") %>

En el ejemplo anterior el mtodo Lock impide que ms de un cliente tenga acceso a la variable Visitas al mismo tiempo. Si la aplicacin no se hubiera bloqueado, dos clientes podran intentar

Pgina 92

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

incrementar simultneamente el valor de la variable Visitas. El mtodo Unlock libera el objeto bloqueado de forma que el prximo cliente puede incrementar la variable. En el objeto Application pueden almacenarse matrices, pero estas son almacenadas como un objeto, es decir, no podemos almacenar o recuperar un solo elemento de la matriz, si no que cargaremos o recuperaremos la variable con la matriz completa.
<% Dim parametros(2) parametros(0) = "verde" parametros(1) = 640 parametros(2) = 480 Application.Lock Application("Param") =parametros Application.UnLock %>

Con estas instrucciones almacenaramos TODA la matriz en la variable de aplicacin "Param". Para recuperar los valores de la matriz primero recuperamos esta en una variable normal:
<%Apliparam=Application("Param")%>

Ahora podremos operar con los valores de la tabla en las variables Apliparam(0),

Pgina 93

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7.5. Session El objeto Session permite almacenar la informacin necesaria par una sesin de usuario contra nuestra aplicacin ASP. Las variables que almacenemos en el objeto Session no se pierden al cambiar de pgina, si no que se mantienen hasta que el cliente sea eliminado por el servidor. Las variables de Session de un cliente solo pueden ser accedidas por ese cliente.El servidor crea automticamente el objeto Session cuando un usuario que no tenga actualmente una sesin solicita una pagina Web de la aplicacin. A cada cliente que solicita una pgina ASP se le asigna un objeto Session. La informacin almacenada en este objeto es individual para cada usuario, y se conserva el valor al pasar de una pgina a otra. Se crea un objeto Session la primera vez que un cliente solicita una pgina y se destruye, por defecto, veinte minutos despus de que se haya realizado la ltima peticin. El tiempo de vida es configurable. Cuando se inicia una sesin se produce el evento OnStart y cuando termina se produce OnEnd. La siguiente tabla muestra las colecciones, propiedades, y mtodos a que podemos acceder con este objeto. Session Coleccio Propieda Mtodos Eventos nes des Contents CodePage Abandon OnStart StaticObje LCID OnEnd cts SessionID Timeout

Pgina 94

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Nota: el servidor elimina un cliente bien cuando desde una pagina ASP se invoca el mtodo Abandon o bien cuando este cliente lleva 20 minutos sin actividad en nuestra aplicacin.

Pgina 95

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7.5.1. Creacin de una variable en Session


Sintaxis Session("Nomvaria ble")= valor

Ejemplo:
<% Session("Color")="Rojo" %>

Para recuperar ese valor:


<% ColorFavorito=Session("Color") %>

Esto nos "ColorFavorito"

almacenara

el

valor

"rojo"

en

la

variable

En el objeto Session pueden almacenarse matrices, pero estas son almacenadas como un objeto, es decir, no podemos almacenar o recuperar un solo elemento de la matriz, si no que cargaremos o recuperaremos la variable con la matriz completa. Ejemplo:
<%Dim cestacompra(2) cestacompra(0) = 1 cestacompra(1) = 8 cestacompra(2) = 22 Session("Cesta") =cestacompra %>

Con estas instrucciones almacenaramos toda la matriz en la variable de sesin "Cesta". Para recuperar los valores de la matriz primero recuperamos esta en una variable normal.
<%Micesta=Session("Cesta")%>

Pgina 96

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ahora podremos operar con los valores de la tabla en las variables Micesta(0), Micesta(1) y Micesta(2).

Pgina 97

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7.5.2. Mtodo Abandon Destruye todos los objetos y variables almacenados en el objeto Session.
Sintaxis Session.Abandon

7.6. ObjectContext Este objeto se emplea para gestionar transacciones. La siguiente tabla muestra los mtodos y eventos a que podemos acceder con este objeto. ObjectContext Coleccio Propieda Mtodos nes des SetCompl ete SetAband on Eventos OnTransactionCom mit OnTransactionAbor t

<%@ LANGUAGE="VBScript" %> <HTML> <HEAD> <TITLE><TITLE> </HEAD> <BODY> <FORM METHOD="POST" ACTION="guardar.asp"> <INPUT TYPE="TEXT" NAME="nombre"> <INPUT TYPE="TEXT" NAME="apellidos"> <INPUT TYPE="TEXT" NAME="dni"> <INPUT TYPE="SUBMIT"> </FORM>
Pgina 98

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</BODY> </HTML>

Pgina 99

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Con este cdigo el procesador de ASP se encarga de construir internamente una llamada igual a la vista en el ejemplo anterior. La manera general de especificar la llamada a una pgina con parmetros, por lo tanto, es:
{nombre_pagina}.asp?{nom_var1}={valor1} [&{nom_var2}={valor2}...]

Lo que est encerrado entre llaves puede ser prcticamente, cualquier cadena vlida de caracteres y lo que est escrito en negrita debe aparecer tal como est.

Pgina 100

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8. Ejemplos de ASP
En este mdulo, aprender algunos pasos bsicos con la creacin de sus propias pginas ASP (archivos .asp). Nota: Para poder guardar y ver su trabajo durante este mdulo, debe tener un servidor Web con Active Server Pages instalado, o bien permisos de escritura y ejecucin en un directorio remoto compartido que tenga un servidor Web con Active Server Pages instalado. 8.1. Ejemplo 1: Crear una pgina ASP simple Escribir sus propias pgina ASP es la mejor manera de aprender como crearlas. Para crear una pgina ASP utilice un editor de texto para insertar secuencias de comandos en una pgina HTML. Al guardar la pgina con la extensin .asp se le dice a ASP que procese la secuencia de comandos. Para ver los resultados de una secuencia de comandos, abra la pgina en un explorador Web. En esta leccin, crear la popular secuencia de comandos Hola a todos! copiando las secuencias de comandos HTML y ASP de este tutorial en un editor de texto. Despus podr ver la salida que produce la secuencia de comandos con su explorador, una vez que haya guardado el archivo con el editor de texto. Los siguientes comandos HTML crean una pgina sencilla con las palabras Hola a todos! en un tamao de fuente grande:
<HTML> <BODY> <FONT SIZE=7>

Pgina 101

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Hola a todos!<BR> </FONT> </BODY>

Suponga que quiere repetir este texto varias veces, incrementando el tamao del texto en cada repeticin. Podra repetir las etiquetas de fuente y el texto HTML, dando un tamao de fuente diferente en cada repeticin. Cuando el explorador abra la pgina, la lnea se mostrar varias veces. Alternativamente, puede utilizar ASP para generar este mismo contenido de una manera ms eficiente. 8.1.1. Crear y guardar una pgina 1. Abra un editor de texto (como Bloc de notas) o un procesador de texto (como Microsoft Word). Site las ventanas del editor de texto y del explorador de forma que pueda ver ambas. 2. Copie y pegue las etiquetas HTML siguientes al principio del archivo:
<HTML> <BODY>

3. Guarde el documento como Hola.asp. Asegrese de guardar el archivo en formato de texto si esta usando un procesador de texto, incluso con WordPad. Las pginas ASP deben tener la extensin .asp para su correcto funcionamiento. 4. Aada una lnea nueva a continuacin de la etiqueta copie y pegue la siguiente secuencia de comandos:
<HTML> <BODY>
<BODY>

<% For i = 3 To 7 %>

Las secuencias de comandos van encuadradas dentro de los caracteres <% y %> (tambin llamados delimitadores). El texto que
Pgina 102

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

est dentro de los delimitadores se procesa como una secuencia de comandos. Cualquier texto que siga al delimitador de cierre se muestra como texto HTML en el explorador. Esta secuencia de comandos inicia un bucle de VBScript que controla el nmero de veces que se muestra la frase Hola a todos!. La primera vez que pasa por el bucle, el contador (i) toma el valor inicial de 3. La siguiente vez que se ejecuta el bucle, el contador pasa a tener el valor de 4. El bucle se repite hasta que el contador llega al valor de 7. 5. Luego copie y pegue la siguiente lnea:
<HTML> <BODY>
<% For i = 3 To 7 %> <FONT SIZE=<% = i %>> <FONT SIZE=<% = i %>>

Cada vez que se ejecuta el bucle, el tamao de la fuente toma el valor actual del contador (i). De esta manera, la primera vez que se muestra el texto, el tamao de la fuente es 3. La segunda vez, el tamao es 4. La ltima vez es 7. Tenga en cuenta que una secuencia de comandos puede ser introducida dentro de una etiqueta HTML. 6. Luego complete el ejemplo de la siguiente manera:
<HTML> <BODY>
<% For i = 3 To 7 %> <FONT SIZE=<% = i %>>

Hola a todos!<BR> <% Next %> </BODY> </HTML>

La expresin de VBScript Next repite el bucle (hasta que el contador llega a 7).

Pgina 103

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

7. Guarde sus cambios. Asegrese de que ha guardado su archivo en formato de texto y de que la extensin del archivo es .asp. Algunos editores de texto extensin del archivo a .txt cuando el cuadro de dilogo Guardar. extensin .txt con la extensin .asp cambian automticamente la se elige la opcin Slo texto en Si esto ocurre, reemplace la antes de hacer clic en Guardar.

8. Salga de su editor de texto. Puede que el explorador no sea capaz de leer una pgina HTML si sta est abierta por un editor de texto. 9. Debera ver una pgina Web que contiene cinco veces la frase Hola a todos! cada vez en un tamao mayor. Ha completado su primera pgina ASP. Como podr ver, el proceso de creacin de una pgina ASP es sencillo. Puede utilizar cualquier editor de texto para crear el contenido de HTML y las secuencias de comandos ASP (encuadradas por los delimitadores <% y %> ) siempre y cuando les d a los archivos la extensin .asp. Para probar una pgina y ver los resultados, abra la pgina en un explorador Web (o actualice una pgina previamente abierta).

Pgina 104

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8.2. Ejemplo 2: Crear un formulario HTML Las aplicaciones de un servidor de Intranet e Internet se utilizan habitualmente para procesar un formulario proporcionado por un explorador. Anteriormente, necesitaba escribir un programa para procesar los datos proporcionados por un formulario. Para procesar un formulario con ASP, puede introducir secuencias de comandos escritos en VBScript o JScript directamente dentro de un archivo HTML. ASP lee la secuencia de comandos, los ejecuta y devuelve los resultados al explorador. En esta leccin, crear una pgina ASP que procesa los datos que el usuario proporciona por medio de un formulario HTML. Para ver como funciona el archivo .asp, rellene el formulario de abajo. Haga clic en el botn Enviar para enviar los datos al servidor Web y para que sean procesados por ASP.

Formulario de ejemplo
Introduzca la siguiente informacin y despus haga clic en Ejecutar: Nombre: Apellidos: Tratamiento:

Sr.

Sra.

Pgina 105

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8.2.1. Creacin del formulario Creacin de un formulario para pedir informacin al usuario:
<HTML> <HEAD><TITLE>Pedido</TITLE></HEAD> <BODY> <H2>Ejemplo de un formulario de pedido</H2> <P> Introduzca la siguiente informacin y luego haga clic en Enviar: <FORM METHOD="POST" ACTION="response.asp"> <P> Nombre: <INPUT NAME="fname" SIZE="48"> <P> Apellidos: <INPUT NAME="lname" SIZE="48"> <P> Tratamiento: <INPUT NAME="title" TYPE=RADIO VALUE="mr">Sr. <INPUT NAME="title" TYPE=RADIO VALUE="ms">Sra. <P><INPUT VALUE="Enviar"><INPUT VALUE="Restablecer"> </FORM> </BODY> </HTML> TYPE=SUBMIT TYPE=RESET

Como todos los formularios, ste enva los datos al servidor Web como parejas de variables y valores. Por ejemplo, el nombre que el usuario escribe en la caja de texto Nombre se asigna a una variable llamada fname. ASP proporciona objetos internos que puede utilizar para tener acceso a los nombres de las variables y a los valores proporcionados por un formulario.

Pgina 106

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8.2.2. Creacin de la pgina de respuesta de ASP 1. Utilice su editor de texto para crear y abrir el archivo Response.asp. Este archivo contiene la pgina HTML que el servidor Web devuelve al explorador del cliente. Aada la secuencia de comandos a esta pgina para procesar la informacin del formulario. 2. .Copie y pegue la siguiente secuencia de comandos debajo del comentario:
<% Title = Request.Form("title")

Su formulario transmite tres elementos de informacin a ASP:


fname lname title

ASP almacena la informacin enviada bajo la forma de un formulario HTML en la coleccin Forms del objeto Request. Para recoger la informacin del objeto Request escriba lo siguiente: Request.collection-name ("property-name"). De est manera, Request.Form ("title") devuelve valor (Sr. o Sra.) que el usuario haya introducido.
mr

ms,

segn el

3. Copie y pegue la siguiente secuencia de comandos detrs de la lnea que insert en el paso 2:
<% Title = Request.Form("title") LastName = Request.Form("lname") If Title = "mr" Then %> Sr. <%= LastName %>

Pgina 107

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% ElseIf Title = "ms" Then %> Sra. <%= LastName %>

Si algn otro usuario ha completado esta parte del tutorial, esta secuencia de comandos ya estar colocada en su lugar. Pegue la secuencia de comandos que copi sobre la secuencia existente. La sentencia de VBScript If...Then ejecuta dos acciones diferentes dependiendo del valor de Tratamiento. Si Tratamiento es mr, el usuario ser nombrado como Sr. si Tratamiento es ms, el usuario ser nombrado como Sra. puede mostrar el valor de una variable utilizando la expresin <%= variable-name %>. 4. Para mostrar el nombre y los apellidos si el usuario no ha elegido un tratamiento se modifica el ejemplo de la siguiente forma:
<% Title = Request.Form("title") LastName = Request.Form("lname") If Title = "mr" Then %> Sr. <%= LastName %> <% ElseIf Title = "ms" Then %> Sra. <%= LastName %> <% Else %> <%= Request.Form("fname") & " " & LastName %> <% End If %>

La instruccin End If finaliza la sentencia condicional.

Pgina 108

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8.3. Ejemplos 3: Formulario con dos pginas Web Este ejemplo utiliza una pgina .htm para enviar la informacin y una pgina .asp para recibir y procesar la informacin ingresada por el usuario. El formulario se sita entre las etiquetas <FORM ...> </FORM> . y

Cuando se aprieta el botn de envo definido en la lnea <INPUT TYPE = SUBMIT>, se transmiten los datos tecleados por el usuario al equipo servidor. La secuencia <FORM ACTINO=EjSimpl8.asp METED=POST> nos indica que estamos empleado el mtodo POST, y que en el equipo servidor se va a ejecutar la pgina EjSimpl8.asp. La tarea de la pgina ASP es recoger y procesar los datos. La pgina EjSimpl8.asp toma los datos y los visualiza. Como se emplea el mtodo POST, los datos se recogen haciendo uso de la coleccin Form del objeto integrado Request.
EjSimpl8.htm <HTML> <HEAD><TITLE> Ejemplo simple 8 </TITLE></HEAD> <BODY> <H3> ELECCIN DE SEMINARIOS: </H3><BR> <FORM ACTION= EjSimpl8.asp METHOD=POST> <TABLE><TR> <TD> Nombre:</TD> <TD><INPUT NAME="V_Nombre"></TD></TR> <TD> Apellido:</TD> <TD><INPUT NAME="V_Apellido"></TD></TR> <TD> Matrcula:</TD> <TD><INPUT NAME="V_Matricula"></TD></TR> <TD> e-mail:</TD> <TD><INPUT NAME="V_Correo"></TD></TR> </TABLE>

Pgina 109

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Seminarios elegidos<BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR><BR> <INPUT TYPE=SUBMIT> <INPUT TYPE=RESET> </FORM> </BODY> </HTML>

EjSimpl8.asp <HTML> <HEAD> <TITLE> Ejemplo simple 8 </TITLE> </HEAD>

Pgina 110

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<%@ LANGUAGE=JScript %> <BODY> <H1> Datos introducidos por el usuario: </H1> <BR> Nombre: <%=Request.Form("V_Nombre") %><BR> Apellido: <%=Request.Form("V_Apellido") %><BR> Matrcula: <%=Request.Form("V_Matricula") %><BR> e-mail: <%=Request.Form("V_Correo")%><BR> Seminario 1: <%=Request.Form("V_Seminario") (1)%><BR> Seminario 2: <%=Request.Form("V_Seminario") (2)%><BR> Seminario 3: <%=Request.Form("V_Seminario") (3)%><BR> Seminario 4: <%=Request.Form("V_Seminario") (4)%><BR> <BR><H2> Todo junto: </H2><BR> <%=Request.Form%><BR><BR> </BODY> </HTML>

Pgina 111

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

La instruccin <%=Request.Form(V_Nomnre) %> recupera y visualiza el dato que el usuario ha tecleado en el campo V_Nombre del formulario. Si no especificamos ninguna variable al hacer uso de la coleccin Form, recibimos un literal con pares variable=valor separados por el smbolo &. En este ejemplo se podra modificar la extensin de la pgina .htm convirtindola en .asp, sin que la funcionalidad que observa el usuario vare.

Pgina 112

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

8.4. Ejemplos 4: Formulario con una sola pgina Web


EjSimpl9.asp <HTML> <HEAD> <TITLE> Ejemplo simple 9 </TITLE> </HEAD> <%@ LANGUAGE=JScript %> <BODY> <% if (Request.Form ("Boton") != "Enviar") { %> <H3> ELECCIN DE SEMINARIOS </H3><BR> <FORM ACTION= EjSimpl9.asp METHOD=Post> <TABLE><TR> <TD> Nombre:</TD> <TD><INPUT NAME="V_Nombre"></TD></TR> <TD> Apellido:</TD> <TD><INPUT NAME="V_Apellido"></TD></TR> <TD> Matrcula:</TD> <TD><INPUT NAME="V_Matricula"></TD></TR> <TD> e-mail:</TD> <TD><INPUT NAME="V_Correo"></TD></TR> </TABLE> Seminarios elegidos:<BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR> <INPUT NAME="V_Seminario"><BR><BR> <INPUT TYPE=SUBMIT NAME=Boton VALUE=Enviar> <INPUT TYPE=RESET> </FORM> </P> <% } else { %>

Pgina 113

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<H1> Datos introducidos por el usuario: </H1> <BR> Nombre: <%=Request.Form("V_Nombre") %><BR> Apellido: <%=Request.Form("V_Apellido") %><BR> Matrcula: <%=Request.Form("V_Matricula") %><BR> e-mail: <%=Request.Form("V_Correo")%><BR> Seminario 1: <%=Request.Form("V_Seminario") (1)%><BR> Seminario 2: <%=Request.Form("V_Seminario") (2)%><BR> Seminario 3: <%=Request.Form("V_Seminario") (3)%><BR> Seminario 4: <%=Request.Form("V_Seminario") (4)%><BR> <BR><H2> Todo junto: </H2><BR> <%=Request.Form%><BR><BR> <% } %> </BODY> </HTML>

Pgina 114

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 115

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 116

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

9. El archivo Global.asa
El archivo Global.asa es un fichero de texto situado en el directorio raz de nuestro servidor Web, es decir, en el directorio de comienzo de nuestras pginas. Es un archivo de comandos que nos permite la automatizacin de los cuatro eventos bsicos de nuestro servidor. 9.1. Estructura La estructura es siempre la misma:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart ........ End Sub Sub Application_OnEnd ........ End Sub Sub Session_OnStart ........ End Sub Sub Session_OnEnd ........ End Sub </SCRIPT>

9.2. Eventos Application_OnStart El evento Application_OnStart se ejecuta antes de que se cree la primera nueva sesin; es decir justo cuando el primer cliente pide una pagina de nuestro servidor. Application_OnEnd
Pgina 117

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

El evento Application_OnEnd se ejecuta cuando la aplicacin termina. Session_OnStart El evento Session_OnStart se ejecuta cuando el servidor crea una nueva sesin; esta secuencia de comandos es ejecutada antes de enviar la pgina solicitada al cliente. Session_OnEnd El evento Session_OnEnd se ejecuta cuando se abandona o se supera el tiempo de espera de una sesin. 9.3. Ejemplo
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart dim mitabla() redim mitabla(9) application("tabla")=mitabla End Sub Sub Application_OnEnd End Sub Sub Session_OnStart paginaInicio="/ appl/index.html" response.redirect paginaInicio End Sub Sub Session_OnEnd End Sub </SCRIPT>

Pgina 118

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 119

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

10. Algunas funciones bsicas


10.1. Fecha y hora 10.1.1. Fecha (Date, Day, WeekDay, WeekDayName, Month, MonthName, Year) Funcin
Date Day(fecha) Weekday(date, [firstdayofweek]) WeekDayName(we ekday, abbreviate,firstday ofweek) Month MonthName Year

Descripcin
Devuelve la fecha del sistema, generalmente en formato anglosajn. Devuelve el da del mes.

10.1.2. Hora (Now, Time, Hour, Minute, Second) Los datos devueltos por estas funciones se extraen de la fecha y hora del sistema (servidor) donde se ejecutan las mismas. Funcin
Now Time Hour Minute Second

Pgina 120

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

10.2. Tratamiento de cadenas Funciones InStr([start, ]string1, string2[, compare]) InstrRev(string1, string2[, start[, compare]]) Mid(string, start[, length]) Trim, LTrim, Rtrim Replace(expression, find, replacewith[, compare]]]) Right(string, length) Space(number)

start[,

count[,

(Devuelve un string en cual un substring ha sido reemplazado porro substring) (Devuelve un nmero especfico de caracteres a partir del lado derecho de un string) (Devuelve un string con un nmero especfico de espacios.

StrComp(string1, string2[, compare]) StrReverse(string1) Ucase(string) LCase(string) 10.3. Numricas Funciones Abs - Valor absoluto - Abs(numero) Atn - Arcotangente - Atn(numero)->radianes Cos(numero)->radianes coseno Exp(numero) - e elevado a numero Fix(numero)->numero - devuelve la parte entera de un real Hex(numero)->string - Valor hexadecimal del numero Log(numero)->numero logaritmo result=number1 Mod number2 Devuelve el resto de la divisin Oct(numero)->string - Valor octal del numero Randomize Rnd[(number)] Devuelve un nmero aleatorio

Pgina 121

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Round(expression[, numdecimalplaces]) - Returns a number rounded to a specified

11. Ejemplos
11.1. Ejemplo 1: Hora y Fecha Actual Muestra la hora y la fecha actuales. Segn la hora del da muestra un mensaje. Muestra otro mensaje de forma aleatoria. En la figura podemos observar el resultado que se obtiene al solicitar esta pgina.
<HTML> <HEAD> <TITLE>Servidor educado</TITLE> </HEAD> <BODY BGCOLOR="Wheat"> <FONT COLOR="Teal" SIZE="5"><B> El servidor educado le informa que son las <% = Time %> del da <% = Date %> </B></FONT> <P><B> <% If Hour(Now) < 8 Then %> Estas no son horas de conectarse, estoy durmiendo! <% ElseIf Hour(Now) < 15 Then %> Estoy trabajando, no moleste. <% Else %> La tarde es para descansar, ver la tele, dormir,... <% End If Response.Write("<BR><BR>") Randomize i = Int(Rnd * 4) Select Case i Case 0 Response.Write("Hace buen da, verdad?") Case 1 Response.Write("Me parece que hoy llover.")

Pgina 122

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Case 2 Response.Write("Esta tarde llueve seguro.") Case 3 Response.Write("Que sol ms esplndido.") End Select %> </B> </BODY> </HTML>

Pgina 123

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Figura 1

Pgina 124

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

11.2. Ejemplo 2: Variables del Servidor Muestra el valor de una serie de variables que posee el servidor y que proporcionan informacin interesante sobre el servidor y sobre la conexin realizada por el cliente. En la Figura 2 se muestra la pgina que obtiene al solicitarla con un navegador Netscape Communicator 4.6. En la Figura 3 tenemos la misma pgina cuando se solicita con Microsoft Internet Explorer 4.0.
<HTML> <HEAD> <TITLE>Variables del servidor</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <% Response.Write("<PRE>" & vbCrLf) Response.Write("ALL_HTTP: " & Request.ServerVariables("ALL_HTTP") & "<BR>") Response.Write("</PRE>" & vbCrLf) Response.Write("<HR>" & vbCrLf) Response.Write("HTTP_ACCEPT_LANGUAGE: " & Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "<BR>") Response.Write("HTTP_USER_AGENT: " & Request.ServerVariables("HTTP_USER_AGENT") & "<BR>") Response.Write("REMOTE_ADDR: " & Request.ServerVariables("REMOTE_ADDR") & "<BR>") Response.Write("REMOTE_HOST: " & Request.ServerVariables("REMOTE_HOST") & "<BR>") Response.Write("URL: " & Request.ServerVariables("URL") & "<BR>") Response.Write("<HR>" & vbCrLf) If InStr(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), "es") > 0 Then Response.Write("Se elige el idioma espaol")

Pgina 125

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Else Response.Write("Se elige otro idioma") End If %> </BODY> </HTML>

Pgina 126

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Las siguientes 2 figuras muestran el resultado obtenido con distintos navegadores.

Figura 2

Figura 3

Pgina 127

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

11.3. Ejemplo 3: Recuperacin de los datos de un formulario Obtiene los datos introducidos por un usuario y los muestra en una pgina. La pgina que solicita los datos es:
<HTML> <HEAD> <TITLE>Formulario de entrada</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <FORM NAME="Formulario" ACTION="3r.asp" METHOD="POST"> Nombre: <INPUT TYPE="TEXT" NAME="nombre" SIZE="20"><BR> Apellidos: <INPUT TYPE="TEXT" NAME="apellidos" SIZE="40"><BR> Sexo:<BR> H <INPUT TYPE="RADIO" NAME="sexo" VALUE="varon"> M <INPUT TYPE="RADIO" NAME="sexo" VALUE="mujer"> <BR><BR> <INPUT TYPE="SUBMIT" VALUE="Enviar"> </FORM> </BODY> </HTML>

En la etiqueta FORM, el atributo ACTION contiene el nombre de la pgina de respuesta al formulario. La pgina de respuesta que muestra los datos introducidos en el formulario es:
<HTML> <HEAD> <TITLE>Datos obtenidos del formulario</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> Su nombre es <% = Request.Form("nombre") %> <BR> Sus apellidos son <% = Request.Form("apellidos") %> <BR> Su sexo es <% = Request.Form("sexo") %> </BODY> </HTML>
Pgina 128

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 129

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

11.4. Ejemplo 4: Acceso a base de datos Accede a una base de datos realizada en Microsoft Access que contiene una tabla Personal con los campos Nombre, Apellidos, Edad y Ciudad. Consulta las personas que viven en la ciudad de Alicante y las muestra en una tabla. Se accede mediante ODBC (el nombre asignado a la conexin es curso) a la base de datos.
<HTML> <HEAD> <TITLE>Acceso a base de datos</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> Personal de la oficina de Alicante: <BR> <TABLE BORDER="3"> <TR> <TD><B>Nombre</B></TD> <TD><B>Apellidos</B></TD> <TD><B>Edad</B></TD> </TR> <% 'Abre la conexin con la base de datos a travs de una conexin ODBC Set con = Server.CreateObject("ADODB.Connection") con.Open "curso" 'Ejecuta una sentencia SQL de consulta sql = "SELECT * FROM Personal WHERE Ciudad = 'Alicante'" Set result = con.Execute(sql) 'Recorre todas las filas del resultado Do While Not result.EOF ' Muestra la fila actual Response.Write("<TR>" & vbCrLf) Response.Write("<TD>" & result("Nombre") & "</TD>" & vbCrLf) Response.Write("<TD>" & result("Apellidos") & "</TD>" & vbCrLf) Response.Write("<TD>" & result("Edad") & "</TD>" & vbCrLf) Response.Write("</TR>" & vbCrLf)

Pgina 130

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

'Pasa a la siguiente fila result.MoveNext Loop 'Libera memoria result.Close Set result = Nothing con.Close Set con = Nothing %> </TABLE> </BODY> </HTML>

11.5. Ejemplo 5: Insercin en una base de datos a partir de un formulario Se emplea la misma base de datos que la del ejemplo 4. El cdigo del formulario para la entrada de datos es (5f.html)::
<HTML> <HEAD> <TITLE>Formulario de entrada</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <FORM NAME="Formulario" ACTION="5r.asp" METHOD="POST"> <CENTER> <TABLE BORDER=0> <TR> <TD>Nombre: </TD> <TD><INPUT TYPE="TEXT" NAME="nombre" SIZE="20"></TD> </TR> <TR> <TD>Apellidos: </TD>

Pgina 131

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<TD><INPUT TYPE="TEXT" NAME="apellidos" SIZE="40"></TD> </TR> <TR> <TD>Edad: </TD> <TD><INPUT TYPE="TEXT" NAME="edad" SIZE="2" MAXLENGTH="2"></TD> </TR> <TR> <TD>Ciudad: </TD> <TD><SELECT NAME="ciudad"> <OPTION VALUE="Alcoy">Alcoy <OPTION VALUE="Alicante">Alicante <OPTION VALUE="Elche">Elche <OPTION VALUE="Orihuela">Orihuela </SELECT></TD> </TR> </TABLE> <BR><BR> <INPUT TYPE="SUBMIT" VALUE="Enviar">&nbsp;&nbsp;<INPUT TYPE="RESET" VALUE="Borrar"> </CENTER> </FORM> </BODY> </HTML>

El cdigo del ASP que realiza la insercin en la base de datos es (5f.asp):


<HTML> <HEAD> <TITLE>Insercin en la base de datos</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <CENTER> <B> <% nombre = Request.Form("nombre") apellidos = Request.Form("apellido") edad = Request.Form("edad") ciudad = Request.Form("ciudad")

Pgina 132

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

'Abre la conexin con la base de datos a travs de una conexin ODBC Set con = Server.CreateObject("ADODB.Connection") con.Open "curso" 'Ejecuta un sentencia SQL de consulta sql = "INSERT INTO Personal (Nombre, Apellidos, Edad, Ciudad) sql = sql & VALUES('" & nombre & "', '" sql = sql & apellidos & "', " & edad & ", '" & ciudad & "')" con.Execute(sql) If Err = 0 Then Response.Write "Insercin correcta." Else Response.Write "Error en Insercin." End If 'Libera memoria con.Close Set con = Nothing %> </B> </CENTER> </BODY> </HTML>

11.6. Ejemplo 6: Cdigo script de cliente y de servidor en la misma pgina Diferencia entre el cdigo que se ejecuta en el cliente y en el servidor. A continuacin aparece el cdigo fuente de una pgina ASP, el cdigo que recibe el cliente una vez ejecutada la pgina en el servidor y como se visualiza en el navegador. El cdigo que se ejecuta en el servidor aparece en negritas. Este cdigo no llega al cliente.

Pgina 133

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<HTML> <HEAD> <TITLE>Mezcla de cdigo script de cliente y de servidor</TITLE> </HEAD> <BODY BGCOLOR="beige" TEXT="darkseagreen"> <% VariableServidor = 6%> <P> Este valor se imprime por HTML: <FONT COLOR="chocolate">10</FONT> <P> Este valor se imprime por cdigo de servidor: <FONT COLOR="chocolate"><% = VariableServidor %></FONT> <SCRIPT LANGUAGE="JavaScript"> var VariableCliente; VariableCliente = <% = VariableServidor %> + 1; document.write('<P>Este valor se imprime por cdigo de cliente: <FONT COLOR="chocolate">' + VariableCliente + '</FONT>'); // OJO : las 2 lneas escritas arriba deben escribirse en una sola lnea. </SCRIPT> </BODY> </HTML>

El resultado que se ha obtenido al evaluar el cdigo de servidor aparece en negritas.


<HTML> <HEAD> <TITLE>Mezcla de cdigo script de cliente y de servidor</TITLE> </HEAD> <BODY BGCOLOR="beige" TEXT="darkseagreen"> <P> Este valor se imprime por HTML: <FONT COLOR="chocolate">10</FONT> <P> Este valor se imprime por cdigo de servidor: <FONT COLOR="chocolate">6</FONT> <SCRIPT LANGUAGE="JavaScript"> var VariableCliente; VariableCliente = 6 + 1; document.write('<P>Este valor se imprime por cdigo de cliente: <FONT COLOR="chocolate">' + VariableCliente + '</FONT>'); </SCRIPT> </BODY>
Pgina 134

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

</HTML>

Visualizacin en el navegador:

12. Cookies
Las cookies son el mecanismo que nos permite guardar informacin relativa a un usuario a lo largo de sus distintos accesos a nuestras pginas. Debido a las caractersticas del protocolo HTTP, cuando un usuario visita distintas pginas de un sitio Web se producen conexiones y desconexiones en la comunicacin. Para poder guardar informacin accesible a las distintas pginas visitadas, es necesario establecer un mecanismo de grabacin de datos. Estos datos podrn ser utilizados en los programas que se escriben para implementar las pginas de una aplicacin Web. Para grabar la informacin que se desea mantener entre los distintos accesos a una pgina Web, se encuentran las siguientes posibilidades bsicas:

Pgina 135

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Almacenar los datos en el servidor: Esta posibilidad slo sera adecuada si el nmero de clientes potenciales no es alto. Almacenar los datos en los equipos de los clientes: De esta manera se distribuye de forma natural la informacin relativa a los distintos usuarios. Un problema a considerar es la integridad de los datos, que en los equipos de los clientes no puede ser controlada. Guardar informacin relativa a un usuario a lo largo de sus distintos accesos a pginas nos permite implementar una serie de funcionalidades tales como: Personalizacin de opciones seleccionadas por el cliente: Por ejemplo, mantener en todos los accesos a pginas de una aplicacin una misma configuracin de calidad de grficos, colores de fondo, estructura de pgina, etc. Personalizacin de las pginas en funcin del cliente: A menudo, se presenta situaciones en las que no tiene sentido ofrecer un cierto tipo de informacin a un cierto tipo de usuarios, por ejemplo: por su edad, estado civil, profesin, lugar donde vive, etc. Cestas de la compra: Acumular selecciones realizadas en distintas pginas. Por ejemplo una serie de pginas Web que ofrecen productos a los usuarios. Tras navegar por varias pginas y seleccionar distintos productos, un cliente puede optar por hacer una peticin global de los mismos. ASP permite almacenar informacin entre distintos accesos a pginas a travs de la utilizacin de cookies para crear y destruir informacin que se almacena en los equipos de los clientes. Las cookies son utilizadas mediante los objetos integrados de ASP. Las cookies se transmiten en cabeceras cuando se realizan las comunicaciones con HTTP. El explorador de Microsoft se encarga de almacenarlas.

Pgina 136

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Las cookies se almacenan en los equipos de los clientes, esto hay que tenerlo en cuenta por las posibles faltas de integridad de datos que pudieran ocurrir. ASP implementa la posibilidad de usar cookies para crear o destruir informacin que s almacena en los equipos de los clientes. Las cookies se transmiten en las cabeceras cuando se realiza la comunicacin http y es el navegador el encargado de almacenarlas. Las cookies se implementan como una coleccin y se usan mediante los objetos integrados Request y Response. El tiempo de vida de una cookie es por defecto una cookie tiene un mbito de sesin, es decir, tiene de vida el tiempo en que esta activo el navegador. Podemos variar el tiempo de vida de una cookie mediante el atributo expires.
Sintaxis: Response.Cookies(cookie)[(clave)|.atributo] = valor Request.Cookies(cookie)(clave)

Con ASP las cookies tienen un mbito de sesin, lo que supone que los datos se perdern poco despus de que el usuario deje de hacer referencias a las pginas de la aplicacin.

Pgina 137

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ejemplos: Enviar una cookie simple


<% Response.cookies("color")="morado" %>

Recuperar el valor de esa cookie


<% ColorFavorito=Request.cookies("color")%>

Enviar una cookie con claves


<% Response.cookies("color")("fondo")="morado"%> <% Response.cookies("color")("texto")="blanco"%>

Recuperar una cookie con claves


<% Request.cookies("color")("fondo")%>

Nos recuperara el valor morado


<% Request.cookies("color")("texto") %>

Nos recuperara el valor blanco Nota: Cuando usamos Response para escribir una cookie, si esta ya exista se sobrescribe. El atributo Expires Establece el da de caducidad de una cookie Ejemplos: Hacer que una cookie caduque inmediatamente
<% Response.cookies(cookie).expires="1/1/1990"%>

Hacer que una cookie caduque cierto da

Pgina 138

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% Response.cookies(cookie).expires="12/12/2000"%>

12.1. Ejemplo de Monitorizacin de accesos de un usuario a una pgina En el siguiente ejemplo se presenta la porcin de cdigo necesaria para mantener la siguiente informacin relativa a un usuario: Nmero de accesos realizados a la pgina. Fecha en el que se produjo el ltimo acceso (en caso de haberse realizado). Hora en la que se produjo el ltimo acceso (en caso de haberse realizado).
<%@ Language=JScript %> <% if(Request.Cookies("Num_Accesos")==0) { //Si nunca se accedi. Response.Cookies("Num_Accesos")=1 Primera_Vez=true } else { //Si ya se accedi por lo menos una vez. Response.Cookies("Num_Accesos")=parseInt(Request.Cookies( "Num_Accesos"))+1 Fecha_Ant=Request.Cookies("Fecha") Hora_Ant=Request.Cookies("Hora") Primera_Vez=false } //Actualiza variables de Fecha y Hora para el prximo ingreso Fecha=new Date() Response.Cookies("Fecha")=Fecha.getDate() + "/" + Fecha.getMonth() + "/" +Fecha.getYear() Response.Cookies("Hora")=Fecha.getHours() + "." + Fecha.getMinutes() + "." +Fecha.getSeconds() %>

Pgina 139

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<HTML> <HEAD> <TITLE> Ejemplo 11 - Monitorizando los accesos de un usuario a una pgina</TITLE> </HEAD> <BODY> <P>&nbsp;</P> <% if(!Primera_Vez) {%> Fecha y Hora de su ltimo acceso: <%=Fecha_Ant%>, <%=Hora_Ant%> <BR> Nmero de accesos que has hecho a esta pgina Web: <%=Request.Cookies("Num_Accesos") %> <BR> <% } else {%> Primera vez que acceds a esta pgina. <%}%> </BODY> </HTML>

Pgina 140

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 141

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

12.2. Ejemplo de personalizacin de presentaciones Las cookies pueden ser utilizadas para personalizar opciones de presentacin de las pginas Web. De esta manera, podemos preguntarle a cada usuarios sus preferencias en colores, tipos de letra, disposicin de pgina, calidad de grficos, etc. Con los datos proporcionados por un usuario, se pueden modificar las caractersticas de las pginas que este usuario va a recibir en una aplicacin Web. En este ejemplo se ha implementado el formulario y su respuesta en el mismo archivo .asp. El ejemplo que se presenta permite escoger entre diversos colores preseleccionados en una estructura de botn de radio.
<%@ Language=JScript %> <% if(Request.Form("Fondo")+"."!="undefined.") {//Si no es indefinido Response.Cookies("ColorFondo")=Request.Form("FONDO") } %> <HTML> <HEAD> <TITLE> Ejemplo 12 - Personalizar Presentaciones </TITLE> <BODY> <P>&nbsp;</P> <% if(Request.Form("Fondo")+"."=="undefined.") { //Si es indefinido %> Escoge color de fondo para tus pginas: <BR> <FORM ACTION="ASPEjemplo12.asp" METHOD="POST"> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="AA0000" > Rojo </TR></TD><BR>

Pgina 142

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="00AA00" > Verde </TR></TD><BR> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="0000FF" > Azul </TR></TD><BR> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="FFFF00" > Amarillo </TR></TD><BR> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="FF00FF" > Morado </TR></TD><BR> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="00FFFF" > Cyan </TR></TD><BR> <TR><TD> <INPUT TYPE="RADIO" NAME="FONDO" VALUE="FFFFFF" CHECKED> Blanco </TR></TD><BR> <TR><TD> <INPUT TYPE=SUBMIT VALUE="Actualizar Fondo"> </TR></TD><BR> </FORM> <% } else { %> <BODY BGCOLOR= <%=Request.Cookies("ColorFondo")%> > Color de fondo seleccionado. <% } %> </BODY> </HTML>

Pgina 143

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 144

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

12.2. Ejemplo de personalizacin de presentaciones avanzado En este ejemplo se permite seleccionar el color de fondo y el tipo y color de los textos.
<%@ LANGUAGE=JScript %> <% if (Request.Form+"." != "undefined.") { Response.Cookies("fondo")=Request.Form("fondo") Response.Cookies("letra")=Request.Form("letra") Response.Cookies("fuente")=Request.Form("fuente") } %> <HTML> <HEAD> <TITLE> Ejemplo simple 13 </TITLE> </HEAD> <% if (Request.Form("fondo")+"." == "undefined.") { %> <BODY> <FORM METHOD="POST" ACTION="EjSimpl13.asp"> Elija el color del fondo del documento: <SELECT NAME="fondo"> <OPTION> #FFFFFF <OPTION> #FF0000 <OPTION> #AAAAAA </SELECT> <HR> Elija el color de letra: <SELECT NAME="letra"> <OPTION> #FFF222 <OPTION> #FF1111 <OPTION> #111111 </SELECT> <HR> Elija el fondo del documento: <SELECT NAME="fuente"> <OPTION> "VERDANA" <OPTION> "HELVETICA" <OPTION> "Comic Sans MS" </SELECT> <HR> <p><INPUT TYPE=submit VALUE="Enviar"> </FORM>
Pgina 145

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% } else { %> <BODY BGCOLOR= <%= Request.Cookies("fondo") %>> <FONT FACE= <%= Request.Cookies("fuente") %> COLOR= <%= Request.Cookies("letra") %> > <H3> ESTA ES LA PRESENTACIN QUE HAS ELEGIDO </H3> </FONT> <% } %> </BODY> </HTML>

Pgina 146

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 147

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

12.3. Ejemplo de direcciones Web La agenda de cada usuario es personal, debido a que las cookies tambin lo son. Aunque este ejemplo parece til, no hay que olvidar que con ASP las cookies tienen un mbito de sesin, lo que supone que los datos se perdern poco despus de que el usuario deje de hacer referencias a las pginas de la aplicacin. El propsito de la agenda es guardar una lista de direcciones tiles de Web a cuyas pginas pueda acudir el usuario slo con pulsar en los vnculos establecidos. Los datos se encuentran almacenados en cookies. Este ejemplo est divididos en tres pginas: ContenidoAgenda.asp: Indicacin de agenda vaca cuando no existen datos almacenados. Lista de direcciones Web que pueden ser consultadas. AltaDireccion.asp: Formulario para introducir Nombre, Direccin y Comentarios. BorrarDireccion.asp: Permite borrar entradas indicando sus nmeros de orden. Cuando no existen entradas, se borran las cookies con el fin de liberar espacio.
ContenidoAgenda.asp <html> <head> <title> Contenido de la Agenda </title> </head> <%@ LANGUAGE=JScript %> <body> <!-- Si la agenda est vaca, es decir, no existe el cookie "num_dir" mostramos un mensaje por pantalla que lo indique -->

Pgina 148

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% if (Request.Cookies("num_dir") == "") { %> <h5><center> AGENDA VACIA </center></h5> <!-- Si la agenda no est vaca entonces por cada direccion guardada en los cookies mostramos un hiperenlace a dicha direccion, almacenda en el cookie "direcciones", con el nombre que est guardado en "nombres" y los comentarios de "comentarios" --> <% } else { for (Direccion=1; Direccion <= Request.Cookies("num_dir"); Direccion++) { Dir= Direccion.toString() %> <%=Direccion%> <a HREF="<%=Request.Cookies("Direcciones")(Dir) %>"> <%= Request.Cookies("Nombres")(Dir) %> </a> <br> Comentarios: <%= Request.Cookies("Comentarios")(Dir) %> <hr> <% } } %> <center> <a HREF="AltaDireccion.asp"> INTRODUCIR NUEVOS DATOS </a> <br> <a HREF=" BorrarDireccion.asp"> BORRAR DATOS </a> </center> </body> </html>

AltaDireccion.asp <%@ LANGUAGE=JScript %> <% if (Request.Form("nombre")+"." != "undefined.") { num_dir = Request.Cookies ("num_dir") if (num_dir =="") { num_dir=1 } else {

Pgina 149

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

num_dir= (parseInt (num_dir))+1 } num= num_dir.toString() Response.Cookies("Nombres")(num)=Request.Form("nombre") Response.Cookies("Direcciones")(num)=Request.Form("direccion") Response.Cookies("Comentarios")(num)=Request.Form("comentarios") Response.Cookies("num_dir")=num_dir } %> <html> <head> <title> Insertar Direccin </title> </head> <body> <h3> DATOS DE LA DIRECCION </h3> <br> <!-- Creamos un formulario, que mandaremos a este mismo archivo, para que el usuario nos indique una nueva direccin --> <form METHOD="POST" ACTION="AltaDireccion.asp"> Nombre: <br><input TYPE="TEXT" NAME="nombre" SIZE="50"><br> Direccion: <br><input TYPE="TEXT" NAME="direccion" SIZE="100"><br> Comentarios: <br><input TYPE="TEXT" NAME="comentarios" SIZE="100"><br> <p> <input TYPE="SUBMIT" VALUE="Enviar"> <input TYPE="RESET" VALUE="Borrar"> </form> <center> <a HREF="ContenidoAgenda.asp"> VOLVER A AGENDA </a> </center> </body> </html>

BorraDireccion.asp <%@ LANGUAGE=JScript %> <% if (Request.Form("dir")+"." != "undefined.") { if (Request.Cookies("num_dir")==1)

Pgina 150

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

{ Response.Cookies("num_dir").Expires = "1/7/1996" Response.Cookies("Nombres").Expires = "1/7/1996" Response.Cookies("Direcciones").Expires = "1/7/1996" Response.Cookies("Comentarios").Expires = "1/7/1996" %> <!-- Si hay ms de una direccin almacenada copiamos cada direccin posterior a la que queremos borrar en la posicin anterior y decrementamos el cookie "num_dir" en 1 --> <% } else { num= parseInt (Request.Form("dir")) for (dir=parseInt (num); dir <= (parseInt (Request.Cookies("num_dir"))-1); dir++) { direc= dir.toString() direc2= (dir+1).toString() Response.Cookies("Nombres")(direc)=Request.Cookies("Nombres") (direc2) Response.Cookies("Direcciones")(direc)= Request.Cookies("Direcciones") (direc2) Response.Cookies("Comentarios")(direc)= Request.Cookies("Comentarios")(direc2) } Response.Cookies("num_dir")=Request.Cookies("num_dir") - 1 } } %> <html> <head> <title> Borrar Direccin de la Agenda </title> </head> <h3> DATOS DE LA DIRECCION A BORRAR </h3> <body> <form METHOD="POST" ACTION="BorrarDireccion.asp"> Numero de orden: <br><input TYPE="TEXT" NAME="dir" SIZE="3"><br> <p> <input TYPE="SUBMIT" VALUE="Borrar"> </form> <center> <a HREF="ContenidoAgenda.asp">
Pgina 151

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

VOLVER A AGENDA </a> </center> </body> </html>

Pgina 152

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 153

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 154

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 155

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 156

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13. Utilizar componentes ActiveX Server


Los componentes de ActiveX Server le ofrecen medios reutilizables de tener acceso a la informacin, aumentando as sus capacidades de creacin de secuencias de comandos. Por ejemplo, el componente Acceso a bases de datos habilita a las secuencias de comandos para que consulten a una base de datos. De esta manera, cuando quiera hacer una consulta a una base de datos desde una secuencia de comandos, puede utilizar el componente Acceso a bases de datos y evita el tener que escribir complicadas secuencias de comandos para realizar esta tarea. Puede llamar a estos componentes desde cualquier secuencia de comandos o lenguaje de programacin que soporte automatizacin (los componentes ActiveX Server son servidores de automatizacin). En este mdulo, utilizar componentes de ActiveX Server que estn incluidos con ASP para activar un sitio Web de ejemplo. Los componentes ActiveX se han diseado para que se ejecuten en el servidor Web como parte de las aplicaciones Web, proporcionan funcionalidad a las aplicaciones, como el acceso a ficheros, Bases de datos, etctera. Existen componentes ActiveX para tareas muy diversas. Mostraremos como operar con algunos de los que se incluyen por defecto en la instalacin de ASP. Adrotator Insercin de publicidad rotatoria. FileSystemObject Acceso a ficheros en el servidor. TextStream Acceso a ficheros en el servidor. ActiveX Data Object Acceso a bases de datos.

13.1. Utilizar el componente Ad Rotator

Pgina 157

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

El componente ADRotator automatiza la rotacin de imgenes de anuncio en una pgina Web. Cada vez que un cliente abre o recarga la pgina este componente presenta una nueva imagen segn las definiciones especificadas en un archivo. Los sitios Web de Internet suelen proporcionar espacio publicitario. Para mantener los sitios visualmente interesantes y para mostrar diferentes comerciales en un espacio limitado, quizs quiera recorrer sucesivamente los diferentes comerciales. El componente Ad Rotator simplifica la tarea de mostrar cada comercial por turno y facilita el agregar nuevos comerciales. En esta leccin, usted crear una secuencia de comandos que llamar al componente Ad Rotator para que cree un recorrido entre cuatro comerciales seleccionados aleatoriamente. Archivos necesarios: Archivo Rotator Schedule: es un archivo de texto que contiene la agenda de presentacin de los anuncios. Archivo de redireccin: es un archivo .asp que implementa la redireccin a la URL anunciante. Creacin del objeto AdRotator:
<% Set Rotacion=Server.CreateObject("MSWC.AdRotator") %>

Este componente es el archivo Adrot.dll. 13.1.1. Propiedades Border: permite especificar si los anuncios se presentan enmarcados.
<% objeto.border=tamao %>

Clickable: permite especificar presentan como hipervnculos.

si

los

anuncios

se

Pgina 158

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% objeto.clickable= True o False %>

TargetFrame: permite especificar el marco de destino del hipervnculo.


<% objeto. TargetFrame= nombre del marco destino %>

13.1.2. Mtodos GetAdvertisement: recupera el siguiente anuncio del fichero Schedule.


Objeto.GetAdvertisement (url del fichero Shedule)

Pgina 159

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.1.3. Estructura del archivo Schedule El fichero Schedule esta dividido en 2 secciones separadas por un asterisco "*". La primera seccin es la que especifica los parmetros comunes para todas las imgenes que se muestren; la segunda los archivos , localizaciones y parmetros propios de cada una de las imgenes. Sintaxis de la primera seccin: REDIRECT Especifica la url que se encargara de hacer la redireccin, generalmente una pgina .asp. WIDTH Ancho en pxel del anuncio. HEIGHT Alto en pxel del anuncio. BORDER Ancho en pxel del borde del anuncio. Sintaxis de la segunda seccin: Url de la imagen a mostrar. Url de la pagina a redireccionar. Texto alternativo de la imagen. Ponderacin de apariciones del anuncio con respecto del total.

Ejemplo:
Objeto.GetAdvertisemen REDIRECT /util/redirect.asp WIDTH 300 HEIGHT 50 BORDER 2 * /imagenes/logo1.gif http://www.transcontinental.com El viaje de tus sueos

20

Pgina 160

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

/imagenes/logo5.jpg http://www.pastelito.fr Dulces de calidad 30 Ejemplo de fichero de redireccin:


<% response.redirect (request.querystring("url")) %>

Ejemplo de una pgina completa:


<html> <head><title>Uso de AdRotator</title></head> <body><h2>Uso de AdRotator</h2> <% Set Rotacion=Server.CreateObject("MSWC.AdRotator") %> <=% Rotacion.GetAdvertisement("adrot.txt") %> </ body> </html>

13.1.4. Ejemplo Una vez realizado el siguiente ejemplo haga clic en el botn Mostrar ms adelante para ver un ejemplo de un comercial que va a mostrar y posteriormente haga clic en el botn repetidas veces para crear un recorrido entre otros comerciales.

1) Crear el archivo ad Ahora crear un sencillo archivo de texto para decir al componente Ad Rotator qu comerciales va a insertar y cunto tiempo va a mostrarse cada uno de ellos.

Pgina 161

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

La primera lnea del archivo define la secuencia de comandos que se va a llamar cuando el usuario haga clic en un comercial; en nuestro caso es Adredir.asp. Esta secuencia de comandos le habilita para seguir la popularidad de los comerciales. Las siguientes tres lneas establecen la anchura, la altura y el borde de los comerciales.

redirect /aspsamp/advworks/adredir.asp width 460 height 60 border 1

A continuacin, el archivo contiene los datos del comercial. Para cada comercial incluye la imagen que se usar, la direccin URL a la que ir cuando el usuario hace clic en el anuncio (despus de ir a Adredir.asp, en este ejemplo), el texto asociado con la imagen y el tiempo que se va a mostrar este comercial:
/aspsamp/advworks/multimedia/images/ad_1.gif http://www.microsoft.com Astro Mt. Bike Company 20

Al mantener la informacin de los comerciales en un archivo separado, un grupo diferente en su empresa puede actualizar el archivo Adrot.txt sin tener la necesidad de modificar su pgina ASP. Los diferentes grupos pueden mantener archivos de comerciales para las distintas partes de su sitio Web. 2). Crear la secuencia de comandos 0 1. Utilice su editor de texto para crear y abrir el archivo Ad.asp. 2. Agregar aqu su secuencia de comandos. 3. Cree una instancia del componente Ad Rotator y asgnela a la variable Ad copiando la siguiente secuencia de comandos y pegndola en su editor de texto (despus del comentario):
Pgina 162

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% Set Ad Server.CreateObject("MSWC.Adrotator") %>

Al asignar una instancia de un componente a una variable, puede referirse al componente ms adelante en la secuencia de comandos. 4. Para buscar un anuncio en el archivo, utilice el mtodo GetAdvertisement del componente Ad Rotator. Agregue el siguiente comando a su secuencia de comandos:
<%= Ad.GetAdvertisement("/aspsamp/tutorial/lessons/adr ot.txt") %>

El mtodo GetAdvertisement necesita un parmetro (el nombre del archivo que contiene la informacin del anuncio, en nuestro caso Adrot.txt). Utilizando este parmetro, el mtodo devuelve una etiqueta HTML <IMG> con el anuncio adecuado. El nombre de variable que asign a la instancia del componente Ad Rotator, Ad, precede al mtodo, GetAdvertisement y a la ruta del archivo Adrot.txt. El signo igual manda el valor devuelto por el mtodo (el anuncio real) al explorador del cliente. 5. Guarde los cambios de Ad.asp y salga del editor de texto. Asegrese que su editor de texto no reemplaza la extensin .asp.
<% Set Ad = Server.CreateObject("MSWC.Adrotator") %> <%= Ad.GetAdvertisement("/aspsamp/tutorial/lessons/adr ot.txt") %>

Pgina 163

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.2. Utilizar el componente Capacidades del explorador No todos los exploradores pueden soportar el rpido crecimiento de las caractersticas disponibles en Internet: marcos, sonidos de fondo, subprogramas Java y tablas son algunos ejemplos de lo que unos exploradores soportan y otros no. Puede utilizar el componente Capacidades del explorador para presentar el contenido en un formato apropiado para las capacidades de un explorador especfico. Por ejemplo, si un explorador no soporta tablas, el componente Capacidades del explorador puede mostrar los datos de una manera alternativa, como texto. Cuando un explorador se conecta al servidor web, se enva una cabecera al servidor. El objeto BrowserType compara la cabecera con el contenido del archivo Browscap.ini y si no encuentra correspondencia en el mismo para la cabecera, emplea las propiedades predeterminadas para el explorador. Si no especificados valores predeterminados le asigna a cada propiedad el valor UNKNOW. A este componente se le puede agregar propiedades utilizando el archivo Browscap.ini. En esta leccin, va a mejorar la secuencia de comandos Ad Rotator que cre en la seccin anterior. Si el explorador de un usuario soporta controles ActiveX, el usuario ve una serie de comerciales que aparecen uno detrs de otro, con una variedad de fundidos de entrada y fundidos de salida. Si el explorador no soporta los controles ActiveX, el usuario ver una serie de comerciales alternativos mostrados por el componente Ad Rotator. Un ejemplo de comercial girando que es sensible al explorador aparece a continuacin. 13.2.1. Crear la secuencia de comandos 1. Inicie su editor de texto para crear y abrir el archivo Ad.asp.

Pgina 164

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2. Cree una instancia del componente Capacidades del explorador y asgnela a la variable OBJbrowser. Asegrese de que inserta el comando por encima de la instruccin <% Set Ad...%> :
<% Set OBJbrowser = Server.CreateObject("MSWC.BrowserType") %> <% Set Ad = Server.CreateObject("MSWC.Adrotator") %> <%= Ad.GetAdvertisement("/aspsamp/tutorial/lessons/adr ot.txt") %>

3. Utilice la instruccin de VBScript If...Then...Else para determinar si el explorador del cliente soporta controles ActiveX. Si lo hace, se utilizar el control Ad Billboard; si no soporta los controles ActiveX, se utilizar el componente ActiveX Ad Rotator del servidor. Para incorporar esta lgica, copie la siguiente secuencia de comandos y pguela detrs de la instruccin <% Set OBJbrowser...%> que insert en el paso 2:
<% If OBJbrowser.ActiveXControls = "True" Then %> <OBJECT HSPACE="10" WIDTH="460" HEIGHT="60" CODEBASE="/aspsamp/advworks/controls/nboard.c ab" DATA="/aspsamp/advworks/controls/billboard.ods" > </OBJECT> <% Else %>

La propiedad del componente Capacidades del explorador de los controles ActiveX determina si el explorador los soporta. Utilice la etiqueta <OBJECT> para insertar un control ActiveX dentro de una pgina HTML. Los parmetros de la etiqueta especifican el archivo desde el que el control lee los datos. En este ejemplo, el control lee imgenes comprimidas del archivo Billboard.ods. Nota Este control funciona adecuadamente slo en equipos con procesadores x86 y compatibles. Para completar esta leccin en
Pgina 165

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

un equipo no compatible, sustituya este control por uno que funcione adecuadamente en su equipo. 4. Copie y pegue la siguiente secuencia de comandos debajo del comentario para finalizar la instruccin If...Then: <% End If %>
<% Set OBJbrowser Server.CreateObject("MSWC.BrowserType") %> =

<% If OBJbrowser.ActiveXControls = "True" Then %> <OBJECT HSPACE="10" WIDTH="460" HEIGHT="60" CODEBASE="/aspsamp/advworks/controls/nboard.c ab" DATA="/aspsamp/advworks/controls/billboard.ods" > </OBJECT> <% Else %> <% Set Ad = Server.CreateObject("MSWC.Adrotator") %> <%= Ad.GetAdvertisement("/aspsamp/tutorial/lessons/adr ot.txt") %> <% End If %>

5. Guarde los cambios de Ad.asp y salga del editor de texto. Asegrese que su editor de texto no reemplaza la extensin .asp. Nota: El archivo Browscap.ini (que se encuentra en el directorio C:\Winnt\system32\inetsrv\ASP\Cmpnts) contiene los datos necesarios para que el componente Capacidades del explorador reconozca un explorador y sus capacidades. Necesitar agregar nuevos datos a este archivo mientras se desarrollen nuevos exploradores o si utiliza algunas de las caractersticas dependientes de explorador que no estn listadas en el archivo predeterminado Browscap.ini.

Pgina 166

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.3. Utilizar el componente FileSystemObject El componente FSO nos permite abrir y crear ficheros de texto en el servidor. Este componente consta de 22 mtodos, de los cuales podemos seleccionar 2 que son los que nos van a permitir leer o escribir en archivos de texto existentes en el servidor o crear dichos archivos. Para crear un objeto FSO la sintaxis es la misma que para cualquier otro componente ActiveX.
<% Set MiFSO=Server.CreateObject("Scripting.FileSystemO bject") %>

Cuando abrimos o creamos un archivo de texto mediante FSO este nos devuelve una instancia del objeto TextStream que es la que representa el archivo fsico y con la cual trabajaremos. 13.3.1. Mtodos CreateTextFile: crea un archivo fsico y devuelve la instancia de TextStream con la cual trabajaremos.
<% Set MiFichero=MiFSO.CreateTextFile("Nombre Fichero",Sobreescribir") %>

Donde: - Nombre Fichero: Nombre del fichero a crear. - Sobrescribir: Admite los valores TRUE o FALSE, si el fichero ya existe y el valor dado es - TRUE se crea de nuevo, si no , devuelve un error. OpenTextFile: Abre un archivo fsico y devuelve la instancia de TextStream con la cual trabajaremos.

Pgina 167

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% Set MiFichero=MiFSO.OpenTextFile("Nombre Fichero",modo,crear") %>

Donde: - Nombre Fichero Nombre del fichero a abrir. - Modo Indica si queremos abrir el fichero para lectura (1) , para escritura (2) o para escribir nuevos registros al final del fichero(8) - Crear Admite los valores TRUE o FALSE, si el fichero no existe y el valor dado es TRUE se crea. Ejemplo: Apertura de fichero para lectura:
<% Set MiFichero=MiFSO.OpenTextFile("c:\Fichero_nuevo.txt",1,tru e") %>

Pgina 168

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.4. Utilizar el componente TextStream El objeto TextStream nos sirve para manejar ficheros de texto en el servidor. La creacin de este objeto se realiza a partir de un objeto FileSystemObject y gracias a alguno de sus mtodos. Una vez creado, disponemos de un objeto TextStream que representa un archivo fsico abierto, ya sea para lectura o escritura. . 13.4.1. Mtodos Close: cierra el archivo.
<% MiFichero.close%>

Read: lee caracteres.

devuelve

un

numero

especifico

de

<% MiFichero.read(numero de caracteres) %>

ReadAll: lee y devuelve un archivo completo.


<% MiFichero.ReadAll %>

ReadLine: lee y devuelve una lnea completa de un archivo de texto.


<% MiFichero.ReadLine%>

Skip: salta un numero determinado de caracteres al leer un archivo.


<% MiFichero.Skip(numero de caracteres) %>

SkipLine: salta una lnea al leer un archivo.

Pgina 169

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<% MiFichero.SkipLine %>

Write: escribe una cadena de caracteres en un archivo.


<% MiFichero.Write("texto_entre_comillas") %>

WriteLine: escribe una cadena de caracteres en un archivo aadiendo al final un carcter de fin de linea.
<% MiFichero.WriteLine("texto_entre_comillas") %>

WriteBlankLines: escribe un numero especifico de caracteres de nueva lnea.


<% MiFichero.WriteBlankLines(numero_de_lineas) %>

Ejemplo de escritura en un archivo


<HTML> <HEAD><TITLE>Ejemplo de FSO TextStream</TITLE></HEAD> <BODY> <% Set Mfso=Server.CreateObject("Scripting.FileSystemObject") Set MArchivo=Mfso.OpenTextFile("c:\fecha.txt",2,true) MArchivo.writeline "Hola Mundo, hoy es:" MArchivo.write date() MArchivo.close %> Creado archivo en C:\fecha.txt con la fecha de hoy </BODY> </HTML> y

Pgina 170

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Pgina 171

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.5. Utilizar el componente de Acceso a bases de datos - ActiveX Data Object Una de las caractersticas ms interesantes de ASP es su facilidad para el manejo de bases de Datos que residen en el servidor. Esto lo conseguimos mediante el uso de ADO (ActiveX Data Object) de una forma fcil, rpida y con un mnimo consumo de recursos del sistema. El componente Acceso a bases de datos utiliza objetos de datos de ActiveX (ADO) para proporcionar un fcil acceso a la informacin almacenada en una base de datos (o en otra estructura de datos en forma de tabla) que cumpla con el estndar Open Database Connectivity (ODBC). En esta leccin se conectar a una base de datos Microsoft Access de clientes y mostrar un listado con sus contenidos. Aprender cmo extraer datos utilizando la instruccin de SQL SELECT y crear una tabla HTML para mostrar los datos. ADO usa ODBC para el acceso a bases de datos. lo que nos independiza de la tecnologa de las mismas; esto implica que podemos cambiar la tecnologa de la base de datos si mantenemos la misma estructura de datos, nuestras aplicaciones desarrolladas con ADO pueden seguir funcionando sin cambiar ni una sola lnea de cdigo. Para desarrollo podemos crear nuestras fuentes de datos en Microsoft Access, pero en entornos de produccin con gran afluencia de clientes deberemos de usar gestores de bases de datos ms potentes, como Oracle, Microsoft Sql Server, etctera. ADO esta formado por varios objetos organizados de forma jerrquica (cada uno de ellos con sus mtodos y propiedades especficas) de los cuales vamos los ms interesantes.

Pgina 172

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.5.1. Objetos

Objetos Objeto Connection Nos proporciona una conexin a una base de datos ODBC desde una pgina ASP. Esta conexin nos permitir efectuar las operaciones que deseemos sobre la base de datos. Es el objeto primario de ADO, ninguno de los otros objetos puede existir si este no es declarado de forma explicita o implcita (en algunos de los ejemplos veremos que no existe una declaracin del objeto Connection, pero debemos de tener en cuenta que siempre existe, si es necesario ADO lo declarar por si mismo). La conexin terminar cuando nosotros la cerremos explcitamente con el mtodo close o bien cuando termine la ejecucin de la pgina ASP.. Objeto Error Es una coleccin en la que se almacenaran los posibles errores del objeto Objeto Command Representa un comando SQL que se ejecuta contra la base de datos declarada en el objeto Connection. Si el resultado de ese comando es un conjunto de datos, estos se almacenaran en un objeto de tipo Recordset. Objeto Recordset Representa una tabla o el resultado de una consulta ejecutada
Pgina 173

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

contra la base de datos. Va a ser nuestro internase natural contra la base de datos. Como en todo modelo relacional, los datos se nos presentaran en filas y columnas. Objeto Field El objeto Field representa la informacin relativa a un campo de un Recordset. Contiene la coleccin Fields que representa todos los campos de la tabla, cada miembro de esa coleccin es un objeto de tipo Field. 13.5.2. Objeto Connection El objeto Connection nos proporciona una conexin a una base de datos desde una pgina ASP; ahora vamos a ver como se usa , as como sus propiedades y mtodos. Para establecer la conexin lo primero que hacemos es crear el Objeto Connetion por medio de la propiedad CreateObject del objeto Server:
<% Set conexin=Server.CreateObject("ADODB.Connection ")%>

Una vez establecida la instancia del objeto pasamos a configurarlo mediante sus distintas propiedades y mtodos.

Propiedades ConnectionString Especifica la referencia a la base de datos con la cual queremos conectar, conteniendo en una cadena de texto la informacin necesaria para efectuar esa conexin mediante parejas de valores separadas por ";". Los valores que podemos asignar son: - Data Source: DSN=Nombre ODBC de la Base de Datos - Usuario: User=Nombre de Usuario
Pgina 174

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

- Password: Password=Password del usuario para la base de datos Ejemplo:


<% conexion.ConnectionString="DSN=MIOdbc;User=pepe;Password=1234" %>

Mode Especifica los permisos de la conexin. Algunos de los valores ms habituales que podemos asignar son: 1 Establece permiso solo de Lectura 2 Establece permiso solo de Escritura 3 Establece permiso de Lectura/Escritura Ejemplo: <% conexion.Mode=3 %> Mtodos BeginTrans Abre una transaccin; todas las operaciones que realicemos a partir de ese momento no sern efectivas hasta que no cerremos la transaccin. Ejemplo:
<% conexion.BeginTrans %>

Close Cierra el objeto Ejemplo:


<% conexion.close %>

CommitTrans Cierra una transaccin haciendo efectivos los cambios efectuados dentro de ella. Ejemplo:
<% conexion. CommitBeginTrans %>

Execute

Pgina 175

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ejecuta una sentencia SQL contra la base de datos. Ejemplo:


<% Set resultado=conexion.execute (Select * from amigos) %>

Open Abre la conexin propiedades. Ejemplo:


<% conexion.open %>

con

los

parmetros

especificados

en

las

RollBackTrans Deshace todos los cambios efectuados en la base de datos desde el inicio de la transaccin. Ejemplo:
<% conexion. RollBackTrans %>

Pgina 176

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.5.3. Objeto Error El objeto Error contiene la coleccin Errors , que es la encargada de almacenar los errores que se pudieran producir durante la ejecucin de operaciones contra Bases de Datos. Propiedades Description Descripcin del error. Number El numero de error. SQLState Cdigo de error SQL. Mtodos Clear Elimina los datos del objeto Error. Ejemplo: Examinando los posibles datos de la coleccin Errors
....... ....... Miconexion.open If Miconexion.Errors.Count > 0 then For each error in Miconexion.errors then Response.write Error.Number & " Error.Description next End if

"&

Nota: Count es una propiedad de la coleccin Errors.

Pgina 177

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.5.4. Objeto Recordset El objeto Recordset es la interface entre los datos obtenidos de nuestras consultas sobre las tablas y nuestras pginas asp. Representa una tabla organizada en filas (registros) y columnas (campos). La propiedades y mtodos de Recordset son muchos, en este capitulo vamos a ver las mas interesantes, para hacerlo un poco mas sencillo de entender vamos a verlos agrupados por la funcionalidad que nos ofrecen. Definicin del tipo de Cursor Entendemos como cursor el puntero que nos permite desplazarnos por los registros del recordset. Dependiendo del tipo elegido determinaremos los desplazamientos y cambios realizables en los datos. El tipo de cursor lo definiremos mediante la propiedad CursorType, los posibles valores son:

Pgina 178

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Definicin del tipo de Lock Entendemos como cerrojo el tipo de bloqueo que efectuaremos en la base de datos cuando modifiquemos un recordset, a fin de evitar que dos o mas usuarios accedan a modificar un mismo registro a la vez.

Ejemplo de definicin de un recordset para actualizar datos:


Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3%> set rs=createobject("ADODB.Recordset") rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic

Pgina 179

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Movindose por los datos del RecordSet - Mtodos

Movindose por los datos del RecordSet - Propiedades

Pgina 180

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Modificacin de Datos - Mtodos

Abrir y Cerra el Recordset - Mtodos

Pgina 181

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Ejemplo

Pgina 182

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

13.5.5. Primer ejemplo Activex Data Object (ADO) 1) Identificar la base de datos Antes de utilizar una base de datos con el componente Acceso a bases de datos, debe identificar la base de datos con la aplicacin ODBC en el Panel de control. En este ejemplo va a utilizar una base de datos de Microsoft Access incluida en el sitio Web de ejemplo de ASP. 1. En el equipo en el que est ejecutando su servidor Web, abra el Panel de Control. 2. Haga doble clic en el icono ODBC y despus en DSN del sistema. Hay dos tipos de fuentes de datos: Usuario, que slo est disponible para usted, y Sistema, que est disponible para cualquiera que utilice su equipo. La fuente de los datos que se va a utilizar con el servidor Web tiene que ser del tipo Sistema. 3. Haga clic en Agregar, elija Microsoft Access Driver y luego haga clic en Finalizar. 4. En el cuadro Orgenes de datos del sistema, escriba AWTutorial y haga clic en Seleccionar. Seleccione el archivo \AspSamp\AdvWorks\AdvWorks.mdb (que est en el directorio Inetpub) y haga clic en Aceptar. 5. Haga clic en Aceptar para cerrar los cuadros de dilogo. 2) Crear la instancia del componente 1. Utilice su editor de texto para crear y abrir el archivo Database.asp.

Pgina 183

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2. Como siempre, necesita crear una instancia de un objeto para poder utilizarlo. Copie y pegue la siguiente secuencia de comandos:
<% Set OBJdbConnection Server.CreateObject("ADODB.Connection") =

3. Para el componente Acceso a bases de datos, tambin necesita especificar la fuente de datos ODBC (la base de datos de la que va a tomar los datos) abriendo una conexin a la base de datos. Copie y pegue la siguiente secuencia de comandos:
<% Set OBJdbConnection Server.CreateObject("ADODB.Connection") OBJdbConnection.Open "AWTutorial" =

4. Utilice el mtodo Execute del componente Acceso a bases de datos para emitir la instruccin SELECT de SQL (SQLQuery) a la base de datos y almacenar los registros devueltos en un conjunto de resultados (RSCustomerList). Copie y pegue la siguiente secuencia de comandos debajo de la instruccin OBJdbConnection.Open:
SQLQuery = "SELECT * FROM Customers" Set RSCustomerList OBJdbConnection.Execute(SQLQuery) %> =

Puede combinar estas dos lneas de la secuencia de comandos pasando la cadena exacta SELECT directamente al mtodo Execute en lugar de asignarlo primero a la variable SQLQuery. Sin embargo, cuando SQL SELECT es largo, hace ms legible la secuencia de comandos si asigna la cadena a un nombre de variables, como SQLQuery y luego pasa el nombre de la variable en el mtodo Execute.
.<%

Pgina 184

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Set OBJdbConnection Server.CreateObject("ADODB.Connection") OBJdbConnection.Open "AWTutorial" SQLQuery = "SELECT * FROM Customers" Set RSCustomerList OBJdbConnection.Execute(SQLQuery) %>

3) Mostrar el conjunto de resultados obtenido Puede pensar en el conjunto de resultados como en una tabla cuya estructura se determina por los campos especificados en la instruccin SELECT de SQL. Mostrar las filas devueltas por la consulta es tan sencillo como ejecutar un bucle a travs de las filas del conjunto de resultados. En este ejemplo, los datos devueltos se muestran en filas en una tabla HTML. 1. En Database.asp copie y pegue la siguiente secuencia de comandos de VBScript Do...Loop al final:
<% Do While Not RScustomerList.EOF %> <TR> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RSCustomerList("CompanyName")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("ContactLastName") & ", " %> <%= RScustomerList("ContactFirstName") %> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <A HREF="mailto:"> <%= RScustomerList("ContactLastName")%> </A></FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("City")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER>

Pgina 185

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("StateOrProvince")%> </FONT></TD> </TR>

La instruccin Do...Loop repite un bloque de instrucciones siempre que una condicin tenga como valor True. Las instrucciones repetidas pueden ser secuencias de comandos o texto y etiquetas HTML. As, cada vez que se ejecuta el bucle, construye una fila de una tabla (en HTML) e inserta los datos devueltos (utilizando secuencias de comandos). 2. Para completar el bucle, utilice el mtodo MoveNext para mover el puntero de la fila del conjunto de resultados una fila abajo. Ya que esta instruccin entra dentro de la instruccin Do...Loop, se repite hasta que se alcanza el final del archivo. Copie y pegue las siguientes lneas de la secuencia de comandos al final:
<% RScustomerList.MoveNext Loop %>

3.Guarde los cambios de Database.asp y salga del editor de texto. Asegrese que su editor de texto no reemplaza la extensin .asp.

13.5.6. Segundo Ejemplo Activex Data Object (ADO) 1) Declarar el driver de base de datos Existen dos maneras de hacerlo. La primera consiste en declarar un DSN de Sistema a travs de ODBC. Para ello iremos al botn Inicio de nuestro sistema Windows,
Pgina 186

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

y desde all a la opcin Configuracin y despus a Panel de Control. En la ventana que aparece debemos dirigirnos a ODBC (o a ODBC de 32 bits, segn el sistema), y se nos abrir una nueva ventana con una serie de solapas. Nos vamos a DSN de sistema. En este punto vamos a aadir nuestro nuevo DSN para la base de datos que queremos tratar. Para ello seleccionamos en botn Agregar. Se abre una ventana que lleva por ttulo Crear un nuevo origen de datos en el que se nos muestran los drivers de base de datos disponibles en nuestro sistema. Seleccionamos el deseado, en nuestro caso Microsoft Access Driver y pulsamos Finalizar. Hecho esto se abre una nueva ventana, de nombre ODBC Microsoft Access 97 Setup. En el campo Data Source Name debemos escribir el identificador que emplearemos para la base de datos (si por ejemplo se trata de una base de datos de libros cuyo archivo se llama biblio.mdb, podramos llamarla libros). Luego presionamos el botn Select para seleccionar el archivo de base de datos dentro de la jerarqua de directorios del sistema, y tras esto pulsamos Ok. Y ya podremos hacer referencia a ese origen de datos desde nuestras pginas. Esta primera opcin es muy rpida de configurar, sin embargo, es muy frecuente desarrollar las pginas en una mquina y ponerlas en otra (un servidor propiamente dicho), por lo que resulta tedioso tener un DSN para cada base de datos del sistema. La segunda es un poco ms pesada, por el hecho de que hay que incluir una serie de lneas de cdigo en cada pgina que haga uso de la base de datos, pero es mucho ms flexible, puesto que si cambiamos de sistema, no debemos crear un nuevo DSN. La declaracin del driver debe hacerse antes de que se escriba algo en el documento. HTML de salida:

Pgina 187

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<%@ LANGUAGE="VBScript" %> <% ' Declaramos el objeto de conexin a la base de datos Set ConexionBD = Server.CreateObject("ADOdb.Connection") ' Abrimos el objeto con el driver especfico ConexionBD.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.Mappath("/ruta/bd.mdb") %> <HTML> ...

Vemos que en la sentencia ConexionBD.Open, en la parte DBQ=" tenemos lo siguiente Server.Mappath(), que es una variable que devuelve la ruta local del directorio raz del servidor Web, y el parmetro que le pasamos hace referencia a la situacin de la base de datos dentro de la jerarqua del servidor. Veamos el siguiente ejemplo. Si tenemos nuestro servidor Web (http://127.0.0.1 localhost) en un directorio del sistema denominado C:\Inetpub, y nuestra base de datos estar en C:\Inetpub\biblioteca\libros.mdb, en Server.Mappath deberemos indicar lo siguiente:
... ConexionBD.Open "DRIVER={Microsoft Driver (*.mdb)}; " & "DBQ=" & Server.Mappath("/biblioteca/libros.mdb") ...

Access

Atencin, cuando nos referimos al sistema de directorios local utilizamos la barra (\) para separar los directorios, pero cuando hacemos referencia al servidor, se separan con el otro tipo de barra (/).

Pgina 188

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Con esto hemos cumplido con el primer paso, definir el driver para utilizar la base de datos, pero todava no podemos realizar ninguna consulta ni modificacin. Para ello tenemos que definir lo que en Basic se conoce como RecordSet, que no es ms que una agrupacin lgica de registros (algo parecido a una variable de tabla lgica).

Pgina 189

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

2) Realizar operaciones con la base de datos Para ver qu es un RecordSet y para que sirve Volvamos otra vez al ejemplo:

<%@ LANGUAGE="VBScript" %> <% ' Declaramos el objeto de conexin a la base de datos Set ConexionBD = Server.CreateObject("ADOdb.Connection") ' Abrimos el objeto con el driver especfico ConexionBD.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.Mappath("/biblioteca/libros.mdb") Set RS = ConexionBD.Execute("select * from libros") %> <HTML> ...

Con esto conseguimos que se el objeto RS (RecordSet) est enlazado con el resultado de una consulta de la tabla libros de la base de datos libros.mdb, es decir, que contenga los valores, de alguna manera. Pero todava no tenemos resultados visibles de que la operacin se haya completado con xito. Si hemos fallado en algo, en cambio, es muy probable que tengamos una poco prometedora pgina en nuestro visualizador con algn tipo de error. Si ponemos el cdigo de arriba con algunos aditamentos podremos observar los datos de esa base de datos, en el navegador y en tiempo real.

Pgina 190

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

<%@ LANGUAGE="VBScript" %> <% ' Declaramos el objeto de conexin a la base de datos Set ConexionBD = Server.CreateObject("ADOdb.Connection") ' Abrimos el objeto con el driver especfico ConexionBD.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & Server.Mappath("/biblioteca/libros.mdb") Set RS = ConexionBD.Execute("select * from libros") %> <HTML> <HEAD> <TITLE>Consulta de Libros</TITLE> </HEAD> <BODY> <% ' Como la bd no est vaca hacemos un tratamiento hasta que no queden registros... Do while not RS.EOF ' Escribimos en la salida los datos que nos interesa Response.Write("<P>T&iacute;tulo: " & RS("titulo") & "<BR>") Response.Write("Autor: " & RS("autor") & "</P>") ' nos movemos al siguiente registro RS.MoveNext Loop %> </BODY> </HTML>

Pgina 191

Sitios Web con ASP y Lenguajes Scripts Conceptos de ASP

Bibliografa
Visual Interdev 6 Edicin Especial Banick, Steve Morrison, Michael Editorial Prentice Hall. HTML Dinmico, ASP y JavaScript a travs de ejemplos Bobadilla, Jess Alcocer, Alejandro Alonso, Santiago Gutirrez, Abraham Ao 2000 - Editorial Alfaomega. Recopilacin de Internet.

Pgina 192

You might also like