Al navegar más de alguna vez nos hemos topado con alguna página que tiene archivos con extensión ".asp" y nos hemos preguntado que significa éste tipo de archivos.

Microsoft introdujo esta tecnología llamada Active Server Pages en diciembre de 1996, por lo que no es nada nueva. Es parte del Internet Information Server (IIS) desde la versión 3.0 y es una tecnología de páginas activas que permite el uso de diferentes scripts y componentes en conjunto con el tradicional HTML para mostrar páginas generadas dinámicamente.


Traduciendo la definición de Microsoft: "Las Active Server Pages son un ambiente de aplicación abierto y gratuito en el que se puede combinar código HTML, scripts y componentes ActiveX del servidor para crear soluciones dinámicas y poderosas para el web".


ASP, es esencialmente, código VBSCript que se ejecuta en el servidor. El código genera instrucciones HTML cuando un usuario accede a la página que lo contiene. Esta es la clave de ASP: el cliente nunca ve el código, sólo las instrucciones HTML resultantes, que pueden ser relacionadas por cualquier navegador.

 

El principio de la tecnología ASP es el VBScript, pero existe otra diversidad de lenguajes de programación que pueden ser utilizados como lo es Perl, JScript, etc.
El ASP es una tecnología dinámica funcionando del lado del servidor, lo que significa que cuando el usuario solicita un documento ASP, las instrucciones de programación dentro del script son ejecutadas para enviar al navegador únicamente el código HTML resultante. La ventaja principal de las tecnologías dependientes del servidor radica en la seguridad que tiene el programador sobre su código, ya que éste se encuentra únicamente en los archivos del servidor que al ser solicitado a través del web, es ejecutado, por lo que los usuario no tienen acceso más que a la página resultante en su navegador.

 


Para explicar mejor el funcionamiento del ASP se presenta la siguiente gráfica:

Para insertar instrucciones ASP dentro del código HTML se incluye encerrado entre "<% %>". Estos comandos son los que procesa el servidor antes de enviar la página al navegador.


A continuación tenemos un ejemplo del código ASP en el servidor y los resultados HTML que serán vistos en el navegador:

Código ASP

Código HTML

Resultado en el Navegador

<P>
<% For I = 1 To 5 Step 1 %>
<FONT SIZE="<%= I %>">Maestros del Web!</FONT><BR>
<% Next %>
</P>


<P>
<FONT SIZE="1">Maestros del Web!</FONT><BR>
<FONT SIZE="2">Maestros del Web!</FONT><BR>
<FONT SIZE="3">Maestros del Web!</FONT><BR>
<FONT SIZE="4">Maestros del Web!</FONT><BR>
<FONT SIZE="5">Maestros del Web!</FONT><BR>
</P>

Maestros del Web!
Maestros del Web!
Maestros del Web!
Maestros del Web!
Maestros del Web!

El ejemplo anterior crea un ciclo que se repite 5 veces y aumenta el tamaño del tipo de letra en una frase establecida.


El desarrollo que se ha venido dando a lo que es ASP ha sido bastante amplio. Entre sus funciones principales están el acceso a base de datos, envió de correo electrónico, creación dinámica de gráficos y otros. Básicamente, muchas cosas que podemos realizar por medio de CGI pueden ser realizadas con esta tecnología. Esto debido a que el ASP es tan eficiente con escribir código directamente a la interfase de aplicación del servidor, con la ventaja de que es más eficiente que el CGI que depende de un compilador ya que el ASP corre como un servicio en el servidor, tomando ventaja de la arquitectura de multitareas.

 

Para empezar con el desarrollo de las Active Server Pages es necesario un servidor con Windows NT 4.x o mayor y el Internet Information Server. El IIS es una aplicación gratuita que puede conseguirse en el Option Pack del NT. También es posible utilizar ASP en Windows 9x por medio del Personal Web Server junto al Option Pack mencionado anteriormente.


En caso del uso de un servidor Linux, Chilisoft ha desarrollado el Chilisoft ASP que también permite el uso de esta tecnología.


La mayoría de proveedores de Hosting pagado con plataformas NT tienen acceso a esta tecnología en sus servidores. El código puede ser trabajado en cualquier editor HTML o de texto. Existen en el mercado dos herramientas para trabajar profesionalmente el ASP en modo visual como lo son el Drumbeat 2000 y el Visual Interdev de Microsoft.


