Ir arriba
PARADIGMA: Para enrredar un problema, nada mejor
que usar una computadora !!! ( Wilucha)

Lenguaje: A S P

Forma 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 para el web

La idea de esta page, es mostrar algunas ventajas de ASP, radicadas 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 desde la web, es ejecutado; así, los usuario no tienen acceso más que a la página resultante en su navegador.
Con este fín, te propongo ver . .

Secuencia
de
Comandos
Objetos
Integrados
Cookies
en
ASP
Altas
en
ASP

El modelo de Páginas ASP
Las páginas ASP comienzan a ejecutarse cuando un usuario solicita un archivo .asp al servidor Web a través del explorador. El servidor web llama a ASP, que lee el archivo solicitado, ejecuta las secuencias de comandos que encuentre y envía los resultados al explorador del cliente.

Puesto que las secuencias de comandos se ejecutan en el servidor, y NO en el cliente, es el servidor el que hace todo  el trabajo necesario para generar las paginas que se envían al explorador. Las secuencias de comandos quedan ocultas a los usuarios, estos solo reciben el resultado de la ejecución en formato HTML.

Desaparece por tanto el problema de si el cliente puede o no ejecutar sentencias de comandos, el servidor Web solo envía el resultado en código HTML standard interpretable por cualquier explorador

