http://www.cybercursos.net
Introducción a Active Server Pages
Introducción a la Introducción
Active Server Pages (ASP), es una tecnología propietaria de Microsoft. Se trata
básicamente de un lenguaje de tratamiento de textos (scripts), basado en Basic, y que
se denomina VBScript (Visual Basic Script). Se utiliza casi exclusivamente en los
servidores Web de Microsoft (Internet Information Server y Personal Web Server). Los
scripts ASP se ejecutan, por lo tanto, en el servidor y puede utilizarse conjuntamente
con HTML y Javascript 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 sistema servidor,
cálculos matemáticos simples, etc.
Predisposición
Desde que accedí por la red a una página con un tutorial on-line, pensé que afrontar el
reto de aprender algo a través de aquel sistema era una tarea de titanes. Estaba en
inglés, se le cansa a un@ la vista tanto rato delante de la pantalla, no había un archivo
con los fuentes comprimidos que pudiera bajarme (para poder mejorar la dinamicidad
y minimizar la cuantía de la factura de la compañía telefónica), tardaba mucho, tenía
publicidad por todas partes,... un rollo. Lo que me hizo desistir en pocos minutos de mi
intento por culminar aquella gesta.
Ahora que yo sé algo que algunos otros todavía no saben, me llaman personas que
quieren saber lo que yo sé, y aunque me esfuerzo en advertirles que es muy poco,
todos quieren saber, aunque sea, ese poco. Con ese afán surgió este trabajo.
Si no sabes nada de ASP y te gustaría aprender un poco, mi recomendación es que
sigas leyendo estas páginas (para que este trabajo tenga algún sentido), sino, mejor te
diriges al cuadrito esa de arriba que pondrá algo así como dirección, address o url, y
escribes otro conjunto de símbolos, que a poder ser, sean caracteres ASCII y que
especifiquen una localización de recurso válida en Internet.
Si estás leyendo este párrafo es que o bien no haces caso a las advertencias, o sufres
un repentino ataque de interés inusitado, en un área cuasi mono-plataforma y mono-
sistema, o tienes otras razones personales que no soy quien para juzgar. En cualquier
caso estás aquí y ahora, y pretendes pasar algo de tiempo ampliando conocimientos o
criticando este trabajo (tan loable la primera como la segunda).
Requisitos Previos
Para no hacer de este tutorial un trabajo largo y pesado, supondremos que el/la
hábid@ lector/a tiene conocimientos las áreas más comunes relacionadas con las
Página 1
http://www.cybercursos.net
tecnologías para la Web: HTML y Javascript; algo de lenguajes de programación,
sobre todo Basic (MS Basic), y otro poco de SQL, para las consultas de base de
datos.
Además es totalmente necesario tener algo de tiempo para leer el manual y entender
los ejemplos. Para llevar a cabo pruebas de programas es necesario tener acceso a
un servidor con soporte para ASP, como pueden ser los anteriormente mencionados
Internet Information Server o Personal Web Server.
Para el manejo de bases de datos, dado que estamos en un entorno cuasi totalmente
Microsoft, en estas páginas se explicarán las bases de datos Access, aunque la
dinámica es muy similar en otras.
Interfaz
Para hacer que todo vaya rápido y fácil, en estas páginas no hay demasiadas
imágenes, ni applets, ni videos,... lo que redunda en que si a alguien le interesa
imprirlo, sólo tendrá que hacer pequeños retoques aquí y allá.
El código ASP que contienen los archivos que veremos está puesto en azul. Los
comentarios dentro del código, para que aparezcan más significativos los he puesto
en verde, y los enlaces en rojo. En algunos casos, las etiquetas de HTML no
relevantes para el ejemplos se muestran en gris.
En todas las páginas hay, bien al principio, bien al final, o puede que en ambos
lugares, unas barras de color gris con enlaces a las secciones inmediatamente
anteriores y posteriores.
Herramientas
ASP, VBScript y Javascript son lenguajes de programación comunes, luego su sintaxis
es implementada en código ASCII, por lo que para poder crear, editar y modificar
dicho código, sólo es necesario utilizar un simple y común editor de textos, como
puede ser el "edit" del DOS, el "Notepad" o el "Wordpad" de los entornos Windows, o
cualquiera de los múltiples editores de texto que existen en los entornos *IX (Emacs,
vi, joe, jed,...), así como en los Mac.
Microsoft ha tenido la deferencia de crear, dentro de su suite de desarrollo DevStudio,
una aplicación específica para administración y creación de proyectos Web,
denominada Visual InterDev, que en el momento de realizarse este documento estaba
en su versión 6.0.
Sin embargo, en este documento no nos basaremos en dicho software, ya que nos
limitaremos a dar unas pinceladas sobre los conceptos básicos del lenguaje, sin afán
de introducirnos en áreas más profundas, como la administración de proyectos, y
demás.
Página 2
http://www.cybercursos.net
Introducción a Active Server Pages
1. Conceptos iniciales
1.1. Declaración del lenguaje
1.2. Bloques de código y Comentarios
1.3. Carácterísticas del lenguaje
1.4. Forma de una página ASP
1.1. Declaración del lenguaje
Como ocurre en otros lenguajes de programación, en ASP existe una sentencia de
declaración opcional del lenguaje a utilizar.
<%@ LANGUAGE="VBScript" %>
Esta declaración se pone al principio del archivo, antes de cualquier otra expresión.
1.2. Bloques de código y Comentarios
En páginas ASP, 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("param")
Response.Write(Now)
while not cond do
rem do nothing
loop
%>
...
En este punto queremos llamar la atención del lector sobre el hecho de que 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 un ámbito de una línea. Por ejemplo:
<%
rem Esto es un comentario
' que ocupa varias
Página 3
http://www.cybercursos.net
rem líneas
%>
Y este es un comentario mal construído:
<%
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
%>
1.3. Carácterísticas del lenguaje
Aquí voy a hablar de la declaración de variables, los tipos de las variables, de las
sentencias... muy someramente, porque tengo que preparar otra página con
información precisa sobre todo esto. Será la última...
Para más información, véase el capítulo 5. Breve referencia del lenguaje, o la ayuda
sobre ASP que ofrece Microsoft (ASP Roadmap).
1.4. Forma de una página ASP
Para ir abriendo boca, vamos a ver a continuación, que aspecto tiene 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" %>
<%
rem Declaración de variables y funciones a realizar antes de
visualizar el documento
rem como por ejemplo, inicializar drivers de bases de datos, o
redireccionar a
rem otros documentos
%>
<%
rem Este texto se ve en el documento cuando lo abrimos
Response.Write("Esto es texto simple
")
Response.Write("En el que también puedo introducir
etiquetas HTML
")
%>
Adem´s es posible mezclar bloques ASP con etiquetas de
HTML
<%
Response.Write("Aunque este es todavía un ejemplo muy
sencillo
")
Response.Write("y con ninguna interactividad...")
%>
Página 4
http://www.cybercursos.net
Que se vería de la siguiente manera:
Esto es texto simple
En el que también puedo introducir etiquetas HTML
Además es posible mezclar bloques ASP con etiquetas de HTML
Aunque este es todavía un ejemplo muy sencillo
y con ninguna interactividad...
Página 5
http://www.cybercursos.net
Introducción a Active Server Pages
2. Entrada y Salida
2.1. Response
2.1.1. Response.Write
2.1.2. Response.Redirect
2.2. Request
2.1. Response
Como su nombre indica, la sentencia Response sirve para enviar respuestas (información de
salida) al documento HTML que se visualizará en el navegador, para redireccionar a otros
recursos, etc.
2.1.1. Response.Write
Como sabemos para escribir texto en el documento que se pretende visualizar hay que escribir:
<%
Response.Write({cadena})
%>
Una cadena es cualquier combinación de caracteres ASCII, quitando la comilla doble. Si
queremos que aparezca este símbolo debemos introducirla dos veces (""). Veamos algunos
ejemplos:
<%@ LANGUAGE="VBScript" %>
<%
Response.Write("")
Response.Write("")
Response.Write("
Response.Write("")
Response.Write("")
Response.Write("Esta página genera todas las etiquetas
de un documento
")
Response.Write("HTML normal y corriente...")
Response.Write("")
Página 6
http://www.cybercursos.net
Response.Write("")
%>
<%@ LANGUAGE="VBScript" %>
<%
Response.Write("Esta página genera todas las etiquetas
de un documento
")
Response.Write("HTML normal y corriente...")
%>
Los dos ejemplos anteriores son equivalentes. Si además queremos escribir el valor de alguna
variable:
<%@ LANGUAGE="VBScript" %>
<%
hoy = Date
%>
Página 7
http://www.cybercursos.net
Response.Write("Hoy es:" & hoy & ")
%>
Aunque como es de suponer existe una manera algo más ágil y abreviada para indicar lo anterior,
con menos caracteres:
<%@ LANGUAGE="VBScript" %>
Página 8
http://www.cybercursos.net
2.1.2. Response.Redirect
En ocasiones puede ser útil tener una página que tras un determinado tratamiento de algún dato
obtenido del cliente, llame a otra página, o simplemente 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.w3.org/Style/")
rem Todo lo que hay por debajo de este punto: etiquetas HTML,
código ASP
rem no llega a ser interpretado por el procesador de ASP jamás
%>
La utilidad del código queda patente 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, y de paso anticipamos algo de lo que
veremos en el siguiente punto:
<%@ LANGUAGE="VBScript" %>
<%
opcion = Request("param_opcion")
Select Case opcion
Case 1: Response.Redirect("pag1.html")
Case 2: Response.Redirect("pag2.html")
Case 3: Response.Redirect("pag3.html")
Página 9
http://www.cybercursos.net
<%
Select Case Request("param_opcion")
Case 1: Response.Redirect("pag1.html")
Case 2: Response.Redirect("pag2.html")
Case 3: Response.Redirect("pag3.html")
End Select
%>
2.2. Request
La sentencia Request tiene como misión obtener los valores de los parámetros que pueden
pasárseles a las páginas ASP. La forma de pasar pares atributo-valor (parámetro-valor) es la
siguiente:
Donde podemos apreciar que 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:
Página 10
dni 12345678
http://www.cybercursos.net
Los carácteres %20 que muestra el ejemplo entre los apellidos hacen referencia al caracter
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 que hay que asignar a dichos
campos, y la página que los trata o recoge se especifica con el atributo ACTION de la etiqueta
FORM.
<%@ LANGUAGE="VBScript" %>
<%
' Como la bd no está vacía hacemos un tratamiento
hasta que no queden registros...
Do while not RS.EOF
' Escribimos en la salida los datos que nos interesa
Response.Write("
Título: " & RS("titulo") &
"
")
Response.Write("Autor: " & RS("autor") & "
")
' nos movemos al siguiente registro
RS.MoveNext
Loop
%>
Quien sepa algo de HTML, SQL y Basic sabrá interpretar este código sin verlo
ejecutado por el procesador ASP, y verá que
Página 18
Crear una pagina asp
___________________________________________________________
Crear una página ASP
Un archivo de páginas Active Server (ASP) es un archivo de texto con la extensión .asp que contiene
cualquier combinación de lo siguiente:
• Texto
• Etiquetas HTML
• Secuencias de comandos del servidor
Un método rápido para crear un archivo .asp consiste en cambiar la extensión de los archivos HTML
(.html o .htm) por la extensión .asp. Si el archivo no contiene funciones ASP, el servidor prescinde del
proceso de secuencias de comandos ASP y envía el archivo al cliente. Como desarrollador Web, esta
opción proporciona una gran flexibilidad, ya que puede asignar a los archivos la extensión .asp incluso si
no piensa agregar funciones ASP hasta más adelante.
Para publicar el archivo .asp en Web, guarde el nuevo archivo en un directorio virtual de su sitio Web
(asegúrese de que el directorio tenga los permisos Secuencia de comandos o Ejecución). A
continuación, escriba en el explorador la dirección URL del archivo para pedirlo. (Recuerde, las páginas
ASP debe enviarlas el servidor, por lo que no puede pedirlas mediante su ruta física.) Cuando el archivo
se cargue en el explorador, observará que el servidor envió una página HTML. Al principio puede
parecer extraño, pero recuerde que el servidor analiza y ejecuta todas las secuencias de comandos ASP
del servidor antes de enviar el archivo. El usuario siempre recibe código HTML estándar.
Para crear archivos .asp, se puede utilizar cualquier editor de textos. A medida que avance, puede que
encuentre más productivo utilizar un editor más orientado a ASP, como Microsoft(r) Visual InterDev™.
(Para obtener más información, visite el sitio Web de Microsoft Visual InterDev en la dirección
http://msdn.microsoft.com/vinterdev/.)
Agregar secuencias de comandos del servidor
Una secuencia de comandos del servidor es una serie de instrucciones que se utiliza para enviar al
servidor Web comandos de forma secuencial. (Si ya desarrolló antes sitios Web, probablemente
conozca las secuencias de comandos del cliente, que se ejecutan en el explorador Web.) En los
archivos .asp, las secuencias de comandos se separan del texto y de las etiquetas HTML mediante
delimitadores. Un delimitador es un carácter o una secuencia de caracteres que marca el principio o el
final de una unidad. En el caso de HTML, dichos delimitadores son los símbolos menor que (<) y mayor
que (>), que enmarcan las etiquetas HTML.
ASP utiliza los delimitadores <% y %> para enmarcar los comandos. Dentro de los delimitadores puede
incluir cualquier comando válido dentro del lenguaje de secuencia de comandos que esté utilizando. El
ejemplo siguiente muestra una página HTML sencilla que contiene un comando de secuencia de
comandos:
Esta página se actualizó por última vez el <%= Now ()%>.
La función Now() de VBScript devuelve la fecha y la hora actuales. Cuando el servidor Web procesa
esta página, reemplaza <%= Now ()%> con la fecha y la hora actuales, y devuelve la página al
explorador con el siguiente resultado:
Esta página se actualizó el 1/29/99 2:20:00 p.m.
A los comandos enmarcados por delimitadores se les llama comandos principales de secuencias de
comandos, que se procesan mediante el lenguaje principal de secuencia de comandos. Todos los
comandos utilizados dentro de los delimitadores de secuencias de comandos deben ser válidos en el
lenguaje principal de secuencia de comandos. De forma predeterminada, el lenguaje principal de
secuencia de comandos es VBScript, pero también puede establecer un lenguaje diferente. Consulte
Trabajar con lenguajes de secuencias de comandos.
Si ya conoce las secuencias de comandos del cliente, ya sabrá que la etiqueta HTML
Al incorporar estas funciones es posible crear algunas aplicaciones útiles e interesantes. Por ejemplo,
ésta es una sencilla secuencia de comandos del servidor (escrita en VBScript) que manipula una
secuencia de comandos del cliente (escrita en JScript):
<%
Dim dtmTime, strServerName, strServerSoftware, intGreeting
dtmTime = Time()
strServerName = Request.ServerVariables("SERVER_NAME")
strServerSoftware = Request.ServerVariables("SERVER_SOFTWARE")
'Genera un número aleatorio.
Randomize
GreetCondition = int(rnd * 3)
%>
Escribir procedimientos
Un procedimiento es un grupo de comandos de secuencia de comandos que realizan una tarea
específica y puede devolver un valor. Puede definir sus propios procedimientos e invocarlos
repetidamente desde sus secuencias de comandos.
Puede poner las definiciones de los procedimientos en el mismo archivo .asp que llama a los
procedimientos o bien puede poner los procedimientos utilizados con más frecuencia en un archivo .asp
compartido y utilizar la directiva #include para incluirlo en otros archivos .asp que llamen a los
procedimientos. Como alternativa, puede encapsular dicha funcionalidad en un componente COM.
Definir procedimientos
Las definiciones de los procedimientos pueden encontrarse dentro de etiquetas
y deben seguir las reglas del lenguaje de secuencias de comandos. Utilice el elemento
El atributo RUNAT=SERVER indica al servidor Web que procese la secuencia de comandos en el
servidor. Si no establece este atributo, la secuencia de comandos la procesará el explorador del cliente.
El atributo LANGUAGE determina el lenguaje de secuencia de comandos utilizado en este bloque.
Puede especificar cualquier lenguaje para el que haya instalado un motor de secuencias de comandos
en el servidor. Para especificar VBScript, use el valor VBScript. Para especificar JScript, use el valor
JScript. Si no asigna el atributo LANGUAGE, el bloque de la secuencia de comandos se interpretará en
el lenguaje principal de secuencia de comandos.
Los comandos del bloque de la secuencia de comandos deben componer uno o varios procedimientos
completos en el lenguaje de secuencia de comandos elegido. Por ejemplo, los comandos siguientes
definen el procedimiento JScript MiFuncion.
Importante No incluya en las etiquetas
Nota Las llamadas de VBScript a las funciones JScript no distinguen entre mayúsculas y minúsculas.
Pasar matrices a procedimientos
Para pasar una matriz entera a un procedimiento en VBScript, utilice el nombre de la matriz seguido de
paréntesis vacíos; en JScript, utilice corchetes vacíos.
Procesar los datos proporcionados por el usuario
Mediante el objeto Request de ASP puede crear sencillas y eficaces secuencias de comandos para
recopilar y procesar datos obtenidos de formularios HTML. En este tema no sólo aprenderá a crear
secuencias de comandos básicas para procesar formularios, sino que también conocerá técnicas útiles
para validar los datos de los formularios, tanto en su servidor Web como en el explorador de Web del
usuario.
Acerca de los formularios HTML
Los formularios HTML, el método más común para recopilar información desde el Web, consiste en un
conjunto de etiquetas HTML especiales que presentan elementos de interfaz de usuario en una página
Web. Los cuadros de texto, los botones y las casillas de verificación son ejemplos de elementos que
permiten que los usuarios intercalen con una página Web y envíen información a un servidor Web.
Por ejemplo, las siguientes etiquetas HTML generan un formulario en el que un usuario puede escribir su
nombre, apellido y edad, e incluye un botón para enviar la información a un servidor Web. El formulario
también contiene una etiqueta de entrada oculta (no presentada por el explorador Web) que puede
utilizar para pasar información adicional al servidor Web.
Presentar con detalle el conjunto completo de etiquetas HTML para formularios se sale del ámbito de
este tema, sin embargo, hay numerosas fuentes de información que puede utilizar para aprender a crear
y utilizar formularios HTML. Por ejemplo, puede utilizar la posibilidad que ofrece su explorador para ver
el código fuente con el fin de examinar cómo se crean los formularios HTML en otros sitios Web.
También puede visitar el sitio Web de MSDN de Microsoft en la dirección http://msdn.microsoft.com/
para conocer las técnicas más recientes para utilizar los formularios HTML con otras tecnologías de
Internet.
Procesar datos de formularios con ASP
Después de crear el formulario HTML tendrá que procesar los datos proporcionados por el usuario, lo
que implica enviar la información a un archivo .asp para que la analice y manipule. De nuevo, examine el
código HTML del ejemplo anterior. Observe que el atributo ACTION de la etiqueta
No hay comentarios:
Publicar un comentario