asp

Add to Favourites
Post to:

Description
TEST

Comments
Presentation Transcript Presentation Transcript

ASPActive Server Pages : ASPActive Server Pages Oscar Cubo Medina Santiago González Tortosa Victor Robles Forcada Programación Web en Servidor INEM – 2007

Contenidos : Contenidos Introducción Estáticas VS Dinámicas Arquitectura de Aplicaciones CGI Lenguaje ASP Funcionamiento Requisitos Ventajas e Inconvenientes Configuración Programación con VBScript Constantes y Variables Operadores Estructuras de Control Bucles Funciones y Procedimientos Modelo de Objetos Application, Session, Request, Response, … Acceso a Ficheros Objeto FileSystemObject Operaciones sobre Ficheros Acceso a Bases de Datos Introducción a BBDD Objetos para Acceso a BBDD Referencias

IntroducciónASP : IntroducciónASP

Introducción : Introducción Paginas Estáticas VS Páginas Dinámicas Arquitectura de Aplicaciones Modelo 3 capas Cliente VS Servidor Scripts y CGI

Slide 5 : Páginas estáticas Servidor Web de www.fi.upm.es http://www.fi.upm.es … … GET “www.fi.upm.es” GET “www.fi.upm.es/logo.gif” Logo.gif Index.html

Slide 6 : Páginas dinámicas Servidor Web de www.fi.upm.es http://search.unisys.com/search/default.asp?section=allsections&q1=http&Submit=Go GET “…&Submit=Go” Respuesta dinámica

Slide 7 : Arquitectura de Aplicaciones Servicios de usuario Interfaz de usuario Servicios de trabajo Servicios de datos Lógica de negocio Datos

Slide 8 : Modelo de 3 capas Navegador Servidor Web Presentación Lógica de negocio Acceso a datos

Slide 9 : Aplicaciones Web Cliente Browser HTTP Máquina Servidora Cliente No Browser Servicios Soportados DBMS Servidor Web DBMS Protocolo de objetos Aplicaciones existentes

Slide 10 : El mundo del Cliente HTML / DHTML / CSS Lenguajes de script: JavaScript / VBScript Applet Java / Active X

Slide 11 : El mundo del Servidor HTML / DHTML / XML ASP / JSP / PHP CGI VBScript / JavaScript Servlets / Scriptlets COM / DCOM / COM+ / EJB ODBC / JDBC / OLE DB / ADO

Slide 12 : Lenguajes de script en cliente: JavaScript y VBScript VBScript sólo para Internet Explorer JavaScript ampliamente utilizado Cada navegador tiene sus propias extensiones Muy usados para realización de cálculos y validación de formularios

Slide 13 : CGI Common Gateway Interface Se pueden desarrollar con cualquier lenguaje Por aspectos de seguridad se almacenan en directorios específicos del servidor

Slide 14 : CGI Ventajas Cualquier lenguaje de programación Altamente extendidos Todas las plataformas Inconvenientes Ojo con el uso de ejecutables en servidor Van lentos en IIS

Lenguaje ASPASP : Lenguaje ASPASP

ASP : ASP ¿Qué es? Funcionamiento Requisitos Ventajas e Inconvenientes Configuración del Sistema

ASP : ASP ¿Qué es? Active Server Pages – Paginas Activas en Servidor Es un lenguaje de programación Generación de páginas dinámicas Servidor Windows Anexo a IIS (Internet Information Server)

Slide 18 : Funcionamiento IIS Ejemplo

Un ejemplo de ASP

<% response.write "
" response.write "Hola!" response.write "
” %> ejemplo.asp 4) El Browser muestra el HTML

Ejemplo de ASP : Ejemplo de ASP <% For i=3 to 7 %> Hola Mundo
<% Next %>

Requisitos para ejecutar ASP : Requisitos para ejecutar ASP Servidor Web: IIS (Internet Information Server) PWS (Personal Web Server) Drivers ODBC de acceso a Bases de Datos Editor de Texto

¿Por qué páginas ASP? : ¿Por qué páginas ASP? Ventajas Independientes del navegador  Fácil de crear y usar  Diferentes lenguajes de script válidos  No más gastos en Software  Inconvenientes Muy ligado a Microsoft  Mala depuración  Muchísimos WebSites están hechos con ASP