Crear Páginas ASP
Los archivos .asp son archivos de texto normales, no es necesario ningún editor especial para crearlos, puede usarse cualquier editor que genere código ascii.
Un archivo .asp puede contener texto, código HTML, código ASP o cualquier combinación de estos. Si no contiene código ASP se comporta como un archivo .html normal

  • Software necesario para la ejecución de Páginas Active Server

    Para la implantación de un servidor Web que soporte ASP el software necesario es, si lo que estamos configurando es un servidor de alto rendimiento:

    ·  WINDOWS 2000 server

    ·  WINDOWS NT 4.0 + IIS 4.0(INTERNET INFORMATION SERVER 4.0)  Ó  IIS3.0 + ASP.EXE

    Para desarrollo o sistemas Intranet los requerimientos son mas sencillos:

    • WINDOWS 2000 PROFESIONAL
    • WINDOWS 95 + PERSONAL WEB SERVER 1.0 + ASP.EXE
    • WINDOWS 98 + PERSONAL WEB SERVER 4.0

    Tanto IIS como Personal Web Server pueden descargarse desde la web de Microsoft en:

    http://www.microsoft.com/msdownload/ntoptionpack/askwiz.asp

    Nota: Personal Web Server 4.0 esta incluido en algunas de las distribuciones de Windows 98 en el directorio ADD-ONS\PWS

     

    Un día sin sonrisas es un día perdido..!! PARADIGMA:
    De todas las cosas que se pueden hacer con la computadora...
    ...las más inútiles son las más divertidas..!!!
    Wilucha


    Volver al principio


  • Secuencias de comandosVolver al principio

    • Agregar secuencias de comandos

      Como vimos anteriormente, una pagina ASP mezcla en el mismo archivo secuencias de comandos con código HTML standard. Las secuencias de comandos asp se distinguen del resto del texto del archivo mediante delimitadores (un delimitador es un carácter o secuencia de caracteres que marca el principio o final de una unidad).

          En el caso de HTML , dichos delimitadores son los símbolos "<" y ">" que enmarcan las etiquetas Html. ASP utiliza los delimitadores 

      "<%"  y   "%>

      para enmarcar las secuencias de comandos.

      Veamos esto con un ejemplo sencillo:

      <HTML>

      <BODY>

        Hola, bienvenido a mi página, estamos a : <%=Now( )%>

      </BODY>

      </HTML>

      La función NOW() de VBScript devuelve la fecha y hora actuales.
      Cuando el servidor Web procese la pagina nos devolverá el siguiente resultado al explorador:

       

      Hola, bienvenido a mi página, estamos a : 4/1/2000   14:25:55 PM

       

          Como vemos, el cliente, no recibe el código asp, recibe el resultado de la ejecución de dicho código.

          Dentro de los delimitadores ASP se puede incluir cualquier instrucción, expresión, procedimiento u operador válido para el lenguaje de programación que estemos usando. Un ejemplo de esto seria una página que nos mostraría:

      Buenos días

      si la ejecutamos antes de las 12:00 o:

      Buenas Tardes

      si la ejecutamos después de esta hora, el código seria el siguiente:

      <HTML>

      <BODY>

      <% If Time( ) >= #12:00:00 AM# And Time( ) <#12:00:00 PM# Then%>

               Buenos días

      <%Else%>

               Buenas Tardes

      <%End If%>

      </BODY>

      </HTML>

    • Establecer el lenguaje de la aplicación

      ASP viene de forma nativa  con dos motores de secuencia de comandos Microsoft Visual Basic Scriptig Edition (VBScript)  y  Microsoft JScript. Puede instalar y utilizar motores de otros lenguajes como REXX y Perl.

          Para establecer el lenguaje principal de secuencia de comandos en todas las páginas de una aplicación, establezca la propiedad Lenguaje ASP predeterminado en la ficha Opciones de la Aplicación en el Administrador de Servicios Internet.

          Para establecer el lenguaje principal de secuencia de comandos en una única página, hay que agregar la directiva <%@ LANGUAGE%> al principio del archivo .asp. La sintaxis de esta directiva es la siguiente:

      <%@ LANGUAGE=Lenguaje_secuencia_comandos %>

      donde Lenguaje_secuencia_comandos es el lenguaje principal de secuencia de comandos que va a establecer en esa página concreta. El valor de la página invalida el valor global de todas las páginas de la aplicación.

      Todos los ejemplos de estas páginas están escritos en VBScript

       

      ·        Comentarios en VBScript

         VBScript acepta comentarios marcados con apóstrofes. Estos comentarios se eliminan al procesarse la secuencia de comandos y no se envían al explorador.

      'Esta linea y las siguientes son comentarios.

      'La función ImprimirTabla imprime los elementos de una matriz.

      Call ImprimirTabla (mimatriz( ))

          No puede incluir comentarios en expresiones de resultados. Por ejemplo, la primera línea que sigue funciona, pero la segunda no, porque empieza con <%=

      <% i=i+l 'incrementa i. Esta instrucción funciona.%>

      <%= i  'imprime el valor i. Esta instrucción no funciona.%>


    Volver al principio


  • Objetos integrados de ASPVolver al principio

    Objeto Application

    El objeto Application se utiliza para compartir información entre todos los usuarios de una aplicación (entendemos por una aplicación ASP todos los archivos .asp de un directorio virtual y sus subdirectorios. Como varios usuarios pueden compartir un objeto Application, existen los métodos Lock y Unlock para asegurar la integridad del mismo (varios usuarios no puedan modificar una misma propiedad al mismo tiempo).

    Lock

    El método Lock asegura que sólo un cliente puede modificar o tener acceso a las variables de Application al mismo tiempo.

    Sintaxis

    ApplicationLock

    Unlock

    El método Unlock desbloquea el objeto Application para que pueda ser modificado por otro cliente después de haberse bloqueado mediante el método Lock. Si no se llama a este método de forma explícita, el servidor Web desbloquea el objeto Application cuando el archivo .asp termina o transcurre su tiempo de espera.

    Sintaxis

    Application.Unlock

     

    Ejemplo

    <% Application.Lock

    Application("visitas") = Application("visitas")+1

    Application.Unlock %>

    Eres el visitante numero <%= Application("visitas") %>

    En el ejemplo anterior el método Lock impide que más de un cliente tenga acceso a la variable Visitas al mismo tiempo. Si la aplicación no se hubiera bloqueado, dos clientes podrían intentar incrementar simultáneamente el valor de la variable Visitas. El método Unlock libera el objeto bloqueado de forma que el próximo cliente puede incrementar la variable.

     

    Nota Importante:

    En el objeto Application pueden almacenarse matrices, pero estas son almacenadas como un objeto, es decir, no podemos almacenar o recuperar un solo elemento de la matriz, si no que cargaremos o recuperaremos la variable con la matriz completa

    Ejemplo

    <%Dim parametros(2)
    parametros(0) = "verde"
    parametros(1) = 640
    parametros(2) = 480
    Application.Lock
    Application("Param") =parametros%>
    Application.UnLock

    con estas instrucciones almacenaríamos TODA la matriz en la variable de aplicación "Param"

    Para recuperar los valores de la matriz primero recuperamos esta en una variable normal

    <%Apliparam=Application("Param")%>

    Ahora podremos operar con los valores de la tabla en las variables Apliparam(0), Apliparam(1) y Apliparam(2)  Objeto Request

    El Objeto Request recupera los valores que el cliente pasa al servidor durante una petición HTTP.

    Dependiendo de la forma en que enviemos los datos al servidor tendremos que utilizar una u otra de las diversas colecciones del objeto Request. Las mas típicas son:

    ·        FORM   recupera datos enviados desde un formulario mediante el método POST.

    ·        QUERYSTRING  recupera datos enviados como cadena de consulta HTTP.

    ·        COOKIES  recupera los valores de las Cookies.

    Sintaxis General:

    Request.coleccion(elemento)

    Ejemplos:

    FORM

    Supongamos que enviamos la información desde el siguiente formulario:

    <form method="POST" action="recibir.asp">

    <p>Nombre: <input type="text" name="Nombre" size="20"></p>

    <p>Nacionalidad: <input type="text" name="Nacionalidad" size="20"></p>

    <p><input type="submit" value="Enviar" name="Enviar"></p>

    </form>

    En nuestra página "recibir.asp" podriamos usar la siguiente secuencia:

    Hola Sr/a <%=request.form("nombre")%> <br>

    Asi que usted es de nacionalidad <%=request.form("nacionalidad")%>

    Con lo que el resultado seria:

    Hola Sr/a Julian

    Asi que usted es de nacionalidad francesa

     

    QUERYSTRING

    Supongamos que enviamos la información en forma de cadena de consulta (Notar que una cadena de consulta HTTP esta especificada por las parejas de valores que siguen al signo "?"):

    <a href="recibir.asp?nombre=Julian&nacionalidad=francesa">

    En nuestra página "recibir.asp" podriamos usar la siguiente secuencia:

    Hola Sr/a <%=request.querystring("nombre")%> <br>

    Asi que usted es de nacionalidad <%=request.querystring("nacionalidad")%>

    Con lo que el resultado seria:

    Hola Sr/a Julian

    Asi que usted es de nacionalidad francesa

     

    Objeto Response

    El Objeto response se usa para enviar resultados al navegador cliente o establecer valores de Cookies.

    Sintaxis general:

    Response.metodo [valor]

    Entre los métodos mas interesantes del objeto Response estan los siguientes:

    WRITE

    El método Write escribe una cadena de resultado en el navegador cliente (Nota: cuando se usa la sintaxis <%=variable%> estamos usando implícitamente el método Response.Write).

    Ejemplo:

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

    obtenemos

    Hola mundo

     

    REDIRECT

    El método Redirect hace que el explorador se conecte con una dirección URL diferente. (Nota: debemos usar este metodo antes de enviar cualquier resultado al navegador cliente, en caso contrario produce un error).

    Ejemplo:

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

    El navegador se dirigirá a la URL especificada

    Objeto Server

    El objeto Server nos proporciona acceso a métodos y propiedades del servidor.

    Propiedades:

    ScriptTimeout


    Especifica la cantidad maxima de tiempo que puede tardar la ejecución de una secuencia de comandos (Tiempo maximo que puede tardar en ejecutarse una página dada).

    Sintaxis

    Server.ScriptTimeout= nº de segundos

    Ejemplo:

    <% Server.ScriptTimeout=120 %>

    La página puede ejecutarse durante 120 segundos antes de que el servidor la termine.

     

    Metodos:

    CreateObject


    Crea una instancia de un componente ActiveX en el servidor.

    Sintaxis

    Server.CreateObject (IdProg)

    IdProg  es el identificativo del tipo de componente que queremos crear, nos viene suministrado por el fabricante del componente.

    Ejemplo:

    <% set Mitabla = CreateObject("ADODB.Recordset") %>

    Instancia un objeto de tipo recordset y lo asigna a la variable "Mitabla".

     

    Objeto Session

    El objeto Session permite almacenar la información necesaria par una sesión de usuario contra nuestra aplicación ASP. Las variables que almacenemos en el objeto Session no se pierden al cambiar de página, si no que se mantienen hasta que el cliente sea eliminado por el servidor. 

    Las variables de Session de un cliente solo pueden ser accedidas por ese cliente. 

    El servidor crea automáticamente el objeto Session cuando un usuario que no tenga actualmente una sesión solicita una pagina Web de la aplicación.

    (Nota: el servidor elimina un cliente bien cuando desde una pagina ASP se invoca el método Abandon  o bien cuando este  cliente lleva 20 minutos sin actividad en nuestra aplicación).

     

    Creación de una variable en Session

    Sintaxis

    Sesion("Nomvariable")= valor

    Ejemplo:

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

    Para recuperar ese valor:

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

    Esto nos almacenaría el valor "rojo" en la variable "ColorFavorito"

    Nota Importante:

    En el objeto Session pueden almacenarse matrices, pero estas son almacenadas como un objeto, es decir, no podemos almacenar o recuperar un solo elemento de la matriz, si no que cargaremos o recuperaremos la variable con la matriz completa

    Ejemplo

    <%Dim cestacompra(2)
    cestacompra(0) = 1
    cestacompra(1) = 8
    cestacompra(2) = 22
    Session("Cesta") =cestacompra%>

    con estas instrucciones almacenaríamos TODA la matriz en la variable de sesión "Cesta"

    Para recuperar los valores de la matriz primero recuperamos esta en una variable normal

    <%Micesta=Session("Cesta")%>

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

     

    Metodos:

    Abandon


    Destruye todos los objetos y variables almacenados en el objeto Session.

    Ejemplo:

    <% Session.Abandon %>


    Volver al principio


  • COOKIES Volver al principio

    • Las cookies

      Las cookies son el mecanismo que nos permite guardar información relativa a un usuario a lo largo de sus distintos accesos a nuestras páginas.

      Nos permite integrar funcionalidades como:

      o      Personalización de opciones de cliente

      o      Personalización en función de las características del cliente

      o      Cestas de compra

      o      Etc.

      Las cookies se almacenan en los equipos de los clientes, esto hay que tenerlo en cuenta por las posibles faltas de integridad de datos que pudieran ocurrir.

      ASP implementa la posibilidad de usar cookies para crear o destruir información que se almacena en los equipos de los clientes.

      Las cookies se transmiten en las cabeceras cuando se realiza la comunicación http y es el navegador el encargado de almacenarlas.

      Las cookies se implementan como una colección y se usan mediante los objetos integrados Request y Response.

       Tiempo de vida de una cookie

      Por defecto una cookie tiene un ámbito de sesión, es decir, tiene de vida el tiempo en que esta activo el navegador.

      Podemos variar el tiempo de vida de una cookie mediante el atributo expires

       

      Sintaxis: 

      Response.Cookies(cookie)[(clave)|.atributo] = valor

      Request.Cookies(cookie)(clave)

       

      Ejemplos:

      Enviar una cookie simple

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

      Recuperar el valor de esa cookie 

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

      Enviar una cookie con claves 

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

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

       

      Recuperar  una cookie con claves 

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

       Nos recuperaría el valor morado

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

      Nos recuperaría el valor blanco

       

      Nota: Cuando usamos Response para escribir una cookie, si esta ya existía se sobreescribe.

       

       

      Atributos:

      Expires

      Establece el día de caducidad de una cookie

      Ejemplos:

      Hacer que una cookie caduque inmediatamente

       

      <% Response.cookies(cookie).expires="1/1/1990"%>

       

      Hacer que una cookie caduque cierto día

       

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


    Volver al principio


  • Ejemplo -Altas en Asp  Volver al principio

    • Ejemplo Practico para comprension del Tema.

      El ejemplo que realizaremos a continuación es :

      Ø       Agregar un registro a una base de datos y listar la base de datos.

      AGREGAR UN REGISTRO A UNA BASE DE DATOS

      Para agregar un registro debemos dar los siguientes pasos:

      1. Realizar en html un formulario que nos permita colocar los datos que agregaremos como registro a la base de datos.
      2. En nuestro caso en particular hemos querido listar los registros de la base de datos para conocer cuales son los datos cargados. Debemos, por lo tanto realizar una conexión con la base de datos y luego listar registro a registro.
      3. Para subir los datos, nos hemos valido de otra página (que en este caso hemos dejado invisible a los ojos del visitante) desde donde mediante la orden SQL "INSERT"   efectivice la carga. Redireccionamos entonces, el formulario a una segunda página (que llamamos procesar.asp).
      4. En la página procesar.asp no hemos colocado código html ni nada que pueda ser visible al visitante, solo cargamos los datos (mediante código asp) y la subimos a la base de datos. Para esto último fue necesario previamente establecer la conexión correspondiente con la base de datos.
      5. Redireccionamos nuevamente a la página del formulario (en nuestro caso subirdatos.asp) y vemos que en la última parte de la misma, donde se listan los datos aparece el nuevo registro.

      Veamos el ejercicio y sus comentarios:

       

       

      <html>
      <head>
      <title>Altas en Base de datos</title>
      </head>
      <body>
      <h1>Ejemplo de uso de bases de datos con ASP y ADO</h1>
      <!--****************CREACION DE UN FORMULARIO***********-->
      <!--Mediante el método post redireccionaré los datos a la página "procesar.asp" cuando un botón se lo indique-->

      <form action="procesar.asp" method="post">
      <!--Creo una tabla-->
      <table>
      <tr>
      <td>Nombre:</td>
      <!--agrego un campo de texto que llamo nombre en el formulario y le permito un máximo de 30 caracteres-->
      <td><input type="text" name="nombre" size="20" maxlength="30"></td>
      </tr>
      <tr>
      <td>Apellido:</td>
      <!--Agrego un nuevo campo que llamo apellido en el formulario y le permito un máximo de 30 caracteres-->
      <td><input type="text" name="apellido" size="20" maxlength="30"></td>
      </tr>
      </table>
      <!--Agrego un botón con el nombre "accion" y dentro una inscripción "Agregar" que redireccionará los datos a "procesar.asp"-->
      <input type="submit" name="accion" value="Agregar">
      </form>
      <hr>

      <%
      '***********************HAGO UNA CONEXIÓN A LA BASE DE DATOS******************
      ' Abro el código ASP y declaro el nombre de tres variables

      Dim cn,SQLstat, rs
      'Creo una instancia del objeto ADODB Connection para abrir una conexión con una base de datos
      Set cn = Server.CreateObject("ADODB.Connection")
      'En la variable "cn" indico la "ruta" donde se encuentra la base de datos.
      cn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\db_basica.mdb"))
      'En la variable "SQLstat" guardo la sentencia SQL que definirá la tabla y los campos que voy a utilizar.
      SQLstat = "SELECT Nombre, Apellido FROM tb_basica"
      'Indico a la variable "rs" como debe ejecutar el recordset según lo indicado en "SQLstat".
      Set rs = cn.Execute(SQLstat)
      'Cierro ASP.
      %>
      <table border=1 cellspacing=1 cellpadding=1>
      <tr><td>&nbsp;Nombre</td><td>&nbsp;Apellido&nbsp;</td></tr>

      <%
      ' ***********************LISTAR REGISTROS DE LA BASE DE DATOS****************
      ' Vuelvo a abrir código ASP.
      Indico que mientras no se produzca el fin de la tabla (condición EOF -después del último registro)...
      while (not rs.Eof)
      ' ...Se escriba en pantalla el campo Nombre y Apellido de la variable rs que contiene el recordset.
      Response.Write("<tr><td>&nbsp;" & rs("Nombre") & "</td><td>&nbsp;" & rs("Apellido") & "&nbsp;</td></tr>")
      ' MoveNext mueve el puntero del recordset al siguiente registro creando un bucle donde response.write vuelve a  escribir, esta vez  el segundo registro y así sucesivamente hasta llegar a EOF
      rs.MoveNext
      wend
      'Se cierra el recordset
      rs.Close

      'Se cierra la conexión.

      cn.Close
      'Se destruye el recordset
      set rs = nothing
      'Se destruye la conexión
      set cn = nothing
      'Se cierra el código ASP.
      %>
      </table>
      </body>
      </html>

      Al oprimir el botón "Agregar" redirecciono a la página "procesar.asp" los datos aquí colocados.

       

      Veamos ahora el código comentado de la página "procesar.asp"

      <!--Esta página será invisible en el navegador y solo servirá como "puente" entre el formulario y la base de datos-->
      <!--Abro directamente el código ASP sin escribir una línea html-->
      <%
      'Declaro tres variables para abrir la conexión
      Dim cn,SQLstat
      'Creo una instancia del Objeto ADODB Connection
      Set cn = Server.CreateObject("ADODB.Connection")
      'Con "cn" indico la "ruta" donde se encuentra la base de datos
      cn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\db_basica.mdb"))
      'Con SQLstat guardo las sentencias SQL donde se indica qué debo "Insertar"( en la tabla "tb_basica"), en este caso los campos Nombre y  Apellido
      SQLstat = "insert into tb_basica (Nombre, Apellido) values ('" & Request.Form("Nombre") & "','" & Request.Form("Apellido") & "')"
      'Con la variable cn, ejecuto las sentencias SQL guardadas en SQLstat.
      cn.Execute(SQLstat)
      'Con "Close" cierro rs y cn respectivamente. Con "nothing" destruyo ambas.
      rs.Close
      cn.Close
      set rs = nothing
      set cn = nothing
      'Con "Response.Redirect" redirecciono nuevamente a la página subirdatos.asp. Si los datos fueron cargados aparecerán listados.
      Response.Redirect("subirdatos.asp")
      'Cierro el código ASP
      %>

           

       

    PARADIGMA: OLVÍDA que vos sos indispensable
    en tu trabajo, tu casa o tu grupo habitual.
    Por más que eso te desagrade,
    todo camina sin tu actuación,
    salvo vos mismo..!! ( Wilucha )
    Paradigmas
    de Vida
    Linguísticos
    Sistémico
    Matemáticos

    PARADIGMA: Es más valioso quién se levanta
    que quién nunca cayó.. ( Wilucha )

    PARADIGMAS IMPRESOS:
    Lenguajes Gramáticas Autómatas Series
    Laplace Ecuación Operador Compilador

    PARADIGMA
    Cultivo una rosa blanca
    ..en julio, como en enero
    para el amigo sincero
    que me da su mano franca..!!

    Y para el cruel que me arranca
    el corazón con que vivo,
    cardo ni ortiga cultivo;
    ..cultivo una rosa blanca..!
    José Martí

    Mis Paradigmas

    Te espero en: wilucha@gmail.com

    Esta page está en: www.wilocarpio.com.ar

    11/10/2004

    Volver al principio