ASP - Introducción
Written by lopezatienza on 18 Diciembre 2008 – 13:07 -INTRODUCCIÓN
1. Introducción a las páginas ASP
1.1 Introducción
1.2 Aplicaciones de las páginas ASP
1.3 Requisitos
1.1 Introducción
Active Server Pages (ASP) o Páginas de Servidor Activas, es una tecnología creada por Microsoft. Se trata básicamente de un lenguaje de tratamiento de guiones (scripts), basado en Basic, que se denomina VBScript (Visual Basic Script).
Los scripts ASP1 se ejecutan en el servidor antes de enviar la respuesta al navegador y puede utilizarse conjuntamente con HTML2 y JavaScript3 para realizar tareas interactivas y en tiempo real con el cliente.
Con ASP se pueden realizar fácilmente páginas de consulta de bases de datos, funciones sencillas como obtener la fecha y la hora actual del servidor, cálculos matemáticos, etc.
ASP es un lenguaje que se ejecuta en el servidor, por esto no es necesario que el cliente o navegador soporte el lenguaje, el proceso básico de tareas realizadas cuando se solicita una página ASP es mostrado en la figura 1.
Fig. 1
Tareas realizadas para ejecutar una página ASP
1 ASP está agrupado en la categoría de lenguajes script o lenguajes de guión.
2 HTML Hyper Text Markup Language
3 JavaScript Lenguaje de guión de JAVA
1.2 Aplicaciones de las páginas ASP
La facilidad para conectar con una Base de datos y extraer datos de la misma dinámicamente visualizándolos en el navegador es la utilidad más practicada de las páginas ASP.
ASP puede conectarse a gestores de Base de datos SQL4, Access, Oracle, o cualquier otro motor que disponga de driver ODBC.
Comercio electrónico, portales, agendas y todas aquellas aplicaciones en las que el protagonista es la información dinámica.
1.3 Requisitos
Para procesar una página ASP no existe ninguna restricción especial para el cliente, por lo que es indiferente utilizar Internet Explorer o NetScape Communicator sin embargo, en el servidor, es necesario un servidor Web que pueda interpretar el código, siendo el servidor más extendido Internet Information Server (más conocido como IIS).
Los servidores que soportan ASP para plataformas Microsoft son:
• Internet Information Server 3.0 o superior (para sistema operativo NT o Windows 2000)
• Personal Web Server (para Windows 95, Windows 98 y Windows 2000)
Para plataformas Unix además de el servidor de páginas es necesario añadir un software que actúe como intérprete siendo algunos de los más conocidos:
• Chilisoft (http://www.chilisoft.com/)
• Instant ASP (http://developer.novell.com/ndk/halcyon.htm)
ASP - Conceptos Iniciales
2. CONCEPTOS INICIALES
2.1 Declaración del lenguaje
2.2 Bloques de código y comentarios
2.3 Forma de una página ASP
2.1 Declaración del lenguaje
Como ocurre en otros lenguajes de programación, en ASP existe una sentencia de declaración opcional del lenguaje.
<%@ LANGUAGE="VBScript" %>
Esta declaración se escribe al principio del archivo, antes de cualquier otra expresión.
2.2 Bloques de código y comentarios
Para introducir bloques de sentencias hay que escribir los símbolos reservados:
<% {sentencias} %>
Donde sentencias pueden ser una o varias expresiones del lenguaje, como se muestra en el siguiente ejemplo:
...
<%
Request("parametro")
Response.Write(Time)
while not condicional do
rem do nothing
loop
%>
...
Las sentencias en VBScript no se separan por punto y coma (;). Los comentarios de código VBScript se especifican mediante la palabra reservada rem o con el carácter comilla simple (‘) y tienen el ámbito de una línea.
Por ejemplo:
<%
rem Esto es un comentario
‘ que ocupa varias
rem líneas
%>
Y este es un comentario mal construido:
<%
rem Esto es un comentario
pero es ya no lo es así que el procesador de ASP lo interpretará como código, y dará error
%>
2.3 Forma de una página ASP
A continuación veremos el formato de un archivo de texto que contiene código ASP y que genera como salida, un documento HTML, es decir, una página Web.
<%@ LANGUAGE="VBScript" %>
<%
'Declaración de variables y funciones a
'realizar antes de visualizar el documento
'como por ejemplo, inicializar drivers de
'bases de datos, o redireccionar a
'otros documentos
%>
<HTML>
<HEAD>
<TITLE>Título</TITLE>
</HEAD>
<BODY>
<%
'Este texto se ve en el documento cuando lo visualizamos
Response.Write("Esto es texto simple <BR>")
Response.Write("<B>Puedo introducir etiquetas HTML</B><BR>")
%>
<I>Además es posible mezclar bloques ASP con etiquetas HTML</I><BR>
<%
Response.Write("Este un ejemplo muy simple <BR>")
Response.Write("y con ninguna interactividad...")
%>
</BODY>
</HTML>
ENTRADA Y SALIDA
3.1 Response
3.1.1 Response.Write
3.1.2 Response.Redirect
3.2 Request
3.1.1 Método GET
3.1.2 Método POST
3.1 Response
La única manera que tenemos en ASP para producir una salida es usando el objeto Response que envía respuestas al documento HTML que se visualizará en el navegador.
3.1.1 Response.Write
El objeto Response tiene varios métodos y concretamente el método Write(cadena de texto) nos permite producir una salida que ira al navegador, la sintaxis es:
<%
Response.Write({cadena})
%>
Una cadena es cualquier combinación de caracteres ASCII, quitando la comilla doble. Si queremos que aparezca este símbolo debemos introducirlo dos veces (""). Veamos algunos ejemplos:
<%@ LANGUAGE="VBScript" %>
<%
Response.Write("<HTML>")
Response.Write("<HEAD>")
Response.Write("<TITLE></TITLE>")
Response.Write("</HEAD>")
Response.Write("<BODY>")
Response.Write("Esta página genera todas las etiquetas de un
documento<BR>")
Response.Write("HTML normal y corriente...")
Response.Write("</BODY>")
Response.Write("</HTML>")
%>
<%@ LANGUAGE="VBScript" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
Response.Write("Esta página genera todas las etiquetas de un
documento<BR>")
Response.Write("HTML normal y corriente...")
%>
</BODY>
</HTML>
Los dos ejemplos anteriores son equivalentes. Si además queremos escribir el valor de alguna variable:
<%@ LANGUAGE="VBScript" %>
<%
hoy = Date()
%>
Response.Write("Hoy es:" & hoy)
%>
</BODY>
<HTML>
Es de suponer que existe una manera más ágil y abreviada para realizar lo anterior, con menos caracteres:
<%@ LANGUAGE="VBScript" %>
<HTML>
<BODY>
<%
Response.Write("Hoy es:" & Date())
%>
</BODY>
<HTML>
Existe también otra manera más corta de imprimir el valor de una variable, usando la forma reducida
<%=variable%>
Que equivaldría a la instrucción
<% Response.Write(variable) %>
A Continuación mostramos un ejemplo mas completo de esta función.
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<%
Dim tex,num,fecha
tex="variable de texto"
num=45345
fecha=date
Response.Write("Texto simple<br>")
Response.Write(tex & "<br>")
Response.Write("Un numero:" & num & "<br>")
Response.Write("Una fecha:" & fecha & "<br>")
%>
<%=num%>
</body>
</html>
3.1.2 Response.Redirect
Es útil tener una página que tras un determinado tratamiento de algún dato obtenido del cliente llame a otra página, o simplemente, se utilice como método de actualización de enlaces antiguos. En cualquiera de estos casos se utiliza la
sentencia Response.Redirect:
<%@ LANGUAGE="VBScript" %>
<%
rem Este enlace ha quedado obsoleto, redireccionar a...
Response.Redirect("http://www.ucbcba.edu.bo/2001/")
rem Todo lo que hay por debajo de este punto: etiquetas HTML,
rem código ASP no llega a ser interpretado por el procesador de
rem ASP en ningún caso
%>
La utilidad de este código queda demostrada si tenemos en cuenta que, con la dinamicidad de la red, frecuentemente se dan modificaciones en las localizaciones de los recursos. Veamos ahora ejemplo de redireccionamiento para tratamiento de datos.
<%@ LANGUAGE="VBScript" %>
<%
opcion = 1
Select Case opcion
Case 1: Response.Redirect("pag1.html")
Case 2: Response.Redirect("pag2.html")
Case 3: Response.Redirect("pag3.html")
End Select
%>
3.2 Request
La sentencia Request tiene como misión obtener valores de parámetros que las páginas ASP pueden recibir. La forma de pasar pares atributo-valor (parámetrovalor) es la siguiente:
ejemplo.asp?nombre=Antonio&apellidos=Vico%20Lizana&ci=456887
Con los datos introducidos por el cliente (en un formulario, o por otros medios), llamamos a una página de tratamiento de esos datos. Los parámetros que se pasan son:
nombre=Antonio, apellidos=Vico Lizana, C.I.=4566887
Los caracteres %20 que muestra el ejemplo entre los apellidos hacen referencia al carácter espacio en codificación UTP.
También es posible pasar parámetros a otra página a partir de campos de un formulario. En este caso, los nombres de los parámetros vienen dados por los nombres asignados a dichos campos (fields), y la página que trata o recoge los datos se especifica con el atributo ACTION de la etiqueta FORM.
A continuación mostramos un ejemplo de un formulario que recoge los datos mencionados anteriormente.
<%@ LANGUAGE="VBScript" %>
<HTML>
<HEAD>
<TITLE>MI PRIMER FORMULARIO</TITLE>
</HEAD>
<BODY>
<FORM METHOD="GET" ACTION="guardar.asp">
Nombre:
<br><INPUT TYPE="TEXT" NAME="nombre">
<br>Apellidos
<br><INPUT TYPE="TEXT" NAME="apellidos">
<br>C.I.
<br><INPUT TYPE="TEXT" NAME="ci">
<br><INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>
Para recoger los valores que han sido pasados a través de un formulario, tenemos que usar el objeto del servidor Request. Si hemos utilizado el método GET usaremos Request.QueryString("Nombre variable") y si hemos utilizado el método POST usamos Request.Form("Nombre variable").
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido es: <%=Request.QueryString("nombre")%>
<br>
</FORM>
</body>
</html>
3.2.1 Método GET
Los datos de un formulario se envía mediante el método indicado en el atributo METHOD de la etiqueta FORM, los dos métodos posibles son GET y POST.
Si usamos el método GET los datos son enviados mediante el URL y pueden ser vistos en la barra de direcciones. Para recogerlos deberemos usar Request.QueryString("Nombre variable")
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesaGET.asp" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
procesaGET.asp
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido es: <%=Request.QueryString("nombre") &
" " & Request.QueryString("apellidos") %>
<br>
</body>
</html>
3.2.2 Método POST
Ahora usaremos el método POST, a diferencia del método GET los datos enviados no se ven en la barra del navegador. Para recogerlos debemos usar Request.Form("Nombre variable")
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesaPOSY.asp" METHOD="POST">
Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
procesaPOST.asp
<html>
<head>
<title>Ejemplo de ASP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido es: <%=Request.Form("nombre") & " " &
Request.Form("apellidos") %>
<br>
</body>
</html>
VARIABLES, OPERADORES Y SENTENCIAS DEL LENGUAJE
4.1 Variables
4.2 Operadores Aritméticos
4.3 Operadores de Comparación
4.4 Operadores Lógicos
4.5 Sentencias Condicionales
4.5.1 Sentencia IF ... ELSE
4.5.2 Sentencia SELECT
4.6 Bucles
4.6.1 Sentencia WHILE
4.6.2 Sentencia FOR
4.1 Variables
Una variable es un contenedor de información, donde podemos almacenar números enteros, números decimales, caracteres, etc. El contenido de las variables puede ser leído y modificado durante la ejecución de una página ASP.
En ASP no es necesario definir las variables antes de usarlas. Tampoco se tiene la noción de tipos, es decir que una misma variable puede contener un número y luego puede contener caracteres.
<html>
<head>
<title>Ejemplo de VARIABLES</title>
</head>
<body>
<%
Dim a,b,c ‘Declaración opcional
a = 1
b = 3.34
c = "Hola Mundo"
Response.Write(a & "<br>" & b & "<br>" & c)
%>
</body>
</html>
En este ejemplo definimos tres variables, a, b y c. Con la instrucción Response.Write imprimimos los valores que contienen, insertando un salto de línea entre ellas.
Existen dos clases de variables clasificadas por el ámbito de uso, las variables locales que sólo pueden ser usadas dentro de funciones y las variables globales que tienen su ámbito de uso en toda la página ASP.
4.2 Operadores Aritméticos
Los operadores de VBScript son muy parecidos a los de Visual Basic porque el primero procede de este último. Si se conoce Visual Basic estos conceptos resultarán familiares y fáciles de reconocer.
Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.
Operador Nombre Ejemplo Descripción
+ Suma 5 + 6 Suma dos números
- Resta 7 – 9 Resta dos números
* Multiplicación 6 * 3 Multiplica dos números
/ División 4 / 8 Divide dos números
% Módulo 7 mod 2 Devuelve el resto de dividir ambos números,
en este ejemplo el
resultado es 1
^ Exponente 8 ^ 4 Eleva 8 a 4.
A continuación mostramos es uso de los operadores aritméticos en una página ASP.
<html>
<head>
<title>Ejemplo de OPERADORES ARITMETICOS</title>
</head>
<body>
<%
Dim a,b
a = 8
b = 3
Response.Write( a + b & "<br>")
Response.Write( a - b & "<br>")
Response.Write( a * b & "<br>")
Response.Write( a / b & "<br>")
Response.Write( a mod b & "<br>")
Response.Write( a ^ b & "<br>")
%>
</body>
</html>
4.3 Operadores de Comparación
Los operadores de comparación son usados para comparar valores y así tomar decisiones.
Operador Nombre Ejemplo Retorna VERDAD cuando:
= Igual a = b a es igual b
<> Distinto a <> b a es distinto b
< Menor que a < b a es menor que b
> Mayor que a > b a es mayor que b
<= Menor o igual a <= b a es menor o igual que b
>= Mayor o igual a >= b a es mayor o igual que b
A continuación mostramos es uso de los operadores de comparación en una página ASP.
<html>
<head>
<title>Ejemplo de OPERADORES DE COMPARACION</title>
</head>
<body>
<%
Dim a,b
a = 8
b = 3
c = 3
Response.Write( (a = b) & "<br>")
Response.Write( (a <> b) & "<br>")
Response.Write( (a < b) & "<br>")
Response.Write( (a > b) & "<br>")
Response.Write( (a >= c) & "<br>")
Response.Write( (b <= c) & "<br>")
%>
</body>
</html>
4.4 Operadores Lógicos
Los operadores lógicos son usados para evaluar varias comparaciones.
Operador Nombre Ejemplo Retorna VERDAD cuando:
And Y (7>2) and (2<4) Devuelve verdadero cuando ambas condiciones son verdaderas.
Or O (7>2) or (2<4)
Devuelve verdadero cuando al menos una de las dos es verdadera.
Xor XOR (7>2) xor (2<4)
Devuelve verdadero cuando sólo una de las dos es verdadera.
Not No not (7>2) Niega el valor de la expresión.
A continuación mostramos es uso de los operadores lógicos en una página ASP.
<html>
<head>
<title>Ejemplo de OPERADORES LOGICOS</title>
</head>
<body>
<%
Dim a,b,c
a = 8
b = 3
c = 3
Response.Write( ((a = b) and (c > b)) & "<br>")
Response.Write( ((a = b) or (b = c)) & "<br>")
Response.Write( (not (b <= c)) & "<br>")
%>
</body>
</html>
4.5 Sentencias Condicionales
Las sentencias condicionales nos permiten ejecutar o no ciertas instrucciones dependiendo del resultado de una condición.
4.5.1 Sentencia: IF ... ELSE
<%
if condición then
Sentencias a ejecutar cuando la
condición es cierta.
else
Sentecias a ejecutar cuando la
condición es falsa.
end if
%>
La sentencia if ejecuta una serie de instrucciones dependiendo de la condición impuesta. A continuación un ejemplo.
<html>
<head>
<title>Ejemplo de la sentencia IF ELSE</title>
</head>
<body>
<%
Dim a,b
a = 8
b = 3
if a < b then
Response.Write("a es menor que b")
else
Response.Write("a no es menor que b")
end if
%>
</body>
</html>
4.5.1 Sentencia: SELECT
<%
Select Case opcion
Case 1: Sentencias a ejecutar cuando la opción es 1.
Case 2: Sentencias a ejecutar cuando la opción es 2.
Case 3: Sentencias a ejecutar cuando la opción es 3.
End Select
%>
La sentencia select ejecuta una serie de instrucciones dependiendo de la opción escogida. A continuación un ejemplo.
<html>
<head>
<title>Ejemplo de la sentencia SELECT</title>
</head>
<body>
<%
Dim opcion
opcion = 3
Select Case opcion
Case 1: response.write(“esta es la opción 1”)
Case 2: response.write(“esta es la opción 2”)
Case 3: response.write(“esta es la opción 3”)
End Select
%>
</body>
</html>
4.6 Bucles
Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición.
4.6.1 Sentencia: WHILE
<%
while condición
intrucciones a ejecutar.
wend
%>
Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro de while.
En el siguiente ejemplo, el valor de i comienza en 0, durante la ejecución del bucle, se suma 1 al valor de i de manera que cuando i vale 10 ya no se cumple la condición y se termina la ejecución del bucle.
<html>
<head>
<title>Ejemplo de sentencia WHILE</title>
</head>
<body>
Inicio<BR>
<%
Dim i
i=0
while i<10
Response.Write("El valor de i es " & i & "<br>")
i=i+1
wend
%>
Fin<BR>
</body>
</html>
4.6.2 Sentencia: FOR
<%
for variable=inicial to final
intrucciones a ejecutar.
next
%>
La instrucción for permite indicar un rango de valores válidos para la variable de iteración, desde el valor indicado al principio hasta el valor indicado al final, en el siguiente ejemplo i varia de 0 a 9.
<html>
<head>
<title>Ejemplo de sentencia FOR</title>
</head>
<body>
Inicio<BR>
<%
Dim i
for i=0 to 9
Response.Write("El valor de i es " & i & "<br>")
next
%>
Final<BR>
</body>
</html>
PROCEDIMIENTOS Y FUNCIONES
5.1 Procedimientos
5.2 Funciones
5.3 Librerías
El uso de procedimientos y funciones nos brinda la capacidad de agrupar varias
instrucciones bajo un solo nombre y poder llamar a estos conjuntos varias veces
desde diferentes sitios, ahorrándonos la necesidad de escribir el código
nuevamente.
5.1 Procedimientos
<%
sub Nombre(parametro1, parametro2,...)
instrucción1;
instrucción2;
instrucción3;
instrucción4;
end sub
%>
Para llamar a un procedimiento tenemos dos sintaxis distintas:
Sin paréntesis
Nombre parametro1, parametro2...
Con paréntesis
call Nombre(parametro1, parametro2)
5.2 Funciones
Las funciones son iguales que los procedimientos pero nos permiten devolver un
resultado.
<%
function Nombre(parametro1, parametro2,...)
instrucción1;
instrucción2;
instrucción3;
instrucción4;
Nombre = Valor de retorno
end function
%>
Para llamar a una función se utiliza la siguiente sintaxis:
Nombre(parametro1, parametro2...)
A continuación un ejemplo.
<html>
<head>
<title>Ejemplo de FUNCIONES</title>
</head>
<body>
<%
function media_aritmetica(a, b)
Dim media
media=(a + b)/2
media_aritmetica = media
end function
Response.Write(media_aritmetica(4,6) & "<br>")
Response.Write(media_aritmetica(3242,524543) & "<br>")
%>
</body>
</html>
5.3 Librerías
El uso de librerías es tremendamente útil, nos permiten agrupar procedimientos, funciones y variables en un mismo fichero, para luego incluir ésta librería en distintas páginas y disponer del código fácilmente.
A continuación definimos la librería protomartir.asp
<%
sub CabeceraPagina
%>
<FONT SIZE=1>Esta cabecera estará en todas sus
páginas.</FONT><BR>
<hr>
<%
end sub
sub PiePagina
%>
<hr>
<FONT SIZE="1"> Autor: Pedro Domingo Murillo
<BR>Fecha: 16 de Julio de 1809.
</FONT><BR>
<%
end sub
%>
Ahora vamos a crear 2 páginas que usan la librería definida anteriormente para conseguir que las dos paginas tengan la misma cabecera y pie de página.
La instrucción para incluir una librería en nuestra página es:
<!-- #include file="nombre de librería" -->
Definición de pagina1.asp
<html>
<head>
<title> PAGINA 1 – ejemplo de LIBRERIAS</title>
</head>
<body>
<!-- #include file="protomartir.asp" -->
<% call CabeceraPagina %>
Página 1
<BR><BR><BR><BR><BR>
Hoy es un día fatídico para la nación que recién <BR><BR>
empieza a gestarse...<BR><BR>
fin<BR><BR>
<% call PiePagina %>
</body>
</html>
Definición de pagina2.asp
<html>
<head>
<title>PAGINA 2 – ejemplo de LIBRERIAS </title>
</head>
<body>
<!-- #include file="protomartir.asp" -->
<% call CabeceraPagina %>
Felicidades La Paz<BR><BR>
por cumplir tu... <BR><BR>
Esta es otra página pero comparte el pie y la cabecera con la
anterior.<BR><BR>
<% call PiePagina %>
</body>
</html>
Tags: ASP
Posted in ASP |