Configuración del sistema : Configuración del sistema ¿Dónde se ponen las páginas ASP? Directorio c:\inetpub\wwwroot Configuración del directorio El usuario es IUSR_nombremaqina Necesita acceso de Lectura/Ejecución En caso de Base de Datos, también necesita acceso de Escritura Ejercicio 1: poner nuestro entorno en producción.

Programación con VBScriptASP : Programación con VBScriptASP

Programación con VBScript : Programación con VBScript Variables Constantes Comentarios Operadores Estructuras de Control Bucles Funciones y Procedimientos

Variables : Variables En general: No hay que declararlas. Suele ser útil declararlas. Option Explicit (obliga a declararlas) <% Dim x %> Sólo hay un tipo, el variant x = 36 x = “Mi texto” Imprimir valor de variable <% Response.Write (nombre_variable) %> <% =nombre_variable %>

Contantes, Operadores, … : Contantes, Operadores, … Constantes Se declaran con Const No cambian Const pi = 3.14159 Comentarios ‘Esto es un comentario Operadores +, -, *, / \ división entera, ^ exponenciación Concatenar strings & Lógicos: NOT, AND, OR y XOR Comparación: =, <>, <, >, <= y >=

Constantes, Operadores… : Constantes, Operadores… Ejemplo 2: Calcular el precio real de dos ordenadores, que cuestan: 1123 euros 1326 euros Ambos sin iva. El programa debe devolver un mensaje personalizado. Santi, el precio total del ordenador 1 es: XXX euros Santi, el precio total del ordenador 2 es: YYY euros

Slide 28 : Estructuras de control If .. Then ... ElseIf <% x = 23 If x < 0 Then %> Número Negativo <% ElseIf x>0 Then %> Número Positivo <% Else %> Es cero <% End If %> If condición Then sentencias Elseif condición2 Then sentencias2 Else sentencias3 End If

Estructuras de Control : Estructuras de Control Ejemplo 3: Ejecutar un programa que escriba una frase distinta cuando se cumpla una determinada condición, según el siguiente valor: Valor “1” Valor “2” Otro valor (3, 4, 0 …)

Bucles : Bucles Do while/until Do...loop while/until For…Next For Each…Next While Exit Do Exit For

Bucles : Bucles Do While... Loop <% x = 10 Do While x > 0 %> <% =X %>
x = x - 1 Loop %> Do While condición sentencias Loop

Slide 32 : For ... Next <% For x = 1 To 5 %> <% =X %>
<% Next %> For variable = inicio To fin sentencias Next Bucles

Do while/until : Do while/until Do While do while condición sentencias loop Ejemplo do while a <= 10 a = a + 1 loop Do Until do until condición sentencias loop Ejemplo do until a > 10 a = a + 1 loop

Do…loop while/until : Do…loop while/until Do…loop While do sentencias loop while condición Ejemplo do a = a + 1 loop while a <= 10 Do…loop Until do sentencias loop until condición Ejemplo do a = a + 1 loop until a > 10

For (each)…Next : For (each)…Next For…Next For variable = inicio to fin sentencias Next Ejemplo For i = 1 to 10 a = a + 1 Next For each…Next For each variable in seq sentencias Next Ejemplo For each persona in cola contador = contador + 1 Next

While : While For each…Next While condición sentencias Wend Ejemplo Dim value Value = 1 While value < 10 value = value + 1 Wend

Bucles : Bucles Ejercicio 4: Realizar la tabla de multiplicar del 1 hasta el 10, con valores del 1 al 10.

Funciones : Funciones Devuelve un valor Function gradosCelsius(gradosCent) gradosCelsius = (gradosCent - 32) * 5 / 9 End Function cent = 35 celsius = gradosCelsius(cent) Mismo nombre que función Function nombre (parametros) setencias nombre = … End Function

Procedimientos : Procedimientos No devuelven valor <% Sub trata_Cadena (miCadena) %> La cadena inicial: <% =miCadena %>
En mayúsculas: <% =UCase(miCadena) %>
Número caracteres: <% =Len(miCadena) %>
<% End Sub %> Sub nombre (parametros) sentencias End Sub