Para enviar datos a un servidor Web, el cliente utiliza un formulario con etiquetas <FORM>. Estos formularios incluyen distintos campo de entrada de datos similares a cuadros de texto. El programa cliente empaqueta los datos y posteriormente los envía al servidor; el proceso de envio de cualquier formulario está controlado por dos atributos de la etiqueta <FORM>: METHOD y ACTION. EL atributo METHOD determina la forma en la que se envían los datos al servidor, el atributo cuanta con dos valores GET y POST. El primero envía los datos como parte integrante del Localizador Uniforme de Recursos (URL) de la página destino, y POST permite que el navegador empaquete los datos contenidos en el formulario y que los envíe al servidor. El atributo ACTION especifica cual será la página destino de los datos que se han enviado. El siguiente ejemplo envía los datos a una página denominada DATOS:ASP, utilizando el método POST:

 

<form method = “post”

           ACTION = http:=//www.ucol.mx/datos.asp”>    

 <p><INPUT TYPE= “TEXT” NAME = “TXTnombre”></P>

 <p><INPUT TYPE= “TEXT” NAME = “TXTdomicilo”></P>

 <p><INPUT TYPE= “submit”</P>

 </FORM>

 

 

 

El control denominado TYPE= "SUBMIT" es un botón que deberá ser pulsado por el usuario para enviar los datos de¡ formulario.

Otra forma de enviar los datos al servidor sobre lnternet, es utilizando la etiqueta <A>. La etiqueta <A> utiliza el atributo HREF para designar una página destino y para transportar los datos cuando el usuario pulse sobre el vínculo. Para separar el nombre de la página destino de los datos a enviar se utiliza el signo de interrogación (?) separados por el carácter (&). Regresando al ejemplo anterior don de¡ formulario enviaba los campos TXTnombre Y TXTdomicilio, a continuación se muestra como se realiza utilizando un

hipervínculo:

 

<A HREF=

 http://www.ucol.mx/datos.asp?TXTnombre=ulises & TXT=domicilio=mexico>

Pulse aquí para enviar los datos al formulario...

</A>

 

 

PROCESAMIENTO

Active Server Pages (ASP) incluye secuencias de comandos en sus páginas HTML y crear así un contenido dinámico e interactivo en el sitio Web. Anteriormente, las secuencias de comandos escritas en los lenguajes VBScript y JScript se procesaban en los exploradores de Web preparados para ello. Active Server Pages permite que sea el servidor Web el que procese los comandos de VBScript y JScript. Cualquier explorador que pueda establecer contacto con el servidor Web admitirá los resultados dinámicos generados por ASP, tanto si admite VBScript o JScript

 

SEGURIDAD

El código es seguro: cada página puede utilizar las listas de control de acceso (ACL) en el sistema de seguridad de Windows NT. También, dado que el código se ejecuta en el servidor, el cliente de Web nunca ve el código sólo los resultados. Esta propiedad le protege de usuarios que quieran mirar o apropiarse de su código. Además, como puede administrar los servidores, puede mantener código desautorizado fuera del servidor.

 

SELECCIÓN Y JUSTIFICACIÓN DE HERRAMIENTA DE DESARROLLO

 

Para elegir la herramienta que nos permita de una manera mas eficiente desarrollar nuestra aplicación, resumiremos brevemente cada una de las características comunes en cada una de las tecnologías descritas en las secciones anteriores.

 

 

Acceso a Internet

Sólo pueden visualizarse páginas lnternet con controles ActiveX mediante Microsoft lnternet Explorer 3.x o superior

Programación

La estructura del código ASP se encuentra encerrada entre caracteres especiales (signos menor y mayor que y porcentajes) <%  ...... %>, los cuales definen al código

el servidor, lo que significa que el código se evaluará antes de que la página se envíe al navegador

 

 

 

Procesamiento

active Server Pages permite que sea el servid procese los comandos de VBScript y JScript. Cualquier explorador que pueda establecer contacto con el servidor Web admitirá los resultados dinámicos generados por ASP, tanto si admite VBScript o JScript

 

Seguridad

 

El código se ejecuta en el servidor, el cliente de Web nunca ve el código sólo los resultados

 

Tabla 2-3. Características de ASP

 

ACCESO A BASES DE DATOS CON ACTIVE SERVER PAGES

 

 

Una vez seleccionada la tecnología Active Server Pages como forma de acceso a bases de datos en el Web, se profundizará en esta herramienta, a través de ejemplos simples, así como el de analizar el entorno requerido para su implementación.

 

 OBJETOS Y COMPONENTES

 

