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.
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. |
|||||
de Comandos |
Integrados |
en ASP |
en ASP |
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
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:
Tanto IIS como Personal
Web Server pueden descargarse desde la web de Microsoft en:
http://www.microsoft.com/msdownload/ntoptionpack/askwiz.asp
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> |
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.%> |
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) |
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")%> |
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 |
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
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".
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) |
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 %> |
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"%> |
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:
Veamos el ejercicio y sus comentarios: |
|
|
|
<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--> |
|
|
|||||
Lenguajes | Gramáticas | Autómatas | Series | ||
Laplace | Ecuación | Operador | Compilador |
Y para el cruel que me arranca
el corazón con que vivo,
cardo ni ortiga cultivo;
..cultivo una rosa blanca..!
José Martí
|
||||||||
Te espero en: wilucha@gmail.com
Esta page está en: www.wilocarpio.com.ar
11/10/2004