manual de asp

483
Texto diseñado para aquellos que deseen introducirse en el mundo del desarrollo de aplicaciones de negocio en Internet, utilizando para ello la tecnología ASP (Active Server Pages). Se persigue adiestrar en el uso de: Internet Information Server 5, Visual InterDev como herramienta para la gestión de proyectos basados en ASP, Visual Basic Script, la jerarquía de objetos ASP, y las técnicas de acceso a datos a través de ADO. Se requiere conocer los fundamentos de Internet/Intranet, estar familiarizado con la navegación por la web, conocer HTML y conocer el sistema operativo Windows a nivel de usuario. P P R R O O G G R R A A M M A A C C I I Ó Ó N N D D E E A A P P L L I I C C A A C C I I O O N N E E S S P P A A R R A A I I N N T T E E R R N N E E T T C C O O N N A A S S P P 3 3 Desarrollo de software

Upload: ruben-redondo

Post on 03-Jan-2016

76 views

Category:

Documents


8 download

TRANSCRIPT

  • Texto diseado para aquellos que deseen introducirse en el mundo del desarrollo de aplicaciones de negocio en Internet, utilizando para ello la tecnologa ASP (Active Server Pages). Se persigue adiestrar en el uso de: Internet Information Server 5, Visual InterDev como herramienta para la gestin de proyectos basados en ASP, Visual Basic Script, la jerarqua de objetos ASP, y las tcnicas de acceso a datos a travs de ADO. Se requiere conocer los fundamentos de Internet/Intranet, estar familiarizado con la navegacin por la web, conocer HTML y conocer el sistema operativo Windows a nivel de usuario.

    PPRROOGGRRAAMMAACCIINN DDEE AAPPLLIICCAACCIIOONNEESS PPAARRAA IINNTTEERRNNEETT CCOONN AASSPP 33

    Desarrollo de software

  • Programacin de aplicaciones para Internet con ASP 3Versin 1.0.0

    2000 Grupo EIDOS www.LaLibreriaDigital.com

  • ndice

    NDICE................................................................................................................................................... 5 INTRODUCCIN A ASP, ACTIVE SERVER PAGES.................................................................. 11

    ANTECEDES DE ASP: LA ESPECIFICACIN CGI ................................................................................. 11 DEFINICIN DE ASP........................................................................................................................... 12 APLICACIONES ASP........................................................................................................................... 13 APORTACIONES DE ASP..................................................................................................................... 14 REQUERIMIENTOS DE ASP 3.0 ........................................................................................................... 15 SINTAXIS DE ASP............................................................................................................................... 16 OBJETOS INTEGRADOS EN ASP 3.0.................................................................................................... 18 COMPONENTES DE SERVIDOR ............................................................................................................ 19 VISIN GENERAL DE ASP .................................................................................................................. 20 HOLA MUNDO CON ASP..................................................................................................................... 21

    NOVEDADES DE ASP 3.0 ................................................................................................................. 23 PARA QUIN ES ESTE CAPTULO? ..................................................................................................... 23 MEJORAS GENERALES EN ASP 3.0..................................................................................................... 23 EL OBJETO RESPONSE ........................................................................................................................ 24 EL OBJETO SERVER ............................................................................................................................ 25 EL OBJETO ASPERROR ...................................................................................................................... 28 COMPONENTE DE REGISTRO DE IIS (LOGGING UTILITY) .................................................................. 30 ACTIVEX DATA OBJECTS 2.5 (ADO 2.5) .......................................................................................... 34 APLICACIONES ASP CON IIS 5.0 ....................................................................................................... 38 VBSCRIPT 5.0 .................................................................................................................................... 40 PGINAS ASP CODIFICADAS.............................................................................................................. 42 OTROS CAMBIOS ................................................................................................................................ 42

    LENGUAJE DE SCRIPT: VBSCRIPT............................................................................................. 45 INTRODUCCIN .................................................................................................................................. 45

  • 6

    DIFERENCIAS ENTRE LOS SCRIPTS DE CLIENTE Y DE SERVIDOR ........................................................ 46 CARACTERSTICAS GENERALES DE VBSCRIPT .................................................................................. 48 TIPOS DE DATOS DE VBSCRIPT.......................................................................................................... 49 VARIABLES DE VBSCRIPT ................................................................................................................. 50 CONSTANTES DE VBSCRIPT............................................................................................................... 52 OPERADORES DE VBSCRIPT .............................................................................................................. 52 LITERALES DE VBSCRIPT .................................................................................................................. 53 ESTRUCTURAS DE CONTROL EN VBSCRIPT ....................................................................................... 53 PROCEDIMIENTOS DE VBSCRIPT ....................................................................................................... 58 TRATAMIENTO DE ERRORES EN VBSCRIPT........................................................................................ 59 DIRECTIVAS DE PREPROCESAMIENTO ................................................................................................ 62 EXPRESIONES REGULARES EN VBSCRIPT.......................................................................................... 63 INTRODUCCIN A LA POO ................................................................................................................. 67

    Programacin Orientada a Objetos .............................................................................................. 67 Objetos........................................................................................................................................... 67 Clases............................................................................................................................................. 68

    CLASES Y OBJETOS EN VBSCRIPT...................................................................................................... 68 EVENTOS Y PROPIEDADES EN VBSCRIPT........................................................................................... 70 OTRAS FUNCIONES EN VBSCRIPT...................................................................................................... 74

    Funciones para consultar variables .............................................................................................. 74 Funciones utilizadas para la manipulacin de cadenas................................................................ 74 Funciones matemticas ................................................................................................................. 75 Funciones para dar formatos ........................................................................................................ 75 Funciones de fecha/hora................................................................................................................ 75 Funciones que devuelven informacin del motor de secuencias de comandos ............................. 76

    COMPONENTES DE VBSCRIPT............................................................................................................ 76 PRIMEROS PASOS CON ASP 3.0 ................................................................................................... 79

    OBJETIVO DE ESTE TEMA ................................................................................................................... 79 OBJETOS INTEGRADOS, MODELO DE OBJETOS DE ASP 3.0................................................................ 79 EQUIPO NECESARIO............................................................................................................................ 82 EL SERVIDOR WEB.............................................................................................................................. 82 LA HERRAMIENTA DE DESARROLLO .................................................................................................. 84

    MODELO DE OBJETOS DE ASP: EL OBJETO RESPONSE ..................................................... 89 DEFINICIN DEL OBJETO RESPONSE .................................................................................................. 89 COLECCIONES DEL OBJETO RESPONSE............................................................................................... 89 PROPIEDADES DEL OBJETO RESPONSE............................................................................................... 93

    Buffer ............................................................................................................................................. 94 ContentType................................................................................................................................... 95 Expires ........................................................................................................................................... 96 Status ............................................................................................................................................. 96 CacheControl................................................................................................................................. 97 CharSet .......................................................................................................................................... 97 PICS............................................................................................................................................... 98 IsClientConnected.......................................................................................................................... 99

    MTODOS DEL OBJETO RESPONSE ..................................................................................................... 99 Clear, Flush y End....................................................................................................................... 100 Write ............................................................................................................................................ 101 Redirect........................................................................................................................................ 102 AddHeader................................................................................................................................... 103 AppendToLog............................................................................................................................... 103 BynaryWrite................................................................................................................................. 104

    MODELO DE OBJETOS DE ASP: EL OBJETO REQUEST ..................................................... 105

  • 7

    DEFINICIN DEL OBJETO REQUEST.................................................................................................. 105 COLECCIONES DEL OBJETO REQUEST .............................................................................................. 106 FORMULARIOS HTML ....................................................................................................................... 107 COLECCIONES DEL OBJETO REQUEST: FORM................................................................................... 108 COLECCIONES DEL OBJETO REQUEST: QUERYSTRING..................................................................... 111 COLECCIONES DEL OBJETO REQUEST: SERVER VARIABLES ............................................................ 112 COLECCIONES DEL OBJETO REQUEST: COOKIES ............................................................................. 117 COLECCIONES DEL OBJETO REQUEST: CLIENTCERTIFICATE ........................................................... 120 MTODOS Y PROPIEDADES DEL OBJETO REQUEST........................................................................... 122

    MODELO DE OBJETOS DE ASP: EL OBJETO APPLICATION ............................................ 123 APLICACIONES ASP......................................................................................................................... 123 DEFINICIN DEL OBJETO APPLICATION ........................................................................................... 127 COLECCIONES DEL OBJETO APPLICATION ....................................................................................... 129 MTODOS DEL OBJETO APPLICATION .............................................................................................. 132 EVENTOS DEL OBJETO APPLICATION ............................................................................................... 133 EL FICHERO GLOBAL.ASA ............................................................................................................ 134

    MODELO DE OBJETOS DE ASP: EL OBJETO SESSION ....................................................... 139 DEFINICIN DEL OBJETO SESSION ................................................................................................... 139 COLECCIONES DEL OBJETO SESSION................................................................................................ 142 PROPIEDADES DEL OBJETO SESSION ................................................................................................ 144 MTODOS DEL OBJETO SESSION ...................................................................................................... 147 EVENTOS DEL OBJETO SESSION ....................................................................................................... 148

    MODELO DE OBJETOS DE ASP: EL OBJETO SERVER ........................................................ 151 DEFINICIN DEL OBJETO SERVER .................................................................................................... 151 PROPIEDADES DEL OBJETO SERVER................................................................................................. 151 MTODOS DEL OBJETO SERVER....................................................................................................... 153

    CreateObject................................................................................................................................ 153 MapPath ...................................................................................................................................... 155 HTMLEncode............................................................................................................................... 156 URLEncode.................................................................................................................................. 156 URLPathEncode .......................................................................................................................... 157 Execute......................................................................................................................................... 158 Transfer ....................................................................................................................................... 160 GetLastError................................................................................................................................ 161

    MODELO DE OBJETOS DE ASP: EL OBJETO OBJECTCONTEXT..................................... 165 DEFINICIN DEL OBJETO OBJECTCONTEXT ..................................................................................... 165 MTODOS DEL OBJETO OBJECTCONTEXT ........................................................................................ 167 EVENTOS DEL OBJETO OBJECTCONTEXT ......................................................................................... 168

    MODELO DE OBJETOS DE ASP: EL OBJETO ASPERROR .................................................. 171 DEFINICIN DEL OBJETO ASPERROR .............................................................................................. 171 PROPIEDADES DEL OBJETO ASPERROR ........................................................................................... 172 TRATAMIENTO DE ERRORES CON EL OBJETO ASPERROR................................................................ 172

    COMPONENTES DE VBSCRIPT .................................................................................................. 179 COMPONENTES DE VBSCRIPT.......................................................................................................... 179 EL OBJETO DICTIONARY .................................................................................................................. 180 OBJETO FILESYSTEMOBJECT........................................................................................................... 184

    Mtodos para trabajar con unidades de disco ............................................................................ 184 Mtodos para trabajar con carpetas ........................................................................................... 185 Mtodos para trabajar con ficheros ............................................................................................ 187

  • 8

    EL OBJETO DRIVE ............................................................................................................................ 189 EL OBJETO FOLDER.......................................................................................................................... 192 EL OBJETO FILE................................................................................................................................ 195 OBJETO TEXTSTREAM...................................................................................................................... 198

    COMPONENTES DE SERVIDOR ................................................................................................. 205 INTRODUCCIN ................................................................................................................................ 205 COMPONENTE AD ROTATOR............................................................................................................ 207 COMPONENTE FUNCIONES DEL NAVEGADOR................................................................................... 211 COMPONENTE NEXTLINK................................................................................................................. 214 COMPONENTE CONTENT ROTATOR ................................................................................................. 217 COMPONENTE PAGECOUNTER ......................................................................................................... 220 COMPONENTE COUNTERS................................................................................................................ 222 COMPONENTE MYINFO.................................................................................................................... 224 COMPONENTE TOOLS....................................................................................................................... 225 COMPONENTE PERMISSIONCHECKER .............................................................................................. 227 COMPONENTE STATUS..................................................................................................................... 229 COMPONENTE DE REGISTRO DE IIS.................................................................................................. 230 COMPONENTES DE TERCERAS PARTES ............................................................................................. 235

    ASP E INTERNET INFORMATION SERVER 5.0 ...................................................................... 241 INTRODUCCIN ................................................................................................................................ 241 EL SERVIDOR WEB INTERNET INFORMATION SERVER 5.0 ............................................................... 242 INSTALANDO IIS 5.0 ........................................................................................................................ 242 NOVEDADES DE IIS 5.0.................................................................................................................... 244 EL ADMINISTRADOR DE SERVICIOS DE INTERNET............................................................................ 245 ELEMENTOS DE IIS 5.0..................................................................................................................... 249 ADMINISTRACIN DEL SITIO WEB.................................................................................................... 250

    Sitio Web...................................................................................................................................... 250 Directorio particular ................................................................................................................... 252 Documentos ................................................................................................................................. 253 Operadores .................................................................................................................................. 254 Errores personalizados................................................................................................................ 255 Rendimiento ................................................................................................................................. 255 Seguridad de directorios.............................................................................................................. 256 Filtros ISAPI................................................................................................................................ 257 Encabezados HTTP ..................................................................................................................... 258 Extensiones de servidor ............................................................................................................... 259

    LA APLICACIN WEB........................................................................................................................ 260 CDONTS Y ASP ................................................................................................................................ 271

    INTRODUCCIN ................................................................................................................................ 271 MODELO DE OBJETOS DE CDONTS................................................................................................. 273 EL OBJETO NEWMAIL....................................................................................................................... 274 EL OBJETO SESSION ......................................................................................................................... 279 EL OBJETO FOLDER.......................................................................................................................... 282 EL OBJETO MESSAGE ....................................................................................................................... 285

    INTRODUCCIN A ACTIVEX DATA OBJECTS (ADO).......................................................... 295 INTRODUCCIN ................................................................................................................................ 295 OLE DB........................................................................................................................................... 295 CARACTERSTICAS GENERALES DE ADO......................................................................................... 298 MODELO DE OBJETOS DE ADO ........................................................................................................ 299 PRINCIPALES OBJETOS DE ADO....................................................................................................... 300

  • 9

    UDA................................................................................................................................................. 303 INSTALACIN DE SQL SERVER 7...................................................................................................... 304

    Standard....................................................................................................................................... 304 Enterprise .................................................................................................................................... 304 Desktop o SBS (Small Business Server)....................................................................................... 304

    ACCESO A DATOS CON ADO: CONNECTION ........................................................................ 309 INTRODUCCIN ................................................................................................................................ 309 EL OBJETO CONNECTION ................................................................................................................. 309 REALIZACIN DE UNA CONEXIN.................................................................................................... 311 CONFIGURACIN DE LA CONEXIN.................................................................................................. 315 EJECUTANDO COMANDOS SOBRE LA CONEXIN.............................................................................. 317 TRANSACCIONES.............................................................................................................................. 320 COLECCIONES DEL OBJETO CONNECTION........................................................................................ 322 CERRANDO LA CONEXIN................................................................................................................ 324

    ACCESO A DOTOS CON ADO: COMMAND.............................................................................. 325 EL OBJETO COMMAND ..................................................................................................................... 325 CREACIN DEL OBJETO COMMAND.................................................................................................. 326 LA COLECCIN PARAMETERS .......................................................................................................... 329 EJECUCIN DE COMANDOS .............................................................................................................. 333 TRATAMIENTO DE ERRORES EN ADO.............................................................................................. 342

    ACCESO A DATOS CON ADO: RECORDSET I......................................................................... 347 EL OBJETO RECORDSET ................................................................................................................... 347 TIPOS DE RECORDSET ...................................................................................................................... 350 CREACIN Y APERTURA DE OBJETOS RECORDSET ........................................................................... 357 LA COLECCIN FIELDS..................................................................................................................... 360

    ACCESO A DATOS CON ADO: RECORDSET II ....................................................................... 367 RECORRIENDO EL RECORDSET ........................................................................................................ 367 MODIFICACIN DEL RECORDSET..................................................................................................... 373 CONSULTANDO EL RECORDSET ....................................................................................................... 381 PAGINACIN DEL RECORDSET ......................................................................................................... 387

    ADO 2.5: RECORD........................................................................................................................... 393 INTRODUCCIN ................................................................................................................................ 393 ACTIVEX DATA OBJECTS 2.5 (ADO 2.5) ........................................................................................ 393 EL OBJETO RECORD ......................................................................................................................... 395

    Creacin y apertura del objeto Record ....................................................................................... 396 La coleccin Fields...................................................................................................................... 401 Manipulacin de objetos Record ................................................................................................. 406

    EL MTODO GETCHILDREN.............................................................................................................. 410 ADO 2.5: STREAM........................................................................................................................... 415

    INTRODUCCIN ................................................................................................................................ 415 EL OBJETO STREAM ......................................................................................................................... 415 CREACIN Y APERTURA DEL OBJETO STREAM ................................................................................ 417 MANIPULACIN DEL OBJETO STREAM............................................................................................. 420

    ASP Y VISUAL INTERDEV 6.0...................................................................................................... 427 INTRODUCCIN ................................................................................................................................ 427 PROYECTOS Y SOLUCIONES ............................................................................................................. 428 CREAR UN PROYECTO WEB.............................................................................................................. 430 EL ACCESO A DATOS A TRAVS DE VISUAL INTERDEV ................................................................... 435

  • 10

    Agregar una conexin a datos ..................................................................................................... 435 La vista de datos .......................................................................................................................... 440 El Diseador de Consultas .......................................................................................................... 441 El Diseador de bases de datos................................................................................................... 442

    CONTROLES EN TIEMPO DE DISEO ................................................................................................. 443 PROYECTO DE BASE DE DATOS ........................................................................................................ 448 DESARROLLO DE APLICACIONES WEB EN EQUIPO............................................................................ 450 DISTRIBUIR LA APLICACIN............................................................................................................. 452

    ASP Y SERVICIOS DE COMPONENTES .................................................................................... 455 INTRODUCCIN ................................................................................................................................ 455 CREANDO COMPONENTES ACTIVEX SERVER.................................................................................. 455 INTRODUCCIN A COM ................................................................................................................... 459 ANTECEDENTES: MICROSOFT TRANSACTION SEVER ...................................................................... 460 CARACTERSTICAS DE SERVICIOS DE COMPONENTES ...................................................................... 461 EL EXPLORADOR DE SERVICIOS DE COMPONENTES ......................................................................... 463 GESTIN DE TRANSACCIONES.......................................................................................................... 468 PGINAS ASP TRANSACCIONALES. EJEMPLO DE DESARROLLO...................................................... 470

    Ejemplo de desarrollo transaccional con ASP y Servicios de componentes ............................... 471

  • Introduccin a ASP, Active Server Pages

    Antecedes de ASP: la especificacin CGI ASP no es una idea realmente nueva, encontramos un antecedente muy importante y muy utilizado en Internet denominado comnmente scritps CGI.

    Las siglas CGI se corresponden en ingls a Common Gateway Interface, es decir, interfaz de pasarela comn. Vamos a ir viendo paso a paso que significan cada unas de estas palabras, que realmente son las que definen el concepto de CGI.

    La especificacin Common Gateway Interface permite a los servidores Web ejecutar y comunicarse con otros programas, llamados programas CGI, e incorporar la salida de los mismos a los grficos, texto o audio enviados a un navegador Web.

    La programacin en CGI implica disear programas que se ejecutarn en el entorno de Internet, y ms concretamente en el entorno World Wide Web.

    El programa CGI se ejecutar dentro del entorno ofrecido por el servidor Web que lo contiene. El servidor Web crear una informacin especial para el CGI cuando pasa a ejecutarlo, y el servidor esperar una respuesta del programa CGI como resultado de su ejecucin. Es esta comunicacin o interaccin entre el servidor Web y el programa CGI es lo que define realmente la especificacin CGI.

    Los programas CGI tambin se suelen denominar scripts CGI, esto es debido a que los primeros programas CGI fueron escritos utilizando scripts de la shell de UNIX y Perl.

    Antes de que el programa CGI se ejecute, el servidor Web que lo contiene se encargar de crear un entorno con el que podr interactuar el programa CGI. Este entorno comprende la traduccin de

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    12

    cabeceras de peticiones del protocolo HTTP (HyperText Transfer Protocol) en variables de entorno a las que podr acceder nuestro programa CGI. Estas variables de entorno contendrn una informacin muy variada acerca del cliente que ha realizado la peticin o del propio servidor Web en el que se ejecuta el programa CGI.

    Una vez que el servidor ha iniciado la ejecucin del programa CGI esperar un resultado de la ejecucin del mismo. Este resultado suele ser una serie de encabezados de respuesta del protocolo HTTP y cdigo HTML. Estos encabezados y cdigo HTML sern recogidos por el servidor Web y enviados al cliente que realiz la peticin, es decir, al navegador o cliente Web.

    Despus de ver esta pequea introduccin podemos definir un programa CGI como un programa que se encuentra en un servidor Web y que recibe peticiones desde un cliente Web travs del servidor Web. Y gracias al entorno que le ofrece el servidor Web el programa CGI puede obtener informacin sobre la peticin realizada, adems de otra informacin til, que le permitir procesar la peticin. La respuesta a esta peticin ser generada por el programa CGI en forma de cabeceras de respuesta del protocolo HTTP y etiquetas del lenguaje HTML (HyperText Markup Language), que sern enviadas por el servidor Web al navegador Web que realiz la peticin.

    CGI no es un lenguaje de programacin sino que es una especificacin. La especificacin CGI va a realizar la funcin de interfaz o pasarela entre el servidor Web y los programas CGI, haciendo uso del protocolo HTTP y el lenguaje de hipertexto HTML.

    Un programa CGI ser aquel que cumpla la especificacin CGI, es decir, interactuar con el servidor atendiendo a unos principios establecidos por la especificacin CGI.

    CGI ya lleva siendo utilizado muchos aos en la red y todava se sigue utilizando en muchos sitios Web a la hora de acceder a datos o construir pginas dinmicas, pero cada vez ms los sitios Web van adoptando la utilizacin de Active Server Pages.

    Active Server Pages (ASP) es el nombre que reciben las pginas activas de servidor, es decir, las pginas que se ejecutan en el servidor. ASP se basa en la especificacin CGI, podemos considerar que ASP es una evolucin de la especificacin CGI.

    Definicin de ASP La filosofa de ASP resulta muy sencilla, en pocas palabras se puede definir de la siguiente forma: las pginas ASP, tambin llamadas pginas activas, son pginas que contienen cdigo HTML, script de cliente y un script que se ejecuta en el servidor, dando como resultado cdigo HTML. Por lo tanto al cargar una pgina ASP en nuestro navegador, en realidad no estamos cargando la pgina ASP como tal, sino el resultado de la ejecucin de la pgina ASP, es decir la salida de la pgina ASP, y como se ha apuntado anteriormente se trata de cdigo HTML. Es decir, son pginas que se ejecutan en el servidor enviando como resultado al cliente cdigo HTML.

    Antes de seguir vamos a definir de forma sencilla lo que se considera un lenguaje de script o de secuencia de comandos. Un lenguaje de script es un subconjunto de otro lenguaje ms general y que se utiliza para un entorno muy determinado, en este caso el entorno es la Web.

    Una pgina ASP podr contener los siguientes elementos: texto, componentes ActiveX, cdigo HTML y comandos de script. Este script puede ser de dos tipos: script de cliente o script de servidor. El script de servidor es la nueva idea que introduce ASP, se debe tener en cuenta que en el script de servidor se tiene acceso a diferentes objetos y no est orientado a eventos.

  • Grupo EIDOS 1. Introduccin a ASP, Active Server Pages

    13

    El script de servidor utilizado en ASP utiliza la misma sintaxis que el script de cliente, la diferencia est en que con ASP el script de servidor es compilado y procesado por el servidor Web antes de que la pgina sea enviada al navegador.

    ASP no es un lenguaje de script, ASP ofrece un entorno para procesar scripts que se incorporan dentro de pginas HTML, es decir, un entorno de procesamiento de scripts de servidor.

    La propia Microsoft define ASP de la siguiente manera: "...es un entorno de secuencias de comandos en el lado del servidor que puede utilizar para crear y ejecutar aplicaciones de servidor Web dinmicas, interactivas y de alto rendimiento...".

    Realmente, ASP es un componente (asp.dll) que se instala en un servidor Web y cuya misin es la de procesar ficheros que terminan con la extensin .asp y transmitir el resultado al cliente que solicit la pgina ASP.

    El script de servidor incluido en una pgina ASP empieza a ejecutarse cuando un navegador solicita el archivo .asp al servidor Web. El servidor Web llama entonces a ASP, el cual lee el archivo solicitado de arriba a abajo, ejecuta los comandos y enva una pgina HTML al explorador. ASP incluye un motor de interpretacin de scripts del lado del servidor.

    Las pginas ASP son ficheros con la extensin asp. Crear un fichero .asp resulta muy sencillo, se puede crear a partir de una pgina HTML existente, simplemente renombrando el fichero .html o .htm a un fichero .asp. Para hacer esta pgina ASP disponible para los usuarios de la Web, el fichero .asp se debe almacenar en un directorio de publicacin en Internet, se debe tener en cuenta que el directorio virtual asociado debe tener permisos de ejecucin de secuencias de comandos.

    La ltima versin de la tecnologa ASP es la versin 3.0. Esta versin es muy similar a su predecesora, y todas las nuevas caractersticas que presenta se deben a que se utiliza una nueva versin del servidor Web (Internet Information Services 5.0), recordemos que las pginas ASP son procesadas por el servidor.

    En el tema siguiente se ofrece una comparativa de ASP 2.0 con ASP 3.0 comentando brevemente todas sus novedades, se recomienda la lectura del segundo captulo sobretodo a los alumnos que ya conozcan ASP 2.0.

    Aplicaciones ASP Una aplicacin basada en ASP consta de un directorio virtual en un servidor Web y de todos los subdirectorios y archivos contenidos en l. Una aplicacin puede ser una pgina principal sencilla, o bien puede estar formada por un conjunto completo de pginas interrelacionadas entre s.

    Al usar aplicaciones en ASP es posible mantener un estado, es decir, se tiene la capacidad de mantener informacin. Dentro de una aplicacin ASP se pueden mantener dos tipos de estado:

    Estado de la aplicacin, en la que toda la informacin relativa a una aplicacin est disponible para todos los usuarios de la misma.

    Estado de sesin, en la que la informacin slo est disponible para un usuario o sesin especficos. Una sesin por lo tanto, pertenece a un solo usuario.

    Un ejemplo prctico de una aplicacin ASP puede ser este mismo sitio Web. Almagesto est completamente realizado con pginas ASP constituyendo por lo tanto una aplicacin ASP, este sitio

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    14

    Web demuestra los diferentes usos que puede tener la tecnologa ASP y las necesidades que puede cubrir.

    Las aplicaciones ASP no son aplicaciones al uso, ya que en realidad no se dispone de un ejecutable sino de un conjunto de pginas, imgenes y recursos, por lo tanto se trata de aplicaciones muy particulares que requieren para su ejecucin de un servidor Web que soporte las pginas ASP.

    Aportaciones de ASP En este apartado se comentan las aportaciones que ofrece ASP desde su primera versin, es decir, se trata de aportaciones muy genricas de la tecnologa ASP.

    Para entender las aportaciones que ofrecen las pginas ASP se deben tener en cuenta una serie de caractersticas del protocolo HTTP (HyperText Transfer Protocol). Se dice que le protocolo HTTP es un protocolo sin estado, es decir, no se puede mantener un estado entre diferentes peticiones. El protocolo HTTP se basa en el paradigma cliente/servidor o peticin/respuesta.

    Se deben tener en cuenta un par de puntos a la hora de establecer la comunicacin entre clientes (navegadores Web) y servidores (servidores Web) del protocolo HTTP:

    Despus de realizar una peticin el cliente se desconecta del servidor y espera una respuesta. El servidor debe restablecer la conexin despus de que haya procesado la peticin.

    El servidor y el cliente slo se tienen en cuenta durante la conexin, despus, se olvidan el uno del otro. Por esta razn, ni el cliente ni el servidor pueden retener informacin entre diferentes peticiones o a travs de diferentes pginas Web. Sin embargo, ASP permite al servidor almacenar informacin, o mantener el estado, entre las diferentes peticiones del cliente.

    El cliente y el servidor Web se comunican utilizando cabeceras HTTP, estas cabeceras son colecciones de datos que intercambian el cliente y el servidor para asegurar que la transaccin es coherente y completa. Como peticin del usuario se enva una cabecera y el servidor interpreta esta cabecera y enva una respuesta HTTP cuyo cuerpo sera el contenido del recurso demandado por el cliente.

    ASP permite al desarrollador intervenir en todo el proceso de comunicacin del protocolo HTTP. Los objetos integrados dentro de ASP Request y Response interactan con las peticiones y respuestas del protocolo HTTP, respectivamente.

    Dentro de los objetos integrados de ASP podemos encontrar la forma de acceder al servidor, obtener informacin del mismo, as como del usuario. Y tambin se permite, como se haba comentado anteriormente, mantener el estado entre diferentes peticiones del cliente.

    Se puede considerar ASP como una nueva (aunque ya no tan nueva) aproximacin a la creacin de pginas web complejas que pueden acceder a bases de datos o a otros objetos del servidor. Ofrece lo siguiente:

    Independencia del navegador, ASP puede ejecutar complejas operaciones en el servidor y enviar solamente los resultados al cliente.

    Construccin de pginas basadas en bases de datos que permiten realizar operaciones sobre las bases de datos del servidor de forma bastante sencilla.

    Es una de las soluciones ms verstiles para el desarrollo de aplicaciones en el entorno de Internet/Intranet.

  • Grupo EIDOS 1. Introduccin a ASP, Active Server Pages

    15

    Desarrollo de complejas aplicaciones Web.

    Facilidad de uso de componentes de terceras partes ejecutndose en el servidor, es decir, se pueden utilizar componentes para liberarnos de realizar tareas complejas. Estos componentes se deben registrar en el servidor y podrn ser utilizados desde el script correspondiente. Estos componentes se denominan componentes ActiveX de servidor.

    Posibilidad de definir pginas ASP transaccionales para realizar todas las operaciones contenidas en la misma dentro de una transaccin.

    Una tecnologa en constante evolucin y mejora.

    A lo largo del curso se profundizar ms en todos estos puntos, aqu se han comentado simplemente los ms evidentes y tambin para poseer una visin general de lo que supone la tecnologa ASP.

    Requerimientos de ASP 3.0 En este apartado se va a comentar los distintos requerimientos que presentaban cada una de las versiones de ASP, desde la ms antigua hasta la presente versin.

    La primera versin de las pginas activas (ASP 1.0), se incorpor como un aadido o ampliacin al servidor Web del sistema operativo Microsoft Windows NT Server 4.0 llamado Internet Information Server 3.0 (IIS 3.0). Este servidor Web era bastante interesante pero todava era demasiado rudimentario y presenta limitaciones y problemas.

    La primera versin de ASP era bastante interesante ya que se pasaba de la complejidad de los CGIs (Common Gateway Interface) a la sencillez de las pginas activas. ASP 1.0 supuso el inicio del desarrollo de aplicaciones Web con productos basados en tecnologa Microsoft.

    La versin 2.0 de Active Server Pages la encontramos en el servidor Web de Microsoft Internet Information Server 4 (IIS 4) y en el servidor Personal Web Server 4 (PWS 4). Ambos servidores los podemos instalar desde la extensin del sistema operativo de Windows NT denominada Windows NT 4.0 Option Pack, o ms comnmente Option Pack. Esta extensin del sistema operativo no slo es aplicable a Windows NT, sino que tambin la podemos utilizar para Windows 95/98.

    Se debe sealar que el servidor IIS 4 es el servidor Web para plataformas Windows NT Server 4.0, y el servidor Personal Web Server 4.0 es el servidor Web para plataformas Windows 95/98 y Windows NT Workstation 4.0.

    IIS 4 adems de ofrecer la nueva versin de la tecnologa ASP permite configurar y administrar de forma sencilla nuestras aplicaciones ASP. Adems la figura de la aplicacin ASP se encuentra mucho ms clara que en la versin 1.0 de las pginas ASP, el servidor Web nos indicar claramente el alcance de una aplicacin ASP determinada.

    ASP 2.0 es una clara y necesaria evolucin de ASP 1.0 incorporando la posibilidad de realizar pginas ASP transaccionales, aadiendo para ello un nuevo objeto integrado denominado ObjectConext (objeto de contexto). ASP 2.0 ofrece un entorno ms robusto y potente que la versin anterior para el desarrollo de aplicaciones Web.

    Y por fin llegamos al presente, ASP 3.0. Para poder utilizar ASP tenemos que disponer de cualquiera de las versiones del sistema operativo Windows 2000 (Professional, Server y Advanced Server). En este caso no se trata nicamente de una nueva versin del servidor Web sino tambin de una nueva versin del sistema operativo Windows.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    16

    ASP 3.0 se encuentra contenido en la nueva versin del servidor Web de Microsoft, llamado Internet Information Server 5.0 o tambin Internet Information Services 5.0 en cualquier caso lo llamaremos IIS 5.0. El servidor Web IIS 5.0 se encuentra formando parte del sistema operativo Windows 2000 como un componente ms, de esta forma Microsoft integra la funcionalidad del servidor Web dentro de su plataforma Windows 2000.

    ASP 3.0 podemos decir que es la evolucin lgica de ASP 2.0, no supone ningn cambio radical, ofrece una serie de mejoras y novedades (que se comentarn el siguiente captulo para los lectores que ya conozcan ASP 2.0). Se aade un nuevo objeto integrado llamado ASPError, este nuevo objeto es utilizado para el tratamiento de errores.

    Sintaxis de ASP Como se ha comentado anteriormente ASP no es un lenguaje de script, sino que ofrece un entorno para la ejecucin de estos lenguajes que se encuentran dentro de pginas ASP. ASP posee una sintaxis para poder distinguir cada uno de los elementos que nos podemos encontrar dentro de una pgina ASP.

    Encerrado dentro de los delimitadores se va a encontrar todo el cdigo de script de servidor, de esta forma el comando asigna el valor Pepe a la variable nombre; y dentro de los delimitadores se encuentran expresiones de salida, as por ejemplo la expresin enviar al navegador el valor Pepe, es decir, el valor actual de la variable, ms adelante se ver una equivalencia de estos delimitadores con un mtodo de un objeto integrado de ASP.

    Entre los delimitadores se puede y debe incluir varias sentencias en distintas lneas de cdigo del lenguaje de secuencias de comandos, sin embargo los delimitadores slo podemos encerrar una sentencia por lnea.

    Entre los delimitadores de ASP se puede incluir cualquier tipo de expresin vlida en el lenguaje de script principal. Por ejemplo la lnea que muestra el Cdigo fuente 1 genera un texto que contiene la hora actual del servidor.

    Esta pgina se actualiz a las

    Cdigo fuente 1

    En este caso el servidor Web devuelve al navegador el valor de la funcin Now de VBScript junto con el texto.

    Dentro de los delimitadores de script de servidor se pueden encontrar tambin instrucciones del lenguaje de script correspondiente, as por ejemplo puede aparecer una instruccin If...Then...Else del lenguaje VBScript como se puede apreciar en el Cdigo fuente 2.

  • Grupo EIDOS 1. Introduccin a ASP, Active Server Pages

    17

    Cdigo fuente 2

    En el cdigo anterior se comprueba si la variable nombre tiene algn valor, si lo tiene saludamos con el valor de la variable, mostrando el saludo en color verde.

    Tambin se puede incluir cdigo HTML entre las instrucciones del script. Por ejemplo la secuencia de comandos del Cdigo fuente 3, mezcla HTML con una instruccin condicional y produce el mismo resultado que la secuencia del Cdigo fuente 2.

    Nombre desconocido

    Hola amigo

    Cdigo fuente 3

    Para poder realizar una lectura ms sencilla del cdigo ASP se recomienda utilizar los delimitadores de script de servidor encerrando varias lneas de cdigo en lugar de un par de delimitadores por cada lnea. As, en lugar de escribir el cdigo que indica el Cdigo fuente 4, se debera escribir lo que muestra el Cdigo fuente 5.

    Cdigo fuente 4

    Cdigo fuente 5

    En el caso de tener lnea simple de script, los delimitadores se deben encontrar en la misma lnea.

    Cdigo fuente 6

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    18

    Objetos integrados en ASP 3.0 ASP en su versin 3.0 contiene siete objetos integrados que liberan al programador de la realizacin de tareas complejas. Estos seis objetos no requieren que sean instanciados siempre se encuentran disponibles en nuestras pginas ASP.

    Estos objetos son los siguientes: Application, Session, Request, Response, Server, ASPError y ObjectContext. Cada uno de estos objetos posee una serie de mtodos y propiedades para poder ser utilizados por el script de servidor, adems cada objeto posee una funcin determinada, bsicamente estas funciones son las siguientes:

    Request: obtencin de informacin del cliente.

    Response: envo de informacin al cliente.

    Server: acceso a los recursos del servidor, como puede ser la creacin de componentes .

    Session: almacena informacin sobre la sesin de un usuario.

    Application: almacena informacin comn para todos los usuarios de la aplicacin ASP.

    ObjectContext: gestin de transacciones en pginas ASP.

    ASPError: contiene informacin detallada acerca del ltimo error que se ha producido.

    Cada uno de estos objetos se explicarn con una mayor profundidad en su captulo correspondiente.

    La sintaxis utilizada para poder acceder a los mtodos y propiedades de los objetos depende del lenguaje de script que estemos utilizando. Debido que el lenguaje de script por defecto de ASP es VBScript (subconjunto de Visual Basic) en este curso nos vamos a centrar en este script.

    Los objetos Request y Response contienen colecciones. Una coleccin es un conjunto de elementos de informacin relacionados y que se accede a ellos de una misma forma. Se puede acceder a cada elemento de una coleccin mediante el bucle For...Each. La utilizacin de colecciones se ver en detenimiento en los captulos dedicados a estos dos objetos integrados.

    Un mtodo es un procedimiento que acta sobre un objeto, la sintaxis para poder invocar un mtodo de un objeto es la siguiente:

    Objeto.metodo parmetros

    Donde el tipo de parametros depender del mtodo invocado.

    Una propiedad es un atributo de un objeto. Las propiedades son caractersticas de un objeto que describen su estado, as por ejemplo un objeto podra tener las caractersticas tamao, nombre, color, etc. Para obtener el valor de una propiedad utilizamos la sintaxis siguiente:

    Objeto.propiedad

    Y para asignarle un valor a una propiedad de un objeto debemos utilizar la sintaxis

    Objeto.propiedad=valor

    Donde valor depende de la propiedad del objeto.

  • Grupo EIDOS 1. Introduccin a ASP, Active Server Pages

    19

    Componentes de servidor ASP incluye una serie de componentes ActiveX de servidor (o componentes de servidor), llamados componentes ActiveX Server, anteriormente conocidos como servidores de Automatizacin. Estos componentes estn diseados para ejecutarse en un servidor Web y contienen una serie de funciones bastante tiles para que el programador no tenga que construirlas, una de estas funciones puede ser el acceso a bases de datos. Estos componentes los invocaremos desde nuestras pginas ASP.

    No se deben confundir los componentes de servidor con los objetos integrados en ASP.

    Para poder tener acceso a alguno de los componentes ActiveX de servidor primero se deber crear una instancia del componente correspondiente. Una vez creada la instancia, se pueden usar los mtodos asociados al componente o establecer y leer sus propiedades.

    Los componentes ActiveX Server que incluye ASP en su versin 3.0 son los siguientes:

    Componente de acceso a bases de datos, ADO (ActiveX Data Objects). A travs de la utilizacin de este componente se puede ofrecer acceso a bases de datos desde una pgina ASP, as por ejemplo, se puede mostrar el contenido de una tabla, permitir que los usuarios realicen consultas y otras operaciones sobre una base de datos.

    Componente Ad Rotator. Este componente permite mostrar una serie de imgenes alternativas con un vnculo a otra direccin desde la imagen presentada. Este componente se suele utilizar para mostrar diferentes anuncios de forma alternativa dentro de una pgina ASP.

    Componente Funciones del explorador. A travs de este componentes podemos recuperar datos acerca del tipo de navegador del cliente y que capacidades o funciones tiene.

    Componente vnculo de contenidos. Facilita el desplazamiento lgico entre las diferentes pginas ASP de una aplicacin ASP.

    Componente Content Rotator (rotador de contenidos). Este componente permite hacer rotaciones de cadenas de contenido HTML en una pgina.

    Componente Page Counter (contador de pginas). Permite llevar una cuenta del nmero de veces que se ha accedido a una pgina determinada dentro de nuestro sitio Web.

    Componente Counters. A travs de este componente podremos almacenar, crear, incrementar y consultar cualquier contador.

    Componente MyInfo. Nos permite almacenar informacin personal que ser ofrecida por el administrador del sitio Web.

    Componente Tools. Es el denominado componente de utilidades. Ofrece una serie de funciones diversas, como la generacin de nmeros aleatorios o la comprobacin de la existencia de un fichero en el servidor.

    Componente Permission Checker. A travs de este componente podremos determinar si a un usuario se le ha dado permisos para acceder a un fichero determinado.

    Componente Status. Este componente, de momento, nicamente est disponible para el servidor Personal Web Server en plataformas Macintosh, resulta extrao pero es as. Nos ofrece una informacin variada acerca del estado del servidor Web.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    20

    Componente de registro de IIS. Mediante este componente tenemos acceso a la informacin y manipulacin de los ficheros de registro (log) generados por el servidor Web IIS 5.0.

    En el curso se ofrece un captulo monogrfico en el que se muestra la utilizacin de todos estos componentes de servidor que vienen incluidos en ASP.

    Adems de todos estos componentes, el programador puede crear sus propios componentes ActiveX Server. Estos componentes se pueden desarrollar en lenguajes de programacin como Visual Basic, Java o C++, una vez creado el componente se transforma a una DLL que se registrar en el servidor.

    Todos los componentes de servidor que no es encuentran incluidos en ASP deben ser registrados. Una vez registrado el componente en el servidor Web lo podemos instanciar desde el lenguaje de secuencias de comandos de una pgina ASP, al igual que hacamos con los componentes que vienen por defecto con ASP.

    Veremos en el curso un captulo dedicado completamente a la creacin de nuestros propios componentes con Visual Basic 6.0.

    Tambin se puede adquirir estos componentes a terceros, existen empresas que se dedican al diseo de componentes para que sean utilizados desde pginas ASP.

    Visin general de ASP En este apartado se muestra un esquema en el que se puede observar cmo se encuentra estructurada la arquitectura de ASP y los componentes que intervienen dentro de ella. Con la Figura 1. se pretende dar una visin global del entorno ASP.

    Figura 1. Esquema general del entorno ASP.

    En el esquema podemos diferenciar las principales partes de las que se compone el entorno ASP:

  • Grupo EIDOS 1. Introduccin a ASP, Active Server Pages

    21

    Internet Information Server: es el servidor Web en el que se ejecutarn las pginas ASP y devolver, como resultado de la ejecucin de las mismas, cdigo HTML

    Los intrpretes de los lenguajes de script: estos intrpretes tratarn el script de servidor.

    Componentes ActiveX Server: son los componentes de servidor que se incluyen con ASP y que ya se han visto en el apartado anterior.

    Componentes de usuario: son componentes ActiveX Server desarrollados y creados por terceras partes o por nosotros mismos.

    ActiveX Data Objects: aunque estaran dentro de los componentes ActiveX Server se separan debido a su importancia y complejidad. Nos permiten realizar el acceso a bases de datos de forma potente y sencilla.

    Hola mundo con ASP Una vez realizada la introduccin a ASP y su filosofa, vamos a dejar la teora un poco de lado y vamos a escribir nuestra primera pgina ASP completa, realizando para ello el famoso programa Hola Mundo.

    Primero se va a mostrar como sera el cdigo completo y a continuacin se va a ir comentando cada una de las lneas.

    1.2.3.4.5.Hola Mundo6.7.8.9.11. Hola Mundo12.13.14.15.

    Cdigo fuente 7

    La ejecucin de esta pgina ASP produce la salida que muestra la Figura 2, es decir, genera el documento HTML, que vemos en ella.

    Figura 2. Hola mundo en el navegador.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    22

    En la primera lnea indicamos el lenguaje de script que se va a utilizar, en este caso VBScript, a continuacin forzamos la declaracin de las variables con la instruccin Option Explicit, ya que por defecto VBScript no obliga a declarar variables.

    Las lneas de la 3 a la 8 son cdigo HTML que no necesita ningn comentario. De las lneas 9 a la 12 nos encontramos con el script de servidor junto con el cdigo HTML que va a mostrar utilizando un bucle el mensaje "Hola mundo", el cual en cada iteracin se va aumentando de tamao.

    En la lnea 9 se declara la variable que se va a incrementar en el bucle y que va a servir para indicar el tamao de la letra, ayudndonos para ello de la etiqueta de HTML

    En las ltimas lneas, es decir, de la 13 a la 14 vuelve a aparecer solamente cdigo HTML, en este caso necesario para indicar la finalizacin del documento.

    Si vemos el cdigo fuente desde el navegador Web observaremos lo que muestra el Cdigo fuente 8.

    Hola Mundo

    Hola MundoHola MundoHola MundoHola MundoHola Mundo

    Cdigo fuente 8

    Como se puede comprobar no existe ningn rastro del cdigo ASP, ya que ha sido ejecutado por el servidor y lo que obtenemos el resultado de su ejecucin.

    Esta sencilla pgina ASP se puede descargar desde aqu.

    Para poder ejecutar esta pgina ASP se escribir todo el cdigo en un fichero con extensin .asp que residir en un directorio de publicacin en Internet que adems posea el permiso de ejecucin de scripts.

    Para poder probar este primer ejemplo debemos tener instalado el servidor Web Internet Information Server 5.0. El directorio de publicacin en Internet, por defecto, de este servidor es C:\Inetpub\wwwroot. Por lo tanto si creamos una subcarpeta llamada C:\Inetpub\wwwroot\prueba y copiamos la pgina ASP llamada HolaMundo.asp a este directorio, para ejecutarla escribiremos en el navegador http://nombreServidor/prueba/HolaMundo.asp. Se debe recordar que una pgina ASP debe ser siempre ejecutada e interpretada por el servidor Web.

    Este ejemplo ha sido un primer contacto con ASP, ms adelante, en los distintos apartados de los captulos correspondientes se ver con ms detalle las estructuras de control, la sintaxis de VBScript, los objetos integrados de ASP con sus mtodos y propiedades, etc.

  • Novedades de ASP 3.0

    Para quin es este captulo? Este captulo est indicado para aquellas personas que ya conocen ASP 2.0 o por lo menos tienen un ligero conocimiento de la versin anterior de ASP. De todas formas este captulo tambin puede ser vlido para alumnos que no tengan ningn conocimiento de ASP, aunque muchos conceptos e ideas pueden escaparse, pero que no cunda el pnico, en los siguientes captulos se entrar en ms detalle.

    Todo aquel que no se sienta con ganas o no lo vea necesario puede saltarse el presente captulo, ya que tampoco existe examen para el mismo. Adems el contenido de este captulo se volver a tratar de una forma ms detallada a lo largo de todo el curso.

    Aqu se pretende mostrar de forma muy general las mejoras y novedades que aporta ASP 3.0 sobre la versin anterior de las pginas activas ASP 2.0, no se va a entrar en detalles y se supone que el lector tiene ya algn conocimiento de ASP 2.0.

    A continuacin vamos a ir comentando en cada apartado cada uno de los cambios y mejoras que aporta ASP 3.0, para ello se apoya en Internet Information Server 5.0.

    Mejoras generales en ASP 3.0 En este epgrafe se va a reunir una serie de cambios y novedades que ofrece ASP 3.0, que son de carcter general y que afectan al rendimiento y funcionamiento de las aplicaciones ASP.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    24

    En esta nueva versin de ASP se ofrece un mejor funcionamiento y escalabilidad de la tecnologa ASP, basndose en las nuevas caractersticas y mejoras de Internet Information Server 5.0.

    Se ha producido una mejora en el procesamiento de las pginas ASP por parte de la librera ASP.DLL.

    Se ofrece lo que se denomina ajuste automtico, que consiste en detectar cundo una peticin est bloqueada por recursos externos, en ese caso se proporcionan automticamente ms subprocesos para ejecutar peticiones adicionales y continuar de esta forma con el procesamiento normal de forma simultnea.

    Los objetos COM se liberan ms rpidamente y por defecto los componentes COM se ejecutan out-of-process, es decir, en un espacio de memoria distinto al del servidor Web.

    Con ASP 3.0 se ofrecen los objetos COM que se ofrecan con ASP 2.0 (componentes de servidor, como Content Rotator) pero con su rendimiento mejorado, es decir, aparecen versiones mejoradas de los componentes anteriores.

    El servidor transaccional Microsoft Transaction Server (MTS) ya no existe como una entidad separada en Windows 2000, y pasa a formar parte de Servicios de componentes (Microsoft Component Services). IIS 5.0 y Servicios de componentes funcionan conjuntamente para formar la arquitectura bsica para la creacin de aplicaciones Web.

    El objeto Response Los nicos objetos integrados dentro de ASP que han sufrido alguna modificacin han sido el objeto Response, que vemos en este apartado, y el objeto Server.

    Por defecto la propiedad Buffer del objeto Response tiene el valor True (verdadero), en ASP 2.0 y 1.0 esta propiedad del objeto Response tena por defecto el valor de False (falso). Debido a esto, en ASP 3.0 el resultado de la ejecucin de una pgina ASP nicamente es enviado al cliente cuando se termina de procesar la pgina ASP correspondiente, o bien cuando se utilizan los mtodos Flush o End del objeto Response.

    Por lo tanto, a no ser que se indique otra cosa, de forma predeterminada el resultado de la ejecucin de la pgina ASP se enviar al bfer. Segn afirma Microsoft la tcnica del bfer ofrece una entrega de pginas ms eficiente al cliente.

    En el objeto Response tambin cambia la forma de utilizar la propiedad IsClientConnected, mediante esta propiedad podemos consultar si un cliente se encuentra todava conectado a nuestro servidor o por el contrario si ha finalizado su sesin con el mismo. En ASP 2.0 podamos consultar esta propiedad slo si antes habamos enviado ya alguna salida o contenido al cliente, ahora con ASP 3.0 podemos utilizar IsClientConnected antes de enviar cualquier contenido al navegador.

    En los siguientes captulos veremos en profundidad este objeto y el resto de los objetos integrados dentro de ASP, como ya se ha dicho este captulo pretende ser simplemente una comparativa entre ASP 3.0 y ASP 2.0 mostrando las mejoras y novedades que existen entre ambas versiones.

  • Grupo EIDOS 2. Novedades de ASP 3.0

    25

    El objeto Server Este es otro de los objetos de ASP que ha experimentado cambios. Presenta dos nuevos mtodos: Transfer y Execute, que permiten controlar el control de flujo del programa, ampliando las capacidades de control de flujo de las pginas ASP, anteriormente slo se dispona del mtodo Redirect del objeto Response.

    En ASP 2.0 si queramos transferir la ejecucin a otra pgina ASP tenamos que utilizar el mtodo Redirect del objeto Response, pero esto supona enviar una respuesta al cliente para indicarle la carga de una nueva pgina, que es la pgina a la que pasamos la ejecucin.

    La utilizacin del mtodo Redirect es bastante costosa y problemtica ya supone un envo de informacin ms del servidor al cliente para indicarle mediante una cabecera HTTP de redireccin que la pgina ha cambiado de localizacin, siendo la nueva localizacin la pgina que deseamos cargar. Esto es problemtico ya que en algunos navegadores como Netscape Communicator aparace un mensaje del tipo El objeto requerido se ha movido y se puede encontrar aqu, esto tambin ocurre cuando la conexin la realiza el cliente a travs de proxy.

    Pero ahora con ASP 3.0 podemos evitar esta redireccin, que como hemos visto, tiene lugar en el cliente, mediante los mtodos Execute y Transfer del objeto Server que permiten que la redireccin tenga lugar en el servidor, quedando el cliente completamente ajeno. Ambos mtodos reciben como parmetro la ruta de la pgina a la que queremos redirigir al cliente.

    La utilizacin del mtodo Execute es muy similar a realizar una llamada a un procedimiento o funcin. Cuando lanzamos el mtodo Execute se empieza a ejecutar la pgina que indicamos por parmetro, y cuando termina la ejecucin de esta nueva pgina, el control pasa a la siguiente sentencia despus de la llamada al mtodo Execute en la pgina inicial, siguiendo a partir de aqu con la ejecucin de la pgina, es decir, el navegador del cliente recibe una salida formada por la combinacin de la ejecucin de ambas pginas.

    El mtodo Transfer se comporta de distinto modo, al lanzar este mtodo se pasa la ejecucin a la nueva pgina, pero una vez que finaliza la ejecucin de la misma no se vuelve a la pgina inicial, como ocurra con el mtodo Execute.

    En ambos mtodos se mantiene el contexto de la pgina inicial, es decir, en la nueva pgina tenemos acceso a las variables, objetos y a todos los objetos intrnsecos de ASP (Request, Session, Response...) de la pgina inicial o pgina de origen. Tambin se mantienen las transacciones entre distintas pginas, siempre que proceda, atendiendo a la directiva @TRANSACTION.

    De esta forma como la redireccin entre pginas se produce en el servidor, el navegador cree que sigue recibiendo todava la pgina original que habia demandado, incluso en la barra de direcciones del navegador sigue apareciendo la misma URL y los botones Atrs y Adelante funcionan correctamente.

    Vamos a ofrecer un sencillo cdigo de una pgina ASP que utiliza los mtodos Transfer y Execute para ejecutar otra pgina, y as se puede ver ms claramente la utilizacin de estos dos nuevos mtodos del objeto Server.

    Nuestra pgina, llamada PaginaInicial.asp, va a constar de un formulario con dos botones, y segn el botn que se pulse se lanzar el mtodo Execute o Transfer para ejecutar la pgina OtraPagina.asp. El cdigo de estas dos pginas se ofrece a continuacin.

    Primero el cdigo de la pgina PAGINAINICIAL.ASP.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    26

    Cdigo fuente 9

    Y ahora el cdigo de la pgina ASP llamada OTRAPAGINA.ASP.

    Se est ejecutando la pgina OtraPagina.aspEsta pgina se ha cargado con el mtodo

    EXECUTE

    TRANSFER

    La variable Request.ServerVariables("SCRIPT_NAME") sigue teniendo el valor:

    Termina la ejecucin de OtraPagina.asp

    Cdigo fuente 10

    Si ejecutamos la pgina PAGINAINICIAL.ASP y pulsamos cada uno de sus botones, vemos el distinto comportamiento de los mtodo Execute y Transfer, en el primer caso se intercala el resultado ejecucin de ambas pginas, y en el segundo paso una vez que se ha terminado de ejecutar la segunda pgina finaliza tambin la ejecucin de la secuencia de comandos, sin retornar a la pgina inicial. Las siguientes figuras muestran estas dos situaciones.

    La Figura 3 muestra la pgina PAGINAINICIO.ASP cuando todava no se ha pulsado ningn botn. En la Figura 4 se muestra cuando se ha pulsado el botn Execute. Y en la Figura 5 cuando se ha pulsado el botn Transfer.

    En este enlace se pueden obtener las pginas ASP de este ejemplo.

    Otro nuevo mtodo que ofrece el objeto Server, y que est relacionado con el tratamiento de errores, es el mtodo GetLastError. Mediante el uso del mtodo GetLastError podemos tener acceso a toda la informacin referente al ltimo error que se ha producido en la pgina ASP actual. Pero es necesario aclarar que su utilizacin no es similar al tratamiento de errores que realizbamos con la sentencia On Error Resume Next y el objeto Err de VBScritp, que preguntbamos por la propiedad Number del objeto Err para averiguar si se haba producido algn error, el mtodo GetLastError se puede utilizar

  • Grupo EIDOS 2. Novedades de ASP 3.0

    27

    nicamente dentro de una pgina de error personalizada, es decir, cuando el error ya se ha producido y lo ha detectado el servidor Web.

    Mediante Internet Information Services 5 podemos indicar las pginas de error personalizadas y es en estas pginas dnde podemos hacer uso de este mtodo.

    El mtodo GetLastError devuelve un nuevo objeto de ASP llamado ASPError, son las propiedades de este nuevo objeto las que nos permiten acceder de forma detallada a toda la informacin referente al error que se ha producido. Este nuevo objeto lo trataremos con ms detalle en el siguiente apartado.

    Figura 3

    Figura 4

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    28

    Figura 5

    El objeto ASPError Como ya hemos visto en el apartado anterior, este es un nuevo objeto del modelo de objetos incluido dentro de ASP 3.0. Tendremos acceso al objeto ASPError a travs de la llamada al mtodo GetLastError del objeto Server. La funcin de este objeto es la de ofrecer de forma detallada toda la informacin disponible del ltimo error que se ha producido.

    El objeto ASPError nicamente dispone de una serie de propiedades de slo lectura, que contienen la informacin relativa al ltimo error que se ha producido. Estas propiedades se comentan de forma breve en la Tabla 1.

    Propiedad Descripcin

    ASPCode Un entero generado por IIS.

    ASPDescription Una cadena que es una descripcin detallada del error si est relacionado con ASP.

    Category Cadena que indica si se trata de una error interno de ASP, del lenguaje de secuencia de comandos o de un objeto.

    Column Entero que indica la posicin de la columna del archivo ASP que gener el error.

    Description Breve descripcin del error.

    File Nombre del archivo ASP que se estaba procesando cuando se produjo el error.

    Line Lnea del archivo ASP que gener el error.

  • Grupo EIDOS 2. Novedades de ASP 3.0

    29

    Number Cdigo de error estndar de COM.

    Source Devuelve el cdigo fuente real, si est disponible, de la lnea que caus el error.

    Tabla 1

    En el Cdigo fuente 11 se muestra un sencillo cdigo de ejemplo que hace uso del objeto ASPError, y que podra pertenecer a una pgina de error personalizada de IIS 5.0. Primero se obtiene una referencia al objeto ASPError mediante el mtodo GetLastError del objeto Server, y a continuacin se muestra los valores de las propiedades del objeto ASPError para informar al cliente acerca del error que se ha producido.

    The page cannot be displayed

    Detalles del error que se ha producidoCdigo de error ASP: Nmero de error: Cdigo fuente que lo ha producido:

    Categora del error: Fichero en el que se producido el error: Lnea y columna en la que se ha producido el error:

    , Descripcin del error:

    Cdigo fuente 11

    Figura 6

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    30

    Un ejemplo de la ejecucin del cdigo anterior se puede ver en la Figura 6, y se produce cuando hay un error de ASP, es decir un error interno de servidor del tipo 500;100.

    En el captulo dedicado al objeto ASPError comentaremos en detalle el esquema de tratamiento de errores desde ASP 3.0 e IIS 5.0.

    La pgina para el tratamiento de errores se puede obtener en este enlace.

    Componente de registro de IIS (Logging Utility) Otras de las novedades de ASP 3.0, abandonado ya los objetos integrados en ASP, es que ofrece un nuevo componente de servidor (componente ActiveX de servidor). El nuevo componente de servidor es denominado componente de registro o programa de registro de IIS. Mediante este componente tenemos acceso a la informacin y manipulacin de los ficheros de registro (log) generados por el servidor Web IIS 5.0.

    Este componente, al igual que todos los existentes en ASP 2.0, se instala conjuntamente con el servidor Web Internet Information Server 5.0. El fichero DLL que contiene a este nuevo componente es logscrpt.dll.

    Para instanciar un componente de registro debemos utilizar la sentencia que muestra el Cdigo fuente 12.

    Set objRegistro=Server.CreateObject("MSWC.IISLog")

    Cdigo fuente 12

    Es importante sealar que el usuario que tiene acceso a la secuencia de comandos ASP que crea la instancia del componente de registro debe autenticarse como Administrador u Operador en el servidor donde se ejecuta IIS, si es un usuario annimo, el componente de registro de IIS no funcionar correctamente. Para manipular los ficheros de registro de IIS el componente IISLog ofrece una serie de mtodos que se muestran en la Tabla 2.

    Mtodo Descripcin

    AtEndOfLog Indica si se leyeron o no todos los registros del archivo.

    CloseLogFiles Cierra todos los archivos de registro abiertos.

    OpenLogFile Abre un archivo de registro para lectura o escritura.

    ReadFilter Filtra los registros del archivo segn la fecha y la hora.

    ReadLogRecord Lee el siguiente registro disponible del archivo de registro actual.

    WriteLogRecord Escribe un registro en el archivo actual.

    Tabla 2

  • Grupo EIDOS 2. Novedades de ASP 3.0

    31

    Para obtener la informacin del registro actual el componente IISLog ofrece veinte propiedades de slo lectura que se corresponden con los distintos campos de un registro de un archivo de registro. Para obtener la informacin del registro actual el componente IISLog ofrece veinte propiedades de slo lectura que se corresponden con los distintos campos de un registro de un archivo de registro.

    Propiedad Descripcin

    BytesReceived Nmero de bytes recibidos del navegador como una peticin.

    BytesSent Nmero de bytes enviados al navegador como una respuesta.

    ClientIP Direccin IP del cliente.

    Cookie Indica los contenidos de cualquier cookie enviada en la peticin.

    CustomFields Un vector de cabeceras personalizadas que se aadieron a la peticin.

    DateTime La fecha y hora de la peticin en formato GMT.

    Method El tipo de operacin, tal como puede ser GET o POST.

    ProtocolStatus El mensaje de estado devuelto al cliente, por ejemplo 200 OK.

    ProtocolVersion Una cadena con la versin del protocolo utilizado, por ejemplo HTTP/1.1.

    Referer La URL de la pgina que contiene el enlace que inici la peticin, si est disponible.

    ServerIP La direccin IP del servidor Web.

    ServerName El nombre del servidor Web.

    ServerPort El nmero de puerto por el que se recibi la peticin.

    ServiceName Nombre del servicio, como puede ser el servicio FTP (MSFTPSVC) o Web (W3SVC).

    TimeTaken El tiempo de procesamiento total para devolver y crear la pgina devuelta.

    URIQuery Cualquier parmetro aadido a la cadena de consulta (QueryString) de la URL en la peticin.

    URIStem La URL que demand el cliente.

    UserAgent La cadena de agente de usuario (tipo de navegador) enviada por el cliente.

    UserName Nombre de inicio de sesin del usuario si no ha accedido de forma annima.

    Win32Status Cdigo de estado Win32 despus de haber procesado la peticin.

    Tabla 3

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    32

    Se puede configurar el tipo de registro que queremos en nuestro servidor a travs de IIS 5.0, de esta forma podremos aadir o eliminar de nuestro fichero de registro los campos descritos anteriormente. Para ello acudiremos a las propiedades del sitio Web y en la pestaa sitio Web pulsaremos el botn Propiedades contenido en el epgrafe de Habilitar registro. Se debe seleccionar uno de los formatos de registro que se corresponden con un fichero de registro, por lo tanto la opcin registro ODBC no sera vlida.

    Figura 7

    En el Cdigo fuente 13 se muestra la utilizacin de este nuevo objeto ActiveX de servidor. En este sencillo cdigo se utiliza el componente de registro para mostrar algunos de los campos contenidos en el fichero de registro.

    Fecha/HoraIP del cliente

  • Grupo EIDOS 2. Novedades de ASP 3.0

    33

    MtodoURL

    Cdigo fuente 13

    Se ha utilizado un filtro para recuperar la informacin del fichero de registro referente al servicio Web y nicamente de las ltimas 24 horas. Tambin se puede observar que se utiliza una directiva METADATA, ms tarde comentaremos su utilidad y sintaxis, de momento diremos nicamente que nos permite incluir las constantes definidas en la librera que contiene al componente de registro.

    La informacin que se va a mostrar del fichero de registro va a ser la fecha y hora de la peticin, la direccin IP del cliente que ha realizado la peticin, el mtodo que se ha utilizado y la URL correspondiente. En la Figura 8 se puede ver un ejemplo de ejecucin de la pgina anterior.

    Figura 8

    El nombre del fichero de registro variar segn sea nuestra configuracin del registro en el sitio Web correspondiente, la ubicacin de estos ficheros de registro suele ser el directorio c:\winnt\system32\logfiles\w3svc1 para el servicio Web.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    34

    Esta pgina ASP que utiliza el componente de registro se puede utilizar nicamente restringiendo el acceso annimo a la propia pgina o al directorio que la contiene a nivel de permisos de NTFS, en caso contrario no podremos acceder al fichero de registro, ya sea para leer o escribir datos.

    ActiveX Data Objects 2.5 (ADO 2.5) Junto con ASP 3.0 se ofrece la nueva versin de los componentes de servidor para el acceso a datos, es decir, ActiveX Data Objects 2.5 (ADO 2.5).

    Lo ms destacable es que ADO 2.5 ampla su modelo de objetos con dos objetos ms: Record y Stream.

    Hasta ahora mediante ADO accedamos sobre todo a datos estructurados como puede ser un conjunto de registros de una tabla en una base de datos, pero tambin nos puede interesar acceder a datos que no sean tan homogneos como puede ser un sistema de ficheros o un sistema de correo, en este caso estaremos ante datos semi-estructurados.

    Una caracterstica nueva que forma parte de los datos semi-estructurados es lo que se denomina Internet Publishing. La versin 2.1 de ADO ya ofreca el proveedor OLE DB para Internet Publishing, pero con una funcionalidad muy limitada. Ahora en su nueva versin, ADO ofrece la funcionalidad completa.

    Mediante el proveedor OLE DB para Internet Publishig podemos manipular recursos Web desde ADO, es decir, podemos construir nuestras propias aplicaciones para manipular sitios Web. Todas estas innovaciones entran dentro de la estratega de acceso a datos de Microsoft, UDA (Universal Data Access).

    Veamos ahora como se modela en objetos este nuevo acceso a datos semi-estructurados por parte de ADO.

    Normalmente el almacenamiento semi-estructurado sigue una organizacin de rbol, con nodos, subnodos y archivos. Si consideramos un sitio Web vemos que presenta carpetas, subcarpetas y archivos. Si pensamos que este sistema de almacenamiento debe ser modelado mediante ADO, podemos elegir como candidato el objeto RecordSet, ya que puede contener un conjunto de datos.

    Pero si lo pensamos ms detenidamente vemos que un objeto RecordSet puede contener un conjunto de carpetas, pero luego cada una de las carpetas tendr distintos archivos de distintos tipos cada uno con unas caractersticas.

    Es en este momento cuando entra en juego el objeto Record. En la situacin vista anteriormente, la coleccin de directorios y/o archivos ser representada por un objeto Recordset pero cada directorio o archivo ser representado mediante un objeto Record, ya que pueden tener propiedades nicas y distintas. Como se puede ver este es un nuevo concepto que puede ser necesario madurar por parte del lector.

    Los valores de las propiedades que contiene el objeto Record referentes al archivo o directorio que representa, se pueden recuperar a modo de campos del objeto Record. Adems, el objeto Record ofrece una serie de mtodos que permiten manipular el registro: CopyRecord, MoveRecord y DeleteRecord.

    Una vez visto la necesidad del objeto Record, para describir y representar las caractersticas nicas y variadas de cada elemento, es sencillo ver la utilidad del nuevo objeto Stream.

  • Grupo EIDOS 2. Novedades de ASP 3.0

    35

    El objeto Stream permite acceder a los contenidos de cada elemento, que puede ser un directorio, un archivo, un mensaje de correo, etc. Para ello este objeto posee una serie de mtodos como pueden ser: ReadText, WriteText, LoadFromFile, etc.

    Para instanciar estos dos nuevos objetos de ADO utilizaremos las dos sentencias que muestra el Cdigo fuente 14.

    Set objRecord=Server.CreateObject("ADODB.Record")Set objStream=Server.CreateObject("ADODB.Stream")

    Cdigo fuente 14

    En primer lugar se va a ofrecer un cdigo ASP que muestra los campos que posee un objeto Record que representa a un directorio de un sitio Web y otro que representa a un fichero, junto con sus valores correspondientes. Mediante el objeto Record vamos a abrir en primer lugar una URL y mostrar los campos que posee con sus valores y a continuacin se hace lo mismo con un fichero.

    Campos de un directorio

    CampoValor

    Campos de un fichero

    CampoValor

    Cdigo fuente 15

    El resultado de la ejecucin del cdigo anterior se puede ver en la Tabla 4 y en la Tabla 5.

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    36

    Campos de un directorio

    Campo Valor

    RESOURCE_PARSENAME cursoASP30

    RESOURCE_PARENTNAME http://aesteban

    RESOURCE_ABSOLUTEPARSENAME http://aesteban/cursoASP30

    RESOURCE_ISHIDDEN

    RESOURCE_ISREADONLY

    RESOURCE_CONTENTTYPE

    RESOURCE_CONTENTCLASS

    RESOURCE_CONTENTLANGUAGE

    RESOURCE_CREATIONTIME

    RESOURCE_LASTACCESSTIME

    RESOURCE_LASTWRITETIME

    RESOURCE_STREAMSIZE

    RESOURCE_ISCOLLECTION True

    RESOURCE_ISSTRUCTUREDDOCUMENT

    DEFAULT_DOCUMENT

    RESOURCE_DISPLAYNAME cursoASP30

    RESOURCE_ISROOT True

    RESOURCE_ISMARKEDFOROFFLINE False

    Tabla 4

    Campos de un fichero

    Campo Valor

    RESOURCE_PARSENAME PaginaInicial.asp

    RESOURCE_PARENTNAME http://aesteban/cursoASP30

    RESOURCE_ABSOLUTEPARSENAME http://aesteban/cursoASP30/PaginaInicial.asp

  • Grupo EIDOS 2. Novedades de ASP 3.0

    37

    RESOURCE_ISHIDDEN

    RESOURCE_ISREADONLY

    RESOURCE_CONTENTTYPE

    RESOURCE_CONTENTCLASS

    RESOURCE_CONTENTLANGUAGE

    RESOURCE_CREATIONTIME 10/05/2000 14:29:24

    RESOURCE_LASTACCESSTIME

    RESOURCE_LASTWRITETIME 10/05/2000 14:38:34

    RESOURCE_STREAMSIZE 861

    RESOURCE_ISCOLLECTION False

    RESOURCE_ISSTRUCTUREDDOCUMENT

    DEFAULT_DOCUMENT

    RESOURCE_DISPLAYNAME PaginaInicial.asp

    RESOURCE_ISROOT False

    RESOURCE_ISMARKEDFOROFFLINE False

    Tabla 5

    El objeto Stream lo vamos a utilizar en un ejemplo que consiste en mostrar el contenido de un fichero en un rea de texto. El objeto Stream representa el contenido del fichero y permite acceder al mismo.

    Cdigo fuente 16

  • Programacin de aplicaciones para Internet con ASP Grupo EIDOS

    38

    Para abrir un objeto Stream lo podemos hacer a partir del objeto Record que representa el fichero que queremos abrir, o como es el caso que nos ocupa, lo podemos utilizar directamente indicando la URL que indica el fichero que deseamos abrir.

    En la Figura 9 se puede observar la ejecucin del cdigo anterior.

    Figura 9

    Se debe sealar que para utilizar con xito los objetos Record y Stream desde ASP 3.0 se debe incluir la cuenta del usuario annimo de Internet (IUSR_nombreMaquina) dentro del grupo de Administradores. Esto supone un grave problema de seguridad y puede ser vlido para servidores Web de prueba o de desarrollo, pero para servidores Web en produccin resulta inadmisible. Supongo que se trata de un error en la versin 3.0 de ASP o bien un error del proveedor OLEDB Internet Publishing, pero lamentablemente hasta la fecha no exist