Procedimientos : Procedimientos Llamar a Sub Call trata_Cadena("Cuántas letras tengo?") trata_Cadena "Cuántas letras tengo?"

Funciones y Procedimientos : Funciones y Procedimientos Ejemplo 5a: Realizar la suma de los 100 primeros números (número triangular) utilizando funciones. Ejemplo 5b: Lo mismo que el ejercicio anterior pero utilizando procedimientos.

Funciones Integradas en ASP : Funciones Integradas en ASP Cogen argumentos y devuelven un valor Manipulan strings, fechas y horas y matemáticas miPalabra = "Patata" x = Len(miPalabra)

Inclusión de ficheros : Inclusión de ficheros Suele ponerse extensión .inc Luego se incluye con

Modelo de ObjetosASP : Modelo de ObjetosASP

Modelo de Objetos : Modelo de Objetos Estructura de Modelo de Objetos Objeto Request Colección QueryString y Form Colección Cookies Colección ServerVariables Objeto Response Objeto Server Otros Objetos

Modelo de objetos de ASP : Modelo de objetos de ASP Cliente Servidor Objeto Server Objeto Session Objeto Application Objeto Request Objeto Response Objeto ObjectContext

Slide 47 : Aplicación ASP (Objeto Application) Session Session ........ Session Cliente Cliente Cliente ........ Modelo de objetos de ASP

Modelo de objetos de ASP : Modelo de objetos de ASP Objeto Request: captura la información que va del cliente al servidor. Objeto Response manda información del servidor al cliente. tiene métodos y propiedades para modificar y crear lo que se envía al cliente. También para redirigir a otra página. ObjectContext: se utiliza para finalizar o abortar una transacción realizada por el MTS (Microsoft Transaction Server) y que ha sido ejecutada por otro Script ASP.

Modelo de objetos de ASP : Modelo de objetos de ASP Objeto Application: Sirve para almacenar información que será compartida entre todos los clientes Application(“nombre”) = valor Si algún cliente quiere modificar alguna variable debe realizar un lock y un unlock. <% Application.Lock Application("numero") = 15 Application.Unlock %>

Modelo de objetos de ASP : Modelo de objetos de ASP Objeto Session: Almacena información válida para todas las páginas mientras dure la sesión del usuario. Cuando el usuario accede por primera vez se genera un identificador único.

Modelo de objetos de ASP : Modelo de objetos de ASP Ejemplo 6: Mantenimiento del estado de una Sesión Objetivo: Familiarización con el mantenimiento del estado de una sesión de usuario. Tenemos que realizar dos páginas Web. La primera de ellas contendrá un formulario en el que se pedirá al cliente su nombre y apellidos. La segunda página recogerá el valor de los campos del formulario y los almacenará como variables de Sesión. A continuación volverá a leer esas variables para sacar su valor por pantalla.

Objeto Request : Objeto Request Colecciones QueryString Form ServerVariables Cookies ClientCertificate Propiedades TotalBytes Métodos BinaryRead

Colección QueryString y Form : Colección QueryString y Form

Colección QueryString y Form : Colección QueryString y Form

Por favor, introduce tus datos

 Nombre    
 Correo-e   
 Dirección  
 
Añademe a la lista de direcciones

Colección QueryString y Form : Colección QueryString y Form Si se utiliza POST es todo lo mismo pero utilizando Request.Form <% For each Objeto in Request.QueryString %> Nombre del Objeto ‘<% Response.Write(Objeto) %>’ tiene Valor ‘<% = Request.QueryString(Objeto) %>’
<% Next %>

<% Dim nombre nombre = Request.QueryString("sNombre") %> Nombre: <% =nombre %>

Colección QueryString y Form : Colección QueryString y Form Ejercicio 7a: Formulario de creación de usuarios. Campos: Nombre Usuario Password y Repetir Password Método POST Comprobacion de Passwords iguales y mayores a 7 letras o digitos. Aviso de creación correcta o incorrecta Ejercicio 7b: Formulario de creación de usuarios. Campos: Nombre Usuario Password y Repetir Password Método GET (ERROR MUY GORDO!) Comprobacion de Passwords iguales y mayores a 7 letras o digitos. Aviso de creación correcta o incorrecta