Al nivel más básico, crear una página ASP consiste sólo en escribir código de¡ lado de¡ servidor para producir el resultado deseado. Sin embargo, VBScript no es un lenguaje plenamente funcional, y se quedará corto cuando se intenta crear páginas complejas, VBScript no cuenta con funciones intrínsecas con las que se pueda acceder a ninguna fuente de datos externa, por lo cual el lenguaje se complementa con objetos y componentes ASP.

Los objetos y componentes ASP no son más que componentes ActiveX , algo similar a los DLL utilizados con Microsoft Visual Basic. La diferencia existente entre objetos ASP y componentes ASP está relacionada con la forma en que se encuentran empaquetados. Los objetos ASP son elementos ActiveX que se encuentran siempre disponibles en VBScript. No se tiene que crear explícitamente ob .etos ASP para su empleo. ASP puede manejar los objetos Applicatíon, Session, Request, Response y Server.

Por otro lado, los componentes ASP son DLL que existen fuera de¡ mundo ASP. Estos componentes se pueden generar en cualquier lenguaje, pero Microsoft ha incluido algunos disponibles componentes ASP de gran utilidad en Visual lnterdev. Los componentes ASP no estarán disponibles a menos que se haya codificado expresamente. ASP puede manejar los componentes denominados Database Access, File Access, Browser Capabilities, Ad Rotator y Content Linking.

EL ARCHIVO GLOBAL.ASA

Al diseñar aplicaciones lnternet independientemente de la tecnología que se utilice, existe la dificultad para crear auténticas aplicaciones. La interacción entre un navegador y un servidor Web es, básicamente, una transación en la que el servidor pasa a una página Web al cliente y aquél se olvida de que el cliente existe. Cuando, posteriormente, el cliente solicita otra pagina Web, el servidor no recuerda la primera petición. En base a lo anterior el problema esencial para todas las aplicaciones Web es el siguiente: ¿Como se debe definir una aplicación?.

Definir una aplicación en el entorno de Microsoft Windows es bastantes simple. La aplicación se ejecuta cuando se realiza una doble pulsación sobre su icono asociado, y la aplicación finaliza cuando se selecciona la opción salir de¡ menú archivo. Entre estos dos sucesos los datos se almacenarán en variables. Sin embargo el proceso no es mismo en las aplicaciones lnternet. ¿Cómo se determina cuando comienza o acaba una aplicación? Si un usuario se conecta a un servidor y ve una página, se podría decir que la aplicación ha comenzado. ¿ Pero que ocurre cuando el usuario salta a otro servidor y vuelve al primero cinco minutos después? ¿Sigue estando viva la aplicación? ¿Qué ocurre si el usuario abandona el primer servidor durante una hora? ¿y dos horas?.

Este problema de definir el principio y el final de una aplicación afecta a la capacidad de gestionar correctamente variables y el flujo de trabajo. Para evitar el problema mencionado, Active Server Pages proporciona una solución. ASP utiliza un archivo especial, denomiando GLOBAL.ASA, para definir el principio y el final de una aplicación, así como el principio y el fina de una sesión de usuario. GLOBAL.ASA es responsable de detectar cuatro sucesos claves en su servidor: Aplication-OnStart. Aplication-OnEnd, Session-OnStart y Session-OnEnd.

 

GLOBAL.ASA utiliza etiquetas <SCRIFIT> para designar las distintas secciones de programación. Estas tareas contienen un atributo especial, denominado RUNAT=Server, que especifica que el VBSCript contenido deberá ejecutarse en el servidor y no en el cliente. RUNAT=Server es similar, en su función, a los signos mayor que, menor que y porcentaje utilizados en la página Web para designar programación del lado de¡ servidor. Los sucesos contenidos en GLOBAL.ASA pueden ser atrapados en el lado del servidor utilizando sintáxis estandar. Por ejemplo, para atrapar el comienzo de una aplicacion se deberá utilizar las siguientes líneas de codigo:

 

<SCRIPT LANGUAGEt=cbscrip RUNAT= Server>

Sub  Application_OnStart

‘ Código especifico da la aplicación

End Sub

</SCRIPT>

 

Una aplicación lnternet se define como un directorio virtual y todas sus páginas. Si un usuario solicita una página Web contenida en un directorio virtual, denominado Librería, el usuario habrá puesto en marcha la aplicación Librería, y los sucesos Application-OnStart y Session-OnStart se introducirán en GLOBAL.ASA.

 

Según esta definición,una aplicación puede ser utilizada simultáneamente por varios navegadores. El suceso Application_OnStart sólo se dispara una vez (cuando el primer usuario solicita una página Web contenida en el directorio virtual). Cuándo un segundo usuario solicite

 

