Está en la página 1de 13

ASP

Introduccin
Active Server Pages (ASP) es una nueva tecnologa creada por Microsoft,
destinada a la creacin de sitios web. No se trata de un lenguaje de programacin en s
mismo (ya que los ASP se pueden programar en VBScript, JavaScript, PerlScript o en
varios otros lenguajes), sino de un marco sobre el que construir aplicaciones basadas en
Internet.
La tecnologa ASP apareci por primera vez (version 1.0) con el servidor Internet
Information Server 3.0 de Microsoft en Diciembre de 1996. La versin 4.0 de IIS (el Option
Pack para
NT
4.0)
incluye
la
versin
2.0
de
ASP,
y la versin 5.0 de IIS, distribuda con Windows 2000, incluye ASP 3.0.
Los predecesores de ASP incluyen CGI y Perl. Las tecnologas de Microsoft
predecesoras de ASP incluyen IDC y WebDB. Otras tecnologas que compiten con ASP
son ColdFusion (Allaire),JavaServer
Pages (Sun
Microsystems)
y PHP (de
libre
distribucin bajo Open System).
Algunas de las caractersticas de ASP son:

ASP es totalmente gratuito para Microsoft Windows NT o Windows


95/98.
El cdigo ASP se puede mezclar con el cdigo HTML en la misma
pgina (no es necesario compilarlo por separado).
El cdigo ASP se puede escribir con un simple editor de textos como
el Bloc de notas de Windows o UltraEdit.
Cmo el cdigo ASP se ejecuta en el servidor, y produce como salida
cdigo HTML puro, su resultado es entendible por todos los
navegadores existentes.
Mediante ASP se pueden manipular bases de datos (consultas,
actualizaciones, borrados, etc.) de prcticamente cualquier plataforma,
con tal de que proporcione un driver OLEDB u ODBC.
ASP permite usar componentes escritos en otros lenguajes (C++,
Visual Basic, Delphi), que se pueden llamar desde los guiones ASP.
Sin modificar la instalacin, los guiones ASP se pueden programar en
JScript o VBScript (este ltimo es el ms usado porque mas
programadores lo dominan), pero tambin existen otros lenguajes,
como Perlscript y Rexx, que se pueden emplear para programar ASP.
Se ha portado a la plataforma Java por Chili!Soft y Halcyon Software, lo
que permite que ASP sea usado en casi cualquier sistema operativo.

Ventajas
Las principales ventajas que ofrece ASP son:
1. Permite acceder a bases de datos de una forma sencilla y rpida.

2. Las pginas se generan dinmicamente mediante el cdigo de scripts,


(guiones).
3. El cdigo de script se ejecuta en el servidor, y no se depende del
navegador que se emplee.
4. Desde una pgina ASP se pueden ejecutar servidores OLE en el
servidor de web, lo que abre un abanico de nuevas posibilidades slo
accesibles previamente usando CGI y filtros ISAPI: acceso a base de
datos, acceso a ficheros, logging en el sistema, envo de correo, etc.
La tecnologa ASP se emplea principalmente para crear aplicaciones interactivas que
funcionan en Internet.
Qu necesito para programar ASP
Para programar ASP se necesita, como mnimo, un servidor de web (Microsoft
Personal Web Server para Windows 95/98 o Internet Information Server 3.0/4.0/5.0 para
Windows NT 4.0) y un simple editor de textos como el Bloc de notas de Windows para
escribir los guiones.
Si se quiere acceder a una base de datos, se puede usar una conexin ODBC,
una conexin OLE-DB, o una ruta fsica. Como plataforma de bases de datos, una simple
base de datos hecha en Microsoft Access es suficiente[1].

Cmo se usa
Existen dos formas de incluir cdigo ASP en una pgina web:
1. Escribindolo entre las etiquetas <SCRIPT> y </SCRIPT>. En el
atributo LANGUAGE podemos indicar en que lenguaje se est
programando. Para distinguir el cdigo de script que se ejecuta en el
servidor del que se ejecuta en el cliente, se emplea el
atributo RUNAT=Server:
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
cdigo
</SCRIPT>
2. Escribindolo entre los delimitadores <% y %>. Si se usa este atajo, por
defecto se usar el lenguaje especificado por el usuario en el Registro
de Opciones de ASP. Si se quiere utilizar otro lenguaje, se debe indicar
al inicio de la pgina con la instruccin :
<%@ Language=Lenguaje %>

Modelo de objetos ASP


ASP incluye seis objetos nativos, que podemos usar en nuestros programas. Al
contrario que otros modelos de objetos (como DOM, por ejemplo), los objetos ASP no
forman una jerarqua. nicamente se relacionan entre s de forma lgica, no a travs de
una relacin padre-hijo. El diagrama de la Figura 1 muestra las relaciones.

Figura 1
Request
Este objeto nos facilita toda la informacin sobre la peticin HTTP que un usuario
realiza a nuestro servidor (informa sobre todo lo que llega al servidor desde el cliente).
Puede incluir parmetros obtenidos a partir de un formulario HTML mediante los
mtodos POST o GET, cookies y certificados que posea el cliente, y las variables del
servidor. Esta tabla muestra las colecciones, propiedades, y mtodos a que podemos
acceder con este objeto.
Colecciones[2]
QueryString
Form
ServerVariables
Cookies
ClientCertificate

Request
Propiedades
TotalBytes

Mtodos
BinaryRead

Response
Este objeto maneja toda la informacin que se enva desde el servidor al cliente.
Incluye el envo de informacin directamente al navegador del cliente, redireccin del
navegador hacia otra URL o fijar el valor de las cookies[3]. Esta tabla muestra las
colecciones, propiedades, y mtodos a que podemos acceder con este objeto.
Colecciones
Cookies

Response
Propiedades
Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute

Mtodos
AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush

IsClientConnected
PICS
Status

Redirect
Write

Server
Este objeto proporciona propiedades y mtodos que estn relacionados con el
servidor donde se ejecuta nuestra aplicacin. Normalmente se usa para crear una
instancia de un componente ActiveX[4]o fijar el tiempo de validez de un guin. Esta tabla
muestra las propiedades, y mtodos a que podemos acceder con este objeto.
Colecciones

Server
Propiedades
ScriptTimeout

Mtodos
CreateObject
HTMLEncode
MapPath
URLEncode

Application
Este objeto se emplea para compartir informacin entre todos los usuarios de una
aplicacin (existe un nico objeto Application que comparten todos los usuarios). Una
aplicacin tiene un periodo de vida, como cualquier otro programa. Cuando se inicia se
ejecuta el evento OnStart y cuando termina se produce el evento OnEnd.
Esta tabla muestra las colecciones, propiedades, y mtodos a que podemos acceder con
este objeto.
Colecciones
Contents
StaticObjects

Application
Mtodos
Lock
Unlock

Eventos
OnStart
OnEnd

Session
A cada cliente que solicita una pgina ASP se le asigna un objeto Session. La
informacin almacenada en este objeto es individual para cada usuario, y se conserva el
valor al pasar de una pgina a otra. Se crea un objeto Session la primera vez que un
cliente solicita una pgina y se destruye, por defecto, veinte minutos despus de que se
haya realizado la ltima peticin. El tiempo de vida es configurable. Cuando se inicia una
sesin se produce el evento OnStart y cuando termina se produce OnEnd. Esta tabla
muestra las colecciones, propiedades, y mtodos a que podemos acceder con este
objeto.
Colecciones
Contents
StaticObjects

Propiedades
CodePage
LCID
SessionID
Timeout

Session
Mtodos
Abandon

Eventos
OnStart
OnEnd

ObjectContext
Este objeto se emplea para gestionar transacciones[5].
La tabla muestra los mtodos y eventos a que podemos acceder con este objeto.
Colecciones

Propiedades

ObjectContext
Mtodos
SetComplete
SetAbandon

Eventos
OnTransactionCommit
OnTransactionAbort

Ejemplos de cdigo
Sentencias de control y repeticin
Ejemplo 1
Muestra la hora y la fecha actuales. Segn la hora del da muestra un mensaje.
Muestra otro mensaje de forma aleatoria. En la Figura 2 podemos observar el resultado
que se obtiene al solicitar esta pgina.
<HTML>
<HEAD>
<TITLE>Servidor educado</TITLE>
</HEAD>
<BODY BGCOLOR="Wheat">
<FONT COLOR="Teal" SIZE="5"><B>
El servidor educado le informa que son las <% = Time %> del da <%
= Date %>
</B></FONT>
<P><B>
<% If Hour(Now) < 8 Then %>
Estas no son horas de conectarse, estoy durmiendo!
<% ElseIf Hour(Now) < 15 Then %>
Estoy trabajando, no moleste.
<% Else %>
La tarde es para descansar, ver la tele, dormir, ...
<% End If
Response.Write("<BR><BR>")
Randomize
i = Int(Rnd * 4)
Select Case i
Case 0
Response.Write("Hace buen da, verdad ?")
Case 1
Response.Write("Me parece que hoy llover.")
Case 2
Response.Write("Esta tarde llueve seguro.")
Case 3
Response.Write("Que sol mas esplndido.")

End Select
%>
</B>
</BODY>
</HTML>

Figura 2
Ejemplo 2
Muestra el valor de una serie de variables que posee el servidor y que
proporcionan informacin interesante sobre el servidor y sobre la conexin realizada por
el cliente. En la Figura 3 se muestra la pgina que obtiene al solicitarla con un
navegador Netscape Communicator 4.6. En la Figura 4 tenemos la misma pgina cuando
se solicita con Microsoft Internet Explorer 4.0.
<HTML>
<HEAD>
<TITLE>Variables del servidor</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
Response.Write("<PRE>" & vbCrLf)

Response.Write("ALL_HTTP: " & Request.ServerVariables("ALL_HTTP") & "<BR>")


Response.Write("</PRE>" & vbCrLf)
Response.Write("<HR>" & vbCrLf)
Response.Write("HTTP_ACCEPT_LANGUAGE:
"
&
Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") & "<BR>")
Response.Write("HTTP_USER_AGENT:
"
&
Request.ServerVariables("HTTP_USER_AGENT") & "<BR>")
Response.Write("REMOTE_ADDR: " & Request.ServerVariables("REMOTE_ADDR")
& "<BR>")
Response.Write("REMOTE_HOST: " & Request.ServerVariables("REMOTE_HOST")
& "<BR>")
Response.Write("URL: " & Request.ServerVariables("URL") & "<BR>")
Response.Write("<HR>" & vbCrLf)
If InStr(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), "es") > 0 Then
Response.Write("Se elige el idioma espaol")
Else
Response.Write("Se elige otro idioma")
End If
%>
</BODY>
</HTML>
Las siguientes 2 figuras muestran el resultado obtenido con distintos navegadores.

Figura 3

Figura 4
Recuperacin de los datos de un formulario
Ejemplo 3
Obtiene los datos introducidos por un usuario y los muestra en una pgina. La
pgina que solicita los datos es (fichero 3f.html):
<HTML>
<HEAD>
<TITLE>Formulario de entrada</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<FORM NAME="Formulario" ACTION="3r.asp" METHOD="POST">
Nombre: <INPUT TYPE="TEXT" NAME="nombre" SIZE="20"><BR>
Apellidos: <INPUT TYPE="TEXT" NAME="apellidos" SIZE="40"><BR>
Sexo:<BR>
H
<INPUT
TYPE="RADIO"
NAME="sexo"
VALUE="varon">
M
<INPUT
TYPE="RADIO" NAME="sexo" VALUE="hembra">
<BR><BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
</BODY>
</HTML>
En la etiqueta FORM, el atributo ACTION contiene el nombre de la pgina de
respuesta al formulario. La pgina de respuesta que muestra los datos introducidos en el
formulario es (fichero 3r.asp):

<HTML>
<HEAD>
<TITLE>Datos obtenidos del formulario</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
Su nombre es <% = Request.Form("nombre") %>
<BR>
Sus apellidos son <% = Request.Form("apellidos") %>
<BR>
Su sexo es <% = Request.Form("sexo") %>
</BODY>
</HTML>
Acceso a base de datos
Ejemplo 4
Accede a una base de datos realizada en Microsoft Access que contiene una
tabla Personal con los campos Nombre, Apellidos, Edad y Ciudad. Consulta las
personas que viven en la ciudad de Alicante y las muestra en una tabla. Se accede
mediante ODBC (el nombre asignado a la conexin es curso) a la base de datos.
<HTML>
<HEAD>
<TITLE>Acceso a base de datos</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
Personal de la oficina de Alicante:
<BR>
<TABLE BORDER="3">
<TR>
<TD><B>Nombre</B></TD>
<TD><B>Apellidos</B></TD>
<TD><B>Edad</B></TD>
</TR>
<%
'Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
con.Open "curso"
'Ejecuta un sentencia SQL de consulta
sql = "SELECT * FROM Personal WHERE Ciudad = 'Alicante'"
Set result = con.Execute(sql)
'Recorre todas las filas del resultado
Do While Not result.EOF
' Muestra la fila actual
Response.Write("<TR>" & vbCrLf)
Response.Write("<TD>" & result("Nombre") & "</TD>" & vbCrLf)
Response.Write("<TD>" & result("Apellidos") & "</TD>" & vbCrLf)

Response.Write("<TD>" & result("Edad") & "</TD>" & vbCrLf)


Response.Write("</TR>" & vbCrLf)
'Pasa a la siguiente fila
result.MoveNext
Loop
'Libera memoria
result.Close
Set result = Nothing
con.Close
Set con = Nothing
%>
</TABLE>
</BODY>
</HTML>
Ejemplo 5
Insercin en una base de datos a partir de un formulario. Se emplea la misma
base de datos que la del ejemplo 4.
El cdigo del formulario para la entrada de datos es (fichero 5f.html):
<HTML>
<HEAD>
<TITLE>Formulario de entrada</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<FORM NAME="Formulario" ACTION="5r.asp" METHOD="POST">
<CENTER>
<TABLE BORDER=0>
<TR>
<TD>Nombre: </TD>
<TD><INPUT TYPE="TEXT" NAME="nombre" SIZE="20"></TD>
</TR>
<TR>
<TD>Apellidos: </TD>
<TD><INPUT TYPE="TEXT" NAME="apellidos" SIZE="40"></TD>
</TR>
<TR>
<TD>Edad: </TD>
<TD><INPUT TYPE="TEXT" NAME="edad" SIZE="2" MAXLENGTH="2"></TD>
</TR>
<TR>
<TD>Ciudad: </TD>
<TD><SELECT NAME="ciudad">
<OPTION VALUE="Alcoy">Alcoy
<OPTION VALUE="Alicante">Alicante
<OPTION VALUE="Elche">Elche
<OPTION VALUE="Orihuela">Orihuela
</SELECT></TD>

</TR>
</TABLE>
<BR><BR>
<INPUT
TYPE="SUBMIT"
TYPE="RESET" VALUE="Borrar">
</CENTER>
</FORM>
</BODY>
</HTML>

VALUE="Enviar">&nbsp;&nbsp;<INPUT

El cdigo del ASP que realiza la insercin en la base de datos es


(fichero 5f.asp):
<HTML>
<HEAD>
<TITLE>Insercin en la base de datos</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<B>
<%
nombre = Request.Form("nombre")
apellidos = Request.Form("apellidos")
edad = Request.Form("edad")
ciudad = Request.Form("ciudad")
'Abre la conexion con la base de datos a traves de una conexion ODBC
Set con = Server.CreateObject("ADODB.Connection")
con.Open "curso"
'Ejecuta un sentencia SQL de consulta
sql = "INSERT INTO Personal (Nombre, Apellidos, Edad, Ciudad)
sql = sql & VALUES('" & nombre & "', '"
sql = sql & apellidos & "', " & edad & ", '" & ciudad & "')"
con.Execute(sql)
If Err = 0 Then
Response.Write "Insercin correcta."
Else
Response.Write "Error en Insercin."
End If
'Libera memoria
con.Close
Set con = Nothing
%>
</B>
</CENTER>
</BODY>
</HTML>

Cdigo script de cliente y de servidor en la misma pgina


Ejemplo 6
Diferencia entre el cdigo que se ejecuta en el cliente y en el servidor. A
continuacin aparece el cdigo fuente de una pgina ASP, el cdigo que recibe el cliente
una vez ejecutada la pgina en el servidor y como se visualiza en el navegador. El cdigo
que se ejecuta en el servidor aparece en negritas. Este cdigo no llega al cliente.
<HTML>
<HEAD>
<TITLE>Mezcla de cdigo script de cliente y de servidor</TITLE>
</HEAD>
<BODY BGCOLOR="beige" TEXT="darkseagreen">
<% VariableServidor = 6%>
<P>
Este valor se imprime por HTML: <FONT COLOR="chocolate">10</FONT>
<P>
Este valor se imprime por cdigo de servidor:
<FONT COLOR="chocolate"><% = VariableServidor %></FONT>
<SCRIPT LANGUAGE="JavaScript">
var VariableCliente;
VariableCliente = <% = VariableServidor %> + 1;
document.write('<P>Este valor se imprime por cdigo de cliente:
<FONT COLOR="chocolate">' + VariableCliente + '</FONT>');
// OJO : las 2 lneas escritas arriba deben escribirse en una sola
lnea.
</SCRIPT>
</BODY>
</HTML>
El resultado que se ha obtenido al evaluar el cdigo de servidor aparece en negritas.
<HTML>
<HEAD>
<TITLE>Mezcla de cdigo script de cliente y de servidor</TITLE>
</HEAD>
<BODY BGCOLOR="beige" TEXT="darkseagreen">
<P>
Este valor se imprime por HTML: <FONT COLOR="chocolate">10</FONT>
<P>
Este valor se imprime por cdigo de servidor:
<FONT COLOR="chocolate">6</FONT>
<SCRIPT LANGUAGE="JavaScript">
var VariableCliente;
VariableCliente = 6 + 1;
document.write('<P>Este valor se imprime por cdigo de cliente:
<FONT COLOR="chocolate">' + VariableCliente + '</FONT>');
</SCRIPT>

</BODY>
</HTML>
Visualizacin en el navegador.

Figura 5

Direcciones de Internet
AspTracker.com: http://asptracker.com/
4GuysFromRolla.com: http://www.4guysfromrolla.com/
Allaire: http://www.allaire.com
ASP 101: http://www.asp101.com/
ASP Today: http://www.asptoday.com/
Chili!Soft, Inc.: http://www.chilisoft.net/
Halcyon Software: http://www.halcyonsoft.com/
Kathis Place: Active Server Pages (ASP):
http://www.attitude.com/users/kathi/asp/tools.html
LearnASP.com: http://www.learnasp.com/
PHP: http://www.php.net/
ServerObjects Inc.: http://www.serverobjects.com/products.htm

También podría gustarte