Colección QueryString y Form : Colección QueryString y Form Más ejercicios: Calculo de edad: Realizar un formulario que recoja la fecha de nacimiento de una persona en formato mm/dd/aa y que la envie a otra página que calcule la edad de la persona. Las funciones que se deben utilizar son datediff que devuelve la diferencia en días de dos fechas dadas e Int que realiza una división entera.

La colección Cookies : La colección Cookies Satisface la necesidad de almacenamiento de información permanente. Es un paquete de información que es enviado del cliente al servidor en cada respuesta. Con Request leemos, con Response escribimos.

La colección Cookies : La colección Cookies Ejercicio 8: Familiarizarnos con el uso de las cookies en la máquina del cliente. Hay que realizar dos páginas ASP. La primera sacará en una tabla todas las cookies de la máquina cliente, dando la opción de borrarlas. Además, tendrá un formulario que permitirá añadir cookies a través de dos campos, el campo nombre y el campo valor. La segunda página se encargará del borrado y de la inserción de las cookies.

Colección ServerVariables : Colección ServerVariables Valor = Request.ServerVariables(“HeaderType”) HeaderType: REMOTE_ADDR: Dirección IP de máquina remota LOGON_USER: Usuario ALL_HTTP: Toda la cadena HTTP HTTP_USER_AGENT: Cliente utilizado HTTP_COOKIE: Cookies en la máquina remota HTTP_REFERER: Página de la que procedo HTTP_ACCEPT: Tipo de ficheros admitidos

El objeto Response : El objeto Response Permite escribir información y cookies en cliente Para realizar redirecciones: Response.Redirect(“nombre”) Permite realizar buffering: Response.Buffer Response.Clear Response.Flush Controlar cuando expira una página: Response.Expires(min)

El objeto Server : El objeto Server Tiene 4 métodos: CreateObject: Crea una instancia de un objeto en el servidor HTMLencode: Aplica codificaciónm HTML a una cadena Mappath: Convierte un path virtual en un path físico URLencode: Aplica codificación URL a una cadena

El objeto Server : El objeto Server Ejercicio 9: Escribir el texto texto negrita texto italica UPM Usando la funcion HTMLencode Sin usarla Escribir la direccion web http://www.fi.upm.es/hola que tal:ñá Usando la función URLencode Sin usarla

Otros Objetos : Otros Objetos Objeto Scripting.Dictionary contiene pares de elementos (clave, valor). Por ejemplo carrito de compras. Objeto Scripting.FileSystemObject proporciona acceso al sistema de ficheros del ordenador.

Acceso a FicherosASP : Acceso a FicherosASP

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S set fs = Server.CreateObject(“Scripting.FileSystemObject”) Acceso a todas las unidades de discos DEL SERVIDOR!! (Ejemplo 10) set discos = fs.Drives for each d in discos … next Propiedades de una unidad if (NOT fs.DriveExists(“H”)) then Wscript.Quit else set drive = fs.GetDrive(“H”) if (drive.IsReady) then drive.DriveLetter drive.DriveType ‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM) drive.VolumeName (ShareName) drive.TotalSize drive.FreeSpace end if end if

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S Acceso a carpetas set carpeta = fs.GetFolder (path) set carpetas = carpeta.SubFolders for each c in carpetas … c.Name Next

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S Acceso a ficheros set ficheros = carpeta.Files for each f in ficheros … f.Name f.Size f.DateCreated f.DateLastModified Next Ejemplo 11: Mostrar el contenido de la carpeta System32 Existencia de fichero fs.FileExists(fichero) Copiar ficheros fs.CopyFile path1 path2 Borrar ficheros fs.DeleteFile(fichero)

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S Ejemplo 12: Sistema Backup Realizar un sistema backup que copie todo el contenido de una carpeta dentro de otra carpeta. Se aconseja utilizar como destino, la carpeta Backup, y dentro de el, una carpeta de copia, según la fecha de hoy: path2 & Day(Date) & "-" & Month(Date) & "-" & Year(Date)

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S Acceso a un fichero de texto OpenTextFile (nombre [, modo[, crear[, formato]]] ) Modo: (1) ForReading, (2) ForWriting, (3) ForAppending Crear: True si se va a crear nuevo. False en caso contrario Formato: TristateTrue si es Unicode, TristateFalse si es ASCII Lectura de fichero de texto set entrada = fs.OpenTextFile(“fichero.txt”) Do While Not (entrada.atEndOfStream) Texto = Texto & entrada.ReadLine & “
” Loop Escritura (con/sin reemplazo) en fichero set entrada = fs.OpenTextFile(“fichero.txt”) set salida = fs.OpenTextFile(“fichero2.txt”, 2, True) Do While Not (entrada.atEndOfStream) texto = entrada.ReadLine salida.WriteLine texto Loop