posteriormente, otras páginas contenidas en el mismo directorio, sólo se disparará el suceso Session-OnStart.

 

Mientras que una aplicación puede englobar a varios navegadores que acceden simultáneamente al mismo conjunto de páginas Web, una sesión se refiere a cada navegador que accede a las mismas paginas Web. Una sesión para un determinado navegador durará mientras que el usuario continúe solicitando páginas Web contenidas en dicho directorio virtual. Si en veinte minutos el usuario no vuelve a solicitar otras páginas Web, se considerará que la sesión ha terminado y se disparará el suceso Session     - OnEnd. Una vez que hayan concluido todas las sesiones de usuario en el directorio virtual, se disparará el suceso Application-OnEnd.

 

 OBJETOS DE ACTIVE SERVER PAGES

ASP contiene un elevado número de objetos que permitirán gestionar prácticamente todo, desde variables hasta envíos de formularios. Su empleo es sencillo, y se les puede llamar directamente desde el código sin tener que utilizar ninguna sintaxis especial. En este apartado se analizan los objetos ASP disponibles en Visual lnterdev para el disecador de aplicaciones lnternet. En el apéndice A se describen las propiedades y métodos manejados por estos objetos.

 

 OBJETO APPLICATION

El objeto Application permite crear variables de aplicaciones, variables que se encuentran disponibles para todos los usuarios de una aplicación. Todos los usuarios que accedan a páginas Web contenidas en el mismo

 

 

 

directorio virtual pueden compartir cualquier variable de aplicación definida en dichas paginas.

El siguiente listado muestra un código ejemplo que utiliza el objeto Applicition. En este ejemplo, se utiliza una variable de aplicación para controlar cuando fue la última vez en que un usuario visitó la página.

 

<%LANGUAGE=”VBScrip>

 

<HTML>

<HEAD>

 

<TITlE>Variables dé aplicación</TITLE>

<BODY BGCOLOR--"FFFFFF">

 

Eátá páglhá füe vísitada  por ultima vez el <%=Application(“time”)%>

<%Applicatíon.Lock%> p

<%Applicatíon(“time”) = Now%>

<%Applicatíon.UnLock%>

</BODY>

</HTML>

 

 

Crear una variable de aplicación es tan sencillo corno llamar al objeto Aplication seguido del nombre de la nueva variable que se desee crear. Por ejemplo, la siguiente instrucción crea una variable de aplicación denominada Empresa y define su valor como NuevaTecnología:

 

Application(”Empresa")= "NuevaTecnología"

 

El nombre es arbitrario, y la variable puede contener cualquier tipo de información, ya sea números o texto.

Debido a que la variable se encuentra disponible simultáneamente para varios usuarios, por lo tanto para evitar la concurrencia; es decir, la situación que se produce cuando dos usuarios intentan redefinir simultáneamente la variable utilizando diferentes valores. Para evitar esta situación, el objeto Application permite el empleo de los métodos Lock yUnlock. El método Lock bloquea todo objeto Application inmediatamente después de modificar el valor de una variable:

Applicatíon.Lock

Application(”Empresa")= "NuevaTecnología"

Applicatíon.UnLock%>

 

 

Aunque las variables de aplicación son          útiles para almacenar temporalmente los datos, no se pueden utilizar para almacenar datos de forma permanente. El dato almacenado en una variable de aplicación se destruye cuando se ejecuta el suceso Application-OnEnd. Tendrá que trasladar las variables de aplicación a un sistema de almacenamiento permanente, tal como una base de datos, si desea almacenar los valores después de que finalice la aplicación.

 

 OBJETO SESSION

 

ASP puede manejar variables para usuarios individuales mediante el objeto Session, que permite crear variables de sesión definidas para su uso por usuarios individualizados.

El listado siguiente muestra la forma en que el archivo GLOBAL.ASA define variable de sesión. Definir variables de sesión es tan sencillo como definir variables de aplicación. Solo se tiene que llamar al objeto Session seguido por el nombre de la variable que se desea definir. La gran diferencia existente entre una variable de aplicación y otra de sesión es la visibilidad de la misma. Las variables de sesión están reservadas para un único usuario, y existe durante todo el tiempo que mantenga el usuario la sesión Web. Cuando el usuario deje de acceder a las páginas contenidas en un mismo

 

directorio virtual por un período de tiempo superior a los 20 minutos, las variables de sesión desaparecerán.

 

<SCRIPT LANGUAGEVBScrip" RUNAT=Server”>

‘Puede añadir manejadores especiales de suceso en este archivo, el cual se ‘ejecutara automaticamente cuando tengan lugar sucesos especiales

‘de  Active Server  Pages. Para crear estos manejadores, añada

‘una subrutina, sin nombre de la lista mostrada más abajo que se

‘corresponde con el suceso que desee utilizar. Por ejemplo,

‘sí desea crear un manejador de sucesos para Session-OnStart, debera

‘introducir el siguiente código:

****

Las variables de   sesión se pueden crear dentro de cualquier página Web o en el archivo GLOBAL.ASA. El usuario podrá acceder a una variable de sesión desde cualquier página Web contenida en la aplicación donde se define originalmente dichas variables. Los valores asignados a las variables de sesión definidas dentro de¡ listado anterior muestran sus valores asignados en campos de texto

 

<FORM>

<p> <INPUT VALUE> <%=Session (“EMPRESA”)%>EMPRESA/P

<p> <INPUT VALUE> <%=Session (“Correo”)%>>E-Mail <p>

</FORM>

 

 

 

"El cliente almacena el identificador denominado identificador único global (GUID) y lo utiliza posteriormente para recuperar los datos almacenados en el servidor. De esta forma cada cliente puede contar con sus propios datos para cada una de las aplicaciones utilizadas en el lnternet.

 

OBJETO REQUEST

Una aplicación lnternet difiere ciertamente en muchos aspectos de una típica aplicación clientelservidor, pero también tienen sus similitudes; por ejemplo, ambos tipos de aplicaciones dependen totalmente de la transferencia de datos existentes entre el cliente y el servidor. Cuando un servidor Web desea enviar datos a un cliente lleva a cabo esta tarea creando una página Web y enviándola. Cuando un cliente desea devolver un dato a un servidor Web, el navegador ejecuta un proceso denominado envío de formularios.

 

Para enviar datos a un servidor Web, el cliente utiliza un formulario con etiquetas <FORM>. Estos formularios incluyen distintos campos de entrada de datos similares a cuadros de texto. El programa cliente empaqueta los datos introducidos en los campos de datos y, posteriormente, envía el paquete de datos a la computadora back-end.

El proceso de envío de cualquier formulario está controlado por dos atributos de la etiqueta <FORM>: METHOD y ACTION. El atributo METHOD de la etiqueta <FORM> determina la forma en la que se envían los datos al servidor. Este atributo cuenta con dos posibles valores: POST y GET. POST le pide al navegador que empaquete todos los datos contenidos en el formulario y que los envíe al servidor. GET, por otro lado, envía los datos como una parte integrante de¡ Localizador Uniforme de Recursos (URL) de la página destino. El atributo ACTION especifica cuál será la página destino de los datos que se han enviado.

Por ejemplo, las siguientes líneas de programas envían todos los datos contenidos en los campos de texto a una página, denominada DATOS.ASP, utilizando para ello el método POST:

 

<FORM METHOD= "POST"                                                   1

 

ACTION "http;//www.colima.com/datos.asp”>

<P> <INPUT TYPE= "TEXT" NAME= 'TXTNombre"></P>

 <P> <INPUT TYPE= "TEXT" NAME= 'TXTEmail"></P>

<P> <INPUT TYPE= "SUBMIT”></P>

</FORM>      

 

El control especial denominado TYPE="SUBMIT”, es un botón que deberá pulsar el usuario cuando se encuentre listo para enviar el formulario. Al pulsar el botón, se provocará que el navegador empaquete los datos introducidos en los campos de texto y los envíe. El formato de los datos remitidos se encuentra estrictamente definido, por lo que el servidor sabe perfectamente lo que va a recibir de¡ cliente. Los datos adoptarán la forma de Campo=Valor; estos pares de información se enviarán al servidor en un formato textual, claro. Si en el ejemplo anterior escribiera Nueva Tecnología dentro del campo txtnombre e informes en el campo txtEMail, el archivo DATOS.ASP recibiría la siguiente cadena de texto:

 

txtNombre=NuevaTecnología&txtEMail=Informes.

 

En el lado del servidor, estos datos se dividirán de nuevo en campos y en valores y, finalmente, se utilizarán con el fin previsto, incluyendo acceso a base de datos o creación y envío de correo electrónico. Es en este momento cuando el objeto Request entra en acción. ASP utiliza al objeto Request para esgajar los datos enviados por el programa cliente. Para utilizar el objeto Request sólo se tendrá que proporcionar el nombre del campo que se desee examinar, el objeto Request obtendrá el valor. Por ejemplo, la siguiente instrucción devolverá el valor NuevaTecnología:

 

<%=Request.Form(lltxtNonibre")%>

 

Request.Form se utiliza siempre que desee examinar el contenido de un formulario enviado a una página ASP. El objeto Request sólo estará disponible para páginas ASP, y sólo puede devolver datos desde un formulario enviado directamente a su página. No podrá acceder a datos contenidos en formularios que no hayan sido enviados a su página.

 

Muchas aplicaciones lnternet utilizan envíos secuenciales de formularios para llevar a cabo tareas tales como conexión a una base de datos. Sin embargo en ocasiones puede suceder que un usuario no necesite rellenar un formulario y enviarlo, Sino que sólo desee pulsar un hipervínculo para acceder a nuevos datos. Este tipo de tareas también se puede realizar utilizando el objeto Request.

Para crear un hipervínculo capaz de enviar datos necesitará utilizar un ancla; es decir, la etiqueta <A>. La etiqueta ancla utiliza el atributo HREF para designar una página destino y para transportar allí los datos cuando el usuario pulse sobre el vínculo.

 

El signo de interrogación (?) separa el nombre de la pagina destino de los datos. Volviendo al ejemplo en el que un formulario enviará a los campos

 

txtnombre y txtcorreo. Si se desea enviar los mismos datos utilizando un hipervínculo, se deberá introducir las siguientes líneas de código:

 

<A HREF

“http:www.Colima.com/datos.asp?

txtNombre=NuevaTecnologia&txtCorreo=Informes”>

¡pulse aquí para enviar datos!

<A>

 

Obsérvese que los datos unidos al hipervínculo tiene el formato Campo=Valor, al igual que sucede en un formulario que se ha enviado. Siempre que proporcione los datos en este formato, el objeto Request será capaz de subdividirlos y analizarlos. Sin embargo; no se podrá utilizar la sintaxis Request.Forrn con los datos enviados mediante un hipervínculo. En su lugar, se deberá utilizar Request.QueryString, que trabaja en la misma forma que Request. Form, pero que se empleará con los datos enviados mediante un hipervínculo. De esta forma, la siguiente instrucción devuelve el valor NuevaTecnología desde el hipervínculo.

 

<%=Request.QueryString(lltxtNombre")%>

 

El objeto Request tiene otros usos además de los ya indicados. Se podrá, por ejemplo, utilizar Request para recuperar toda clase de información relacionada con la aplicación cliente. Podrá acceder a cualquier cosa, desde recetas enviadas junto a la solicitud del cliente a cadenas de agente de usuario de¡ navegador. El siguiente listado muestra un ejemplo sencillo de¡ empleo de la colección ServerVariables perteneciente al objeto Request para determinar la cuenta de Microsoft Windows NT a la que ha accedido                  la aplicación cliente.

 

 <%@ LANGUAGE=”VBScrip” %>

<HTML>

<HEAD>

<META NAME=”GENERATOR” content=”Microsoft Visual Interdev 1.0”>

<META HTTP-EQUIP=”Content-type” content=”text/html;

charset=iso-8859-1>

<TITLE>Variables del servidor</TITLE>

</HEAD>

<BODY BGCOLOR=”WHITE”>

<H1>

Ha accedido con el nombre <%=Request.ServerVariables(“LOGON_USER”%>

</H1>

</BODY>

</HTML>

 

Las variables del servidor proporcionan un amplio abanico de información sobre la aplicación cliente y el servidor Web. La relación completa de todas las variables pertenecientes a esta colección, y que se podrá utilizar, se encuentra en Visual lnterdev. En cualquier caso, para poder acceder a cualquier variable, sólo se tendrá que leer la colección. Por ejemplo, la siguiente instrucción proporciona la cadena de agente usuario del navegador cliente:

 

<%=Reques.ServerVariables"AHTTP-USER-AGENT")%>

 

 OBJETO RESPONSE

 

El objeto Response gestiona el contenido proporcionado a un navegador por un ASP. De hecho aunque no se dé cuenta, utilizará el objeto Response en cada página ASP. Cuando se emplee la combinación de caracteres menor y mayor que/porcentaje/igual («%=variable%»)para devolver el contenido generado por un ASP, el signo igual es, en realidad, la abreviatura de¡ método Write de] objeto Response. Por lo tanto, las dos siguientes instrucciones son equivalentes:

 

<%="NuevaTecnoloía"%>

 

<%Response.Write "NuevaTecnología"%>

 

Como el objeto Response se utiliza con tanta frecuencia en ASP, la abreviatura del signo de igualdad está plenamente justificada. En caso

 

Contrario, tendría que escribir innumerables veces la combinación Response.Write en todas las páginas ASP.

 

Otra útil característica del objeto Response es la propiedad Expires. Response.Expires especifica el tiempo en minutos que deberá transcurrir antes de que expire la página actual. Si se define como cero esta propiedad. la página Web expirará en el momento en que sea importada e lnternet Explorer no almacenará la página en la memora caché.

 

El almacenamiento en caché de Internet Explorer 4.0 afecta a muchos proyectos de desarrollo, y un mal uso puede impedir que su servidor funcione correctamente, IE 4.0 almacena en caché las páginas de dos formas distintas: en el disco y en la memoria. La mayoría de los diseñadores y usuarios están familiarizados con el almacenamiento en disco de las páginas y suponen que esta operación tendrá lugar, pero la mayoría de los usuarios no se percaten de que IE 4.0 también utiliza la memoria de la computadora como lugar de almacenamiento caché. De hecho, IE 4.0 recuerda en la RAM las cinco últimas paginas visitadas. Este hecho puede tener un impacto importante en la forma en que se comporte la aplicación. Supongamos, por ejemplo, la siguiente instrucción que muestra la fecha/hora en una página Web:

 

<HI>LA hora actual es <%Response.Write Now%>

 

Bajo condiciones normales IE 4.0 solicita esta página y se ejecutará el programa en el servidor haciendo que la hora actual aparezca en la página. Sin embargo, si el navegador accede a otra página y vuelve luego acceder a la página que contenía la marca de fecha/hora. La hora no habrá cambiado. Esto se debe a que IE 4.0 a almacenado en la RAM el resultado de la página ASP y no solicita un nuevo acceso al servidor para recuperarla. Esta situación continuará hasta que el usuario visite un mínimo de cinco páginas distintas. En este caso, la primera página a la que se accedió se borrará de la caché de la RAM.

Podrá evitar este efecto perjudicial definiendo como 0 la propiedad Expires del objeto Response. Lo que fuerza que la página Web expire. El código contenido en el siguiente listado muestra la hora correcta siempre que se visualice el contenido de la página independientemente de que se encuentra o no en la caché de la memora RAM.

Del mismo modo, el empleo de la caché de RAM puede originar efectos extraños durante la fase de diseño. Los diseñadores suelen realizar modificaciones sobre una página Web con Visual lnterdev, luego ven su aspecto con un navegador por último se preguntan

 

porque los cambios realizados no aparecen la nueva página. Este efecto suele ocurrir porque la antigua versión de la memoria RAM, y ¡E 4.0 no carga la página modificada. Por tanto, cuando se desarrolle páginas con Visual lnterdev, siempre deberá asegurarse de cargar correctamente sus páginas en el navegador después de realizar los cambios.

 

<%LANGUAGE=”VBScript”%>

<%RESPONSE.Expire = 0%>

<HTML>

<HEAD>

 

<META NAME-"GENERATOR" Content="Microsoft visual InterDev1.0”>

<META HTTP –EQUIV=” Content=-Tipe” content=”test/html;

charset=iso-8859-1>

<TITLE>comó obligar a que una pagina expire</TITLE>

</HEAD>

 <BODY BGCOLOR=”white>

<h1> actualmente la hora es <%Response,write Now%>

</BODY>

</HTML>

 

 OBJETO SERVER

 

El objeto Server proporciona funciones que no están relacionadas entre sí de ninguna forma excepto en el sentido de que son útiles para el diseñador de aplicaciones lnternet.

Quizá la función más importante de todos los objetos Server sea el método CreateObject, que permite crear instancias de componentes Active X. El componente puede ser bien un componente integrado que se comercialice con Visual lnterdev o un componente que se desarrolla en cualquier lenguaje. En cualquier caso, para poder utilizar un componente ActiveX del lado del servidor, se deberá emplear el método CreateObject.

CreateObjet toma como argumento el ProgID del componente ActiveX que se desea utilizar. Un ProgID es un nombre descriptivo para un componente, tal como Hoja.Excel o Word.Basi. La siguiente instrucción muestra la forma en que deberá utilizar el método CreateObject para generar una instancia de un componente de correo electrónico cuyo ProgID sea Conector.Correo:

 

Set MiObjeto = Server.CreateObject ("Conector.Correo")

 

 COMPONENTES DE ACTIVE SERVER PAGES

 

Los componentes de ASP son realmente componentes de ActiveX (como todos aquellos que pueda crear con Visual Basie, Visual C++ e, incluso, Visual J++). Estos componentes especiales, sin embargo, han sido desarrollados por Microsoft y se comercializan con Visual lnterdev. Han sido diseñados para realizar tareas útiles y genéricas para servidores Web,

 

incluyendo el acceso a datos. Se podrá crear estos componentes en sus páginas Web utilizando el método CreateObject de¡ objeto Server. Una vez creados, podrá acceder a sus propiedades y Métodos para llevar a cabo funciones diversas en su servidor.

 

 

 

 

 

 

 

 COMPONENTES DE ACCESO A BASES DE DATOS

 

El componente ASP de mayor utilidad es el denominado Database Access, también llamado objetos de datos ActiveX o ADO. Si se desea editar una base de datos en Web, se deberá emplear este componente. Y los objetos contenidos en él, para leer y escribir a fuentes de datos del tipo Open Database Connectivity (ODBC)

 

(En el apéndice A se presenta una lista completa de los Objetos de Datos de ActiveX).

El objeto Connection se crea mediante el método CreateObject del objeto Server y utiliza una variable para recibir el objeto al que se hace referencia. Una vez creado el objeto Connection, se puede utilizar para conectar con cualquier fuente de datos ODBC. El siguiente código establece una conexión con una fuente ODBC del tipo SQL Server, denominada Publicaciones:

 

<%

‘Declara una variable

Dim objconnection

‘ Crea el objeto connection

set objconnection = server . CreateObjet(“adobc.Connection”)

‘ Abre la conexión con la fuente de datos

objconnection.open “    ”,

%>

 

En el listado anterior, objconnection es la variable utilizada como objeto de referencia, de la instancia del objeto Connection. Esta referencia tendrá acceso a todas las propiedades y métodos del objeto Connection. El método Open establece la conexión con la fuerte de datos y cuenta con tres argumentos nombre de la fuente de datos, ID del usuario y contraseña.

Una vez abierta la conexión con la fuente de datos se podrá utilizar un objeto Recordset para Recuperar la información almacenada en la fuente de datos. El objeto Recorset permite ejecutar la instrucción SELECT de SQL y obtener un grupo de registros que cumplan con las condiciones indicadas en la instrucción SELECT. Al igual que sucede con el objeto Connection, se podrá crear el objeto de Recordset utilizando el objeto Server. En el siguiente ejemplo, el programa ejecuta una instrucción SELECT de SQL sobre la fuente de datos representada por la variable objconnection:

<%

Declara una variable

Dim objRecorset

‘Crea el objeto Recorset

set objRecorset = Server. Createobject(“ADODB.Recorset”)

‘ejecuta la consulta SQL

objRecorset.open “SELECT *”, objConnection

%>

 

Una vez que han sido extraídos los registros, se podrá emplear los metodos MoveFirst, MoveLast, MoveNext y MovePrevious para navegar por los distintos registros. El método Write del objeto Response podrá introducir los datos en una página Web que, posteriormente, importará el navegador.

listado siguiente muestra una página ASP de ejemplo que genera una lista de las editoriales contenidas en una base de datos de Publicaciones.

 

 

<%@ LANGUAGE=VBScript” %>

<HTML>

<HEAD>

<META NAME-"GENERATOR" Content="Microsoft visual InterDev1.0”>

<META HTTP –EQUIV=” Content=-Tipe” content=”test/html;

charset=iso-8859-1”>

 

Declaración de variables

Dim objconnection

Dim objRecordset

‘creacion de objetos

set objconnection= Server.CreateObject("ADODB. Connection”) 

set objRecordset= Server.CreateObject("ADODB. Recordset”)

 

Abrir conexión y ejecutar  la  consulta

objConnection.Open "Publicasiones". "sa””

objRecordset.open"SElECT nombre_pub FROM editores”, objconnection

%>

Rédótdáet.m Loop

 

,</$ELECT5

Administrar la información contenida en un objeto Recordset es una de las primeras tareas de programación que se debe realizar en cualquier aplicación Web orientada a datos. A menudo, una simple consulta da lugar a más filas de datos de las que se pueden mostrar razonablemente en pantalla. Por ejemplo, cuando se utiliza cualquier motor de búsqueda lnternet. El sistema de búsqueda acepta una palabra clave y como resultado, muestra una lista con vínculos a los diferentes servidores que tengan relación con dicha palabra. Sin embargo, muchas veces existen miles de servidores lnternet que contienen la clave introducida. Mostrar todos estos servidores en una única página Web es obviamente imposible.