Introducción a ASP - Departamento de Lenguajes y Sistemas

Anuncio
Tiempo: 4h
Introducción a ASP
(Active Server Pages)
Departamento de
Lenguajes y Sistemas Informá
Informáticos
Grupo de Ingenierí
Ingeniería del Software
Versión original: Amador Durán Toro (diciembre 2004)
Última revisión: Amador Durán y David Benavides (diciembre 2006); revisión y buenas prácticas.
escuela técnica superior
de ingeniería informática
Noviembre 2006
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Procesamiento en servidor
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
ASP
1. Introducció
Introducción
ADO
2. Estilos de
programació
programación ASP
11
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
Cliente web
88
22
77
33
44
Datos
Datos
3.1. El objeto
Application
Lógica de Negocio
Lógica de Negocio
3. Objetos ASP
Presentació
ón
Presentaci
Presentación
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
66
SGBD
SGBD
5
Servidor web
(con capacidad de procesamiento)
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
1
1
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Conceptos bá
básicos
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
– ASP = Active Server Pages
– ASP permite ejecutar scripts en el proceso del
servidor, no en procesos aparte como los CGIs.
– ASP no es estándar, es una tecnología propietaria
de Microsoft.
– Para que el servidor IIS procese el código ASP la
página debe tener extensión .asp
– Una página ASP no se puede abrir en local, es
necesario hacerlo a través de un servidor IIS,
normalmente con:
• http://localhost/…/archivo.asp
• http://127.0.0.1/…/archivo.asp
• http://nombre_máquina/…/archivo.asp
• http://dirección IP/…/archivo.asp
– En el código ASP se pueden usar los objetos ASP
predefinidos y objetos ActiveX.
ActiveX
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
2
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Objetos ASP
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– Lo habitual en código ASP es usar los objetos ASP y
los objetos de acceso a datos (ADO).
– Los objetos ASP están disponibles siempre en el
código ASP y son Application,
Application Session,
Session Server,
Server
Request y Response.
Response
– Los objetos ASP no son objetos JavaScript, son
objetos VBScript, por lo que no se puede acceder a
sus propiedades mediante la notación de los
corchetes y a veces no pueden usar los tipos de
datos implícitos de JavaScript.
• Objetos ADO
– Los objetos ADO hay que crearlos explícitamente
como cualquier objeto ActiveX mediante
Server.CreateObject.
Server.CreateObject
– Nosotros usaremos páginas ASP para procesar los
datos de los formularios enviados, acceder a una
base de datos y devolver una respuesta al usuario.
3
2
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Esquema de una pá
página ASP
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
<%@
language
<%@language="JavaScript"
language="JavaScript"%>
%>
<<html>
html>
html>
<!--- código
>
<!
-<!-códigoHTML
HTML-->
-->
……
<%
<%código
códigoASP
ASP%>
%>
……
<<script
script language="
="JavaScript
JavaScript"" runat="
="server
server">
">
language
runat
language="JavaScript"
runat="server">
código
códigoASP
ASP
</script
script>
>
</
</script>
……
<!--- código
>
<!
-<!-códigoHTML
HTML-->
-->
</html
html>
>
</
</html>
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
4
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Modularizació
Modularización del có
código ASP (atributo
(atributo src)
src)
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
– Se puede usar el atributo src en la etiqueta <script
runat="server"> para reutilizar código JavaScript en
cliente y en servidor (funciones de validación, p.e.).
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
<%@
language
<%@language="JavaScript"
language="JavaScript"%>
%>
<<html>
html>
html>
……
<<script
script language="
="JavaScript
JavaScript""
language
language="JavaScript"
runat="
="server
server"
"
runat
runat="server"
src="
="Funciones.js
Funciones.js">
">
src
src="Funciones.js">
</script
script>
>
</
</script>
……
</html
html>
>
</
</html>
function
functionf()
f()
{{
}}
……
Funciones.js
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
5
3
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Modularizació
Modularización del có
código ASP (#include
(#include))
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
– Se puede usar la directiva include para modularizar
el código ASP y reutilizarlo en servidor. Hay dos
variantes:
<!-<!-- #include file = "camino a archivo.inc" -->
-->
<!-<!-- #include virtual = "camino virtual a archivo.inc" -->
-->
– Los archivos que se incluyen suelen tener extensión
.inc para evitar que puedan ejecutarse.
– Suelen estar en un directorio sin permiso de lectura.
<%@
language
<%@language="JavaScript"
language="JavaScript"%>
%>
<!--#include
>
<!
-<!-- #includefile
file=="archivo.inc"
"archivo.inc"-->
-->
<<html>
html>
>
html
<%
<%
function
functionf()
f()
{{
<%
<%código
códigoASP
ASP%>
%>
</html
html>
>
</
</html>
……
}}
%>
%>
archivo.inc
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
6
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Formulario y tratamiento separados
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
submit
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
formulario.html
tratamiento.asp
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
<<html>
html>
html>
……
<<form
form action="tratamiento.asp"
>
action="tratamiento.asp"……>
……
</form
form>
>
</
</form>
……
</html
html>
>
</
</html>
7
4
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Formulario y tratamiento en la misma pá
página
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
submit
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
formulario.asp
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
<%@
language
<%@language="JavaScript"
language="JavaScript"%>
%>
<<html>
html>
html>
<%
<%ifif((((Request.Form.Count
Request.Form.Count==
==00))&&
&&
((Request.QueryString.Count
==
Request.QueryString.Count ==00)))){{
%>
%>
<!--- formulario
>
<!
-<!-formulariocon
conaction="formulario.asp"
action="formulario.asp"-->
-->
<%
<%}}else
else{{%>
%>
<!-->
<!
-<!--tratamiento
tratamientogenerando
generandolalarespuesta
respuesta-->
-->
<%
<%}}%>
%>
</html
html>
>
</
</html>
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
8
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Application
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– Este objeto representa a la aplicación, que en ASP
es lo mismo que un directorio virtual.
– Existe desde que el primer usuario abre una página
del directorio virtual hasta que el último usuario la
cierra.
– Su uso principal es para guardar variables de
aplicación, para las que el propio objeto actúa como
un diccionario al que se le pueden añadir entradas
en cualquier momento:
Application("clave")
Application("clave") = valor;
– Para recuperar un valor del diccionario se usa la
misma sintaxis:
v = Application("clave");
Application("clave");
No
Nose
sepueden
puedenalmacenar
almacenar
Arrays
ArraysJavaScript
JavaScripten
en
elelobjeto
objetoApplication
Application
9
5
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Métodos de Application
1. Introducció
Introducción
– Dispone de dos métodos interesantes que son
Lock()
Lock() y Unlock()
Unlock() que sirven para bloquear y
desbloquear el acceso al diccionario interno.
2. Estilos de
programació
programación ASP
– El uso habitual suele ser:
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
Application.Lock();
Application.Lock();
<!-- acceso al diccionario -->
Application.Unlock();
Application.Unlock();
• Eventos de Application
– Tiene dos eventos, OnStart y OnEnd
nEnd que se pueden
gestionar en el fichero global.asa.
global.asa
– En los gestores de dichos eventos se suelen
inicializar o eliminar las variables de aplicación.
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
10
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Session
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– Representa a una sesión, que es el tiempo que un
usuario está conectado de forma continuada.
– Igual que Application, también tiene un diccionario en
el que se pueden guardar variables de sesión.
• Propiedades de Session
– Timeout:
Timeout especifica en minutos el tiempo máximo que
se espera antes de cerrar una sesión inactiva. El valor
predeterminado es 10 minutos.
– SessionID:
SessionID identificador de la sesión.
• Métodos de Session
– El método Abandon()
Abandon() hace que termine la sesión
cuando se acabe de procesar la página ASP actual.
• Eventos de Session
– OnStart y OnEnd,
OnEnd, se pueden gestionar en global.asa
11
6
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Server
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
– Este objeto representa al servidor, es decir, a
Internet Information Server.
• Propiedades de Server
– Su propiedad más interesante es ScriptTimeout,
ScriptTimeout
que indica el tiempo máximo en segundos que se
puede estar ejecutando una página ASP antes de
provocar un error. El valor por defecto es de 90
segundos.
• Métodos de Server
– CreateObject(clase
ActiveX): para crear objetos
CreateObject
ActiveX.
– MapPath(path_virtual):
devuelve el camino en el
MapPath
sistema de ficheros del servidor del camino
especificado mediante directorios virtuales.
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
12
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Request
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– Este objeto representa una petición HTTP. Lo
habitual es usarlo para procesar los datos enviados
por los formularios.
• Propiedades de Request
– Su propiedad más importante es Form,
Form que es un
diccionario que contiene entradas correspondientes
a los datos enviados por un formulario (si se usó
POST como método de envío):
Request.Form( "name" ).Item Æ valor del formulario
Request.Form( "name" ).Count
Request.Form( "name" )(i) i=1..n Æ valor
– En el caso de que se use GET como método del
formulario, se debe usar la propiedad QueryString:
QueryString
Request.QueryString( "name" ).Item Æ valor del form.
Request.QueryString( "name" ).Count
Request.QueryString( "name" )(i) i=1..n Æ valor
13
7
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Response
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
– Representa la respuesta a una petición HTTP.
• Propiedades de Response
– Buffer:
Buffer booleano que indica si la respuesta se
almacena en un búfer o se envía al cliente a medida
que se genera. Si IIS < 5.0 es false por defecto. Si
IIS ≥ 5.0 es true.
– Expires:
Expires indica el nº de minutos que la respuesta
puede vivir en la caché del navegador. Un valor de
0 hace que siempre se vuelva a cargar.
– ExpiresAbsolute:
ExpiresAbsolute igual pero con una fecha y una
hora concretas:
• Response.ExpiresAbsolute = new Date( año, mes, día,
hora, min, seg, ms ).getVarDate();
• Es necesario aplicar el método getVarDate()
getVarDate() para
convertir la fecha al formato de VisualBasic.
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
14
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Más propiedades de Response
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– IsClientConnected:
IsClientConnected booleano que indica si el cliente
está conectado todavía.
– ContentType:
ContentType indica el tipo del contenido de la
respuesta. Por defecto es "text/HTML" pero puede
tener otros valores como: "image/GIF",
"image/JPEG", "text/plain", … en cuyo caso se debe
usar el método BinaryWrite en lugar de Write.
Write
• Métodos de Response
– BinaryWrite(array)
BinaryWrite(array): escribe el array de bytes en la
respuesta.
– Clear()
Clear(): limpia el búfer.
– End()
End(): provoca la terminación del procesamiento y
envía el búfer como esté.
– Flush()
Flush(): envía el contenido del búfer al cliente.
– Redirect(URL)
Redirect(URL): reenvía al navegador a otra URL.
15
8
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Más mé
métodos de Response
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
– Write(
Write( expresió
expresión ):
) escribe el resultado de evaluar
la expresión en la respuesta al cliente. Se puede
abreviar como <%= expresión %>
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
16
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• global.asa
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
– Archivo opcional que debe estar en la raíz de la
aplicación, es decir, del directorio virtual.
– Es el único sitio donde se pueden gestionar los
eventos OnStart y OnEnd de Aplication y Session.
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
<<script
script language="JavaScript"
>
language
runat
language="JavaScript"runat="server">
runat="server">
function
Application_OnStart()
function Application_OnStart()
{{…}
…}
function
functionApplication_OnEnd()
Application_OnEnd()
{{…}
…}
function
functionSession_OnStart()
Session_OnStart()
{{…}
…}
function
functionSession_OnEnd()
Session_OnEnd()
{{…}
…}
</script
script>
>
</
</script>
17
9
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Conceptos bá
básicos
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
– ADO = MS ActiveX Data Objects
– Son objetos ActiveX que permiten acceder a bases
de datos desde el código ASP.
– Los objetos más importantes son Connection y
Recordset.
Recordset
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
Connection
Connection
3.5. El objeto
Response
Command
Command
Recordset
Recordset
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
Error
Error
Parameter
Parameter
Field
Field
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
18
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Actores
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
– Proveedor de datos (OLEDB, ODBC)
– Conexión (Connection)
– Base de Datos (MySQL, MS Access, SQL Server)
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
Connection
Connection
Proveedor
Proveedor
de
de
Datos
Datos
BD
BD
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
ASP
ASP
ADO
ADO
OLEDB
OLEDB
ODBC
BD
BD
19
10
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Connection
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
– Este objeto representa una conexión con una base
de datos.
– Su uso habitual es el siguiente:
<%
<%
try
try{{
var
varconexion
conexion==Server.CreateObject(
Server.CreateObject("ADODB.Connection"
"ADODB.Connection"););
conexion.Open(
conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;"
"Provider=Microsoft.Jet.OLEDB.4.0;"++
"Data
"DataSource="
Source="++Server.MapPath(
Server.MapPath("bd/bd.mdb"
"bd/bd.mdb"));
));
}}
catch(
catch
catch(ee)){{
////tratamiento
tratamientodel
delerror
error
Response.End();
Response.End();
}}
////acceso
accesoaalalaBD
BD(conexion.Execute(…)
(conexion.Execute(…)))
conexion.Close();
conexion.Close();
conexion
null
conexion==null;
null;////libera
liberarecursos
recursos
%>
%>
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
20
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Métodos de Connection
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
– BeginTrans()
BeginTrans(): comienza una transacción.
– CommitTrans()
CommitTrans(): termina una transacción.
– RollbackTrans()
RollbackTrans(): aborta una transacción.
– Open(
Open( cadenaConexió
cadenaConexión, [usuario], [pwd
[pwd]] ):
) abre la
conexión con la BD. La cadena de conexión depende
del tipo de BD. Opcionalmente se puede indicar
usuario y password. Para especificar el camino a la
BD se suele usar Server.MapPath.
Server.MapPath
– Close()
Close(): cierra la conexión y todos los recordsets
asociados.
– Execute(
Execute( SQL ):
) ejecuta un comando SQL contra la
BD. Si el comando es una consulta, devuelve un
objeto de tipo Recordset.
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
21
11
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Definició
Definición de Recordset
1. Introducció
Introducción
– Permite añadir, eliminar y actualizar filas de tablas
de bases de datos, pero sólo lo usaremos para
manipular el resultado de consultas.
2. Estilos de
programació
programación ASP
– Su uso habitual es el siguiente:
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
<%
<%
try
try{{
var
varrs
rs==conexion.Execute(
conexion.Execute("SELECT
"SELECT…"
…"););
////oobien…
bien…
var
varrs
rs==Server.CreateObject("ADODB.Recordset"
Server.CreateObject("ADODB.Recordset"););
rs.Open(
"SELECT
rs.Open( "SELECT…",
…",conexion
conexion););
}}
catch(
catch
catch(ee)){{
////tratamiento
tratamientodel
delerror
error
Response.End();
Response.End();
}}
////recorrido
recorridodel
delrecordset
recordset
<%
<%
while
while(!rs.EOF)
(!rs.EOF){{
Response.Write(
Response.Write(rs("campo1"
rs("campo1").Value
).Value););
……
Response.Write(
Response.Write(rs("campoN"
rs("campoN").Value
).Value););
rs.MoveNext();
rs.MoveNext();
rs
null
rs==null;
null;////libera
liberarecursos
recursos
}}
%>
%>
%>
%>
%>
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
22
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Propiedades de Recordset
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
– Para acceder a los campos se usa como un
diccionario:
rs(
).Value Æ valor del campo i
rs( "campoi" ).Value
– EOF:
EOF booleano que indica si el puntero interno está
al final del recordset.
• Métodos de Recordset
– Open(
Open( "SQL", conexió
conexión ):
) realiza la consulta SQL a
la BD y obtiene el resultado.
– Close()
Close(): cierra el recordset y libera recursos.
– MoveFirst(),
MoveFirst(), MoveLast(),
MoveLast(), MoveNext(),
MoveNext(), Move(
Move( n ):
)
mueve el puntero interno al primero, último,
siguiente o salta n registros hacia delante o hacia
atrás si n < 0.
Usando
UsandoAccess,
Access,
sisise
sehace
haceMoveLast(),
MoveLast(),
luego
luegono
nose
sepuede
puede
hacer
hacerMoveFirst().
MoveFirst().
23
12
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Bloques try/
try/catch en ASP con ADO
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
– Todas las operaciones con objetos ADO pueden
generar excepciones que deben capturarse.
– El objeto que lanzan en las excepciones es de tipo
Error y tiene las siguientes propiedades:
3. Objetos ASP
• name : nombre del error, normalmente "Error".
3.1. El objeto
Application
• number:
number número del error.
3.2. El objeto
Session
• description:
description descripción de la causa del error.
3.3. El objeto
Server
• message:
message habitualmente, igual que description.
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
• Tratamiento del error en el bloque catch
– El código habitual en el bloque catch es avisar al
usuario del error, liberar recursos y parar el
procesamiento ASP con Response.End()
Response.End().
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
24
Introducció
Introducción a ASP (Active Server Pages)
Pages)
• Modularidació
Modularidación del có
código
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
Datos
Datosen
enSession
Session
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
formulario
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
<%
%>
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
exito
sí
¿errores?
¿errores?
no
<%
%>
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
Base
Base
de
de
Datos
Datos
25
13
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
formulario
<%
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
%>
<%
<%@language="JavaScript"
@language="JavaScript"%>
%>
<%
<%
var
formulario
=
Session("formulario");
var formulario = Session("formulario");
var
varerrores
errores==Session("errores");
Session("errores");
ifif( (!formulario
!formulario) ){{
formulario
formulario==new
newObject();
Object();
formulario.nombre
formulario.nombre=="Nombre
"Nombrepor
pordefecto";
defecto";
formulario.direccion
formulario.direccion=="Dirección
"Direcciónpor
pordefecto";
defecto";
Session("formulario")
Session("formulario")==formulario;
formulario;
}}
ifif( (!errores
Crear
!errores) ){{
Creardos
dosobjetos
objetosen
en
errores
Session:
errores==new
newArray();
Array();
Session:
Session("errores")
••Para
almacenar
los
Session("errores")==errores;
errores;
Para almacenar losdatos
datos
}}
del
delformulario
formulario
%>
•
Para
%>
• Paraalmacenar
almacenarun
unArray
Array
……
de
deerrores
errores
<div
••Mostrar
<divid="div_errores">
id="div_errores">
Mostrarerrores
erroressisilos
loshay
hay
<%
<%
for
(
e
in
errores
)
{
for ( e in errores ) {
Response.Write(
Response.Write("<div
"<divclass='error'>"
class='error'>"););
Response.Write(
Response.Write(errores[
errores[ee] ]););
Response.Write(
Response.Write("</div>"
"</div>"););
}}
%>
%>
</div>
</div>
….
….
<div
<divid="div_nombre">
id="div_nombre">
<label
<labelfor="nombre">Nombre:</label>
for="nombre">Nombre:</label>
<input
<inputid="nombre"
id="nombre"name="nombre"
name="nombre"
value="<%=
value="<%=formulario.nombre
formulario.nombre%>"
%>"/>
/>
</div>
</div>
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
26
Introducció
Introducción a ASP (Active Server Pages)
Pages)
<%
<%@language="JavaScript"
@language="JavaScript"%>
%>
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
<script
<scriptlanguage="JavaScript"
language="JavaScript"src="validacion.js"
src="validacion.js"
runat="server"></script>
runat="server"></script>
• Verificar
• Verificar
que existen
que existen
los objetos
los objetos
formulario y
formulario y
errores. Si no
errores. Si no
existen
existen
redireccionar
redireccionar
al formulario
al formulario
• Asignar los
• Asignar los
valores que
valores que
se
sehan
han
enviado
enviado
• Validar los
• Validar los
datos
datosen
en
Servidor
Servidor
• Si hay
• Si hay
errores
errores
redireccionar
redireccionar
al formulario
al formulario
• Si no,
• Si no,
enviar a la
enviar a la
página
páginade
de
éxito
éxito
<%
<%
var
varformulario
formulario==Session("formulario");
Session("formulario");
var
varerrores
errores==Session("errores");
Session("errores");
ifif( (formulario
formulario&&
&&errores
errores) ){{
formulario.nombre
formulario.nombre==Request.Form("nombre").Item;
Request.Form("nombre").Item;
formulario.direccion
formulario.direccion==Request.Form("direccion").Item;
Request.Form("direccion").Item;
errores
errores==validar(
validar(formulario
formulario););
ifif( (errores.length
errores.length>>00) ){{
Session(
Session("formulario"
"formulario") )==formulario;
formulario;
Session(
Session("errores"
"errores") )==errores;
errores;
Response.Redirect(
"formulario.asp"
Response.Redirect( "formulario.asp"););
}}
else
else{{
Response.Redirect(
Response.Redirect("exito.asp"
"exito.asp"););
}}
else{
else
else{
Response.Redirect(
Response.Redirect("formulario.asp"
"formulario.asp"););
}}
%>
%>
27
14
[Ángel US V7] Diseño: Amador Durán Toro (2003-2006)
Introducció
Introducción a ASP (Active Server Pages)
Pages)
exito
<%
<%@language="JavaScript"
@language="JavaScript"%>
%>
Escuela Técnica Superior
de Ingeniería Informática
Departamento de Lenguajes
y Sistemas Informáticos
1. Introducció
Introducción
2. Estilos de
programació
programación ASP
3. Objetos ASP
3.1. El objeto
Application
3.2. El objeto
Session
3.3. El objeto
Server
3.4. El objeto
Request
3.5. El objeto
Response
3.6. El fichero
global.asa
4. Objetos de acceso a
datos (ADO)
4.1. El objeto
Connection
4.2. El objeto
Recordset
4.3. Tratamiento
de errores
5. Buenas prá
prácticas
usando ASP
Sevilla, noviembre de 2006
Grupo de Ingeniería del Software
<%
%>
•Rescatar
•Rescatarlos
los
datos
datosdel
del
formulario
formulario
••Anular
Anularlos
los
valores
valoresen
enlala
Session
Session
••Hacer
Hacerelel
tratamiento
tratamiento
de
delos
losdatos
datos
(p.e.
(p.e.
inserción
inserciónen
en
lalaBDs)
BDs)
<%
<%
var
varformulario
formulario==Session("formulario");
Session("formulario");
Session("formulario")
null
Session("formulario")==null;
null;
Session("errores")
null
Session("errores")==null;
null;
%>
%>
<html>
<html>
<head>
<head>
<title>Éxito</title>
<title>Éxito</title>
</head>
</head>
<body>
<body>
<div
<divid="div_exito">
id="div_exito">
<h1>Hola
<h1>Hola<%=
<%=formulario.nombre
formulario.nombre%>,
%>,
gracias
graciaspor
porregistrarte</h1>
registrarte</h1>
<div
id="div_volver">
<div id="div_volver">
Pulsa
Pulsa<a
<ahref="formulario.asp">aquí</a>
href="formulario.asp">aquí</a>
para
paravolver
volveralalformulario
formulario
</div>
</div>
</div>
</div>
</body>
</body>
</html>
</html>
28
15
Descargar