Uso de Sistemas de Fichero y E/S : Uso de Sistemas de Fichero y E/S Ejemplo 13: Copiar el contenido de un fichero en otro

Acceso a Bases de DatosASP : Acceso a Bases de DatosASP

Acceso a Bases de Datos : Acceso a Bases de Datos Introducción a BBDD Microsoft Access Acceso a BBDD con ASP

Introducción a BBDD : Introducción a BBDD Base de datos Conjunto de datos interrelacionados Almacenados sistemáticamente Gestor de base de datos Programa informático Almacena los datos de forma eficiente Permite acceder rápidamente a los datos SQL – Structured Query Language Lenguaje estándar de interrogación Es un estándar ANSI/ISO Pronunciado ‘esquiuel’

Ejemplo de BBDD : Ejemplo de BBDD

SQL: Sentencia USE : SQL: Sentencia USE Seleccionar la BBDD a la que se desea acceder Los lenguajes de programación proporcionan una función

SQL: Sentencia SELECT : SQL: Sentencia SELECT Consulta una BBDD SELECT DISTINCT [*|cols][FROM table-list][WHERE expr][GROUP BY expr-list][HAVING expr][ORDER BY sort-expr-list]

SELECT apellidos, email FROM estudiantes : SELECT apellidos, email FROM estudiantes

SELECT apellidos, email FROM estudiantes : SELECT apellidos, email FROM estudiantes

SELECT apellidos FROM estudiantes WHERE nota>=5 : SELECT apellidos FROM estudiantes WHERE nota>=5

SELECT apellidos FROM estudiantes WHERE nota>=5 : SELECT apellidos FROM estudiantes WHERE nota>=5

Operador LIKE : Operador LIKE Busca una subcadena El símbolo % encaja con cualquier cosa Ejemplos LIKE ‘ma%’ = Empieza por ‘ma’ LIKE ‘%id’ = Acaba por ‘id’ LIKE ‘Ma%id’ = Empieza por ‘ma y acaba por ‘id’ LIKE ‘%dr%’ = Contiene la cadena ‘dr’

SELECT * FROM estudiantes WHERE email LIKE ‘%ma%’ : SELECT * FROM estudiantes WHERE email LIKE ‘%ma%’

SELECT * FROM estudiantes WHERE email LIKE ‘%ma%’ : SELECT * FROM estudiantes WHERE email LIKE ‘%ma%’

SQL: Sentencia INSERT : SQL: Sentencia INSERT Añade nuevas entradas a una tabla INSERT INTO table-name[(column-list)]VALUES(value-list) Ejemplo: INSERT INTO estudiantes VALUES (983476, ‘Ruiz Santos’, ‘Carmen’, ‘’, 8)

Ejemplo: INSERT : Ejemplo: INSERT

SQL: Sentencia UPDATE : SQL: Sentencia UPDATE Modifica datos ya existentes en una BBDD UPDATE table-nameSET assignment [, assignment]*[WHERE expr] Ejemplo UPDATE estudiantesSET apellidos = ‘Castro Martín’ WHERE matricula = 960535

Ejemplo: UPDATE : Ejemplo: UPDATE

SQL: Sentencia DELETE : SQL: Sentencia DELETE Elimina entradas de la BBDD DELETE FROM table-name[WHERE expr] Ejemplo: DELETE FROM estudiantesWHERE nota < 5

Ejemplo: DELETE : Ejemplo: DELETE

Microsoft Access : Microsoft Access Ejemplo 14: Crear una base de datos en Access, según lo explicado en clase. Las tablas van a ser: Persona: Información sobre una persona Compra: Que persona compra que producto?? Producto: Información sobre un producto

Acceso a Base de Datos : Acceso a Base de Datos ADO OLEDB ODBC ActiveX Data Objects BD Open DataBase Connectivity OLE DataBase

Objetos para acceso a BD : Objetos para acceso a BD Objecto Connection Representa la conexión con la BD Objecto RecordSet Representa una tabla de datos proveniente de realizar una consulta Un objeto se crea con el comando Set. <% Set nombre_obj = ... %> Los objetos se cierran con el método Close. <% nombre_obj.Close %> Y por último se destruyen... <% Set nombre_obj = Nothing %>

Acceso a BBDD con ASP : Acceso a BBDD con ASP Acceso a BBDD con ASP Creacion de la conexión con la BD Acceso “REAL” a la BD (consulta, etc) Cierre de la conexión Acceso a los datos obtenidos (record)

Acceso a BBDD con ASP : Acceso a BBDD con ASP <% ‘Creación del objeto Connection Set Conn= Server.CreateObject("ADODB.Connection") ‘Apertura de la BD Conn.open “PROVIDER=Microsoft.Jet.OLEDB.4.0; DATA SOURCE= C:\inetpub\wwwroot\alumnos.mdb;” ‘Ejecución de una Query sSQL = "SELECT * FROM alumnos" Set rsDatos = Conn.Execute (sSQL) %>

Acceso a BBDD con ASP : Acceso a BBDD con ASP <% ‘Ejecución de una Query Compleja, a partir de un formulario sSQL="SELECT * FROM alumnos WHERE Codigo=" & Request.QueryString("codigo") Set rsDatos = Conn.Execute (sSQL) %>

Acceso a BBDD con ASP : Acceso a BBDD con ASP <% ‘Cierre de la conexión con la BD Conn.Close ‘Asignar a “nada” la variable utilizada Set Conn = Nothing ‘Cierre del record obtenido rsDatos.Close ‘Asignar a “nada” la variable utilizada Set rsDatos = Nothing %>

Acceso a los datos obtenidos : Acceso a los datos obtenidos

<% rsDatos.Movenext %> <% Loop %>
Nombre Apellidos Más información <% Do While Not rsDatos.EOF %>
<% Response.Write(rsDatos("Nombre"))%> <% Response.Write(rsDatos("Apellidos"))%> ">Detalles
<% Conn.Close Set Conn = Nothing rsDatos.Close Set rsDatos = Nothing %> Recomendación: if Not rsDatos.Eof Then …

BBDD con ODBC : BBDD con ODBC

BBDD con ODBC : BBDD con ODBC

BBDD con ODBC : BBDD con ODBC

Acceso a BBDD : Acceso a BBDD Ejemplo 15: Consulta a Base de Datos Realizar una página Web que acceda la base de datos clase.mdb, a la que habremos dado como DSN el nombre de "clase". Ejemplo 16: Inserción en Base de Datos Ejemplo 17: Modificación y Borrado en Base de Datos Ejemplo 18: Informacion de un Libro Otros ejemplos: Buscador Alumnos Buscador Libros

ReferenciasASP : ReferenciasASP

Referencias : Referencias Programación de Aplicaciones Web.S. Rodríguez, F. Pérez, J. Carretero, F. García, A. García, D. Nevado, M.S. Pérez, V. Robles, F. Rosales (2003). Editorial: Thomson. ISBN: 84-9732-181-2. ASP - MSDN Microsoft http://msdn2.microsoft.com/en-us/library/aa286483.aspx Directorio ASP http://dmoz.org/World/Español/Computadoras/Programación/Lenguajes/ASP/

ASPActive Server Pages : ASPActive Server Pages Oscar Cubo Medina Santiago González Tortosa Victor Robles Forcada Programación Web en Servidor INEM – 2007

Want to learn?

Sign up and browse through relevant courses.

Name:
Your Email:
Password:
Country:
Contact no:


Area code Number
Subjects you are interested in:
Word verification: (Enter the text as in image)


Sign Up Already a member? Sign In
I agree to WizIQ's User Agreement & Privacy Policy

Your Facebook Friends on WizIQ

Give live classes, create & sell online courses

Try it free Plans & Pricing

Connect