tutorial asp 3.0

Upload: laa70

Post on 07-Jul-2015

725 views

Category:

Documents


3 download

TRANSCRIPT

1 - Qu es ASP?ASP (acrnimo de Active Server Page) es una tecnologa desarrollada por Microsoft para ejecutar cdigo en un servidor web y generar pginas en forma dinmica. Hay que entender primero como funciona la solicitud de pginas en un navegador para comenzar a utilizar ASP. Comunicacin entre el cliente y el servidor sin ASP: 1 - Se escribe en la barra del navegador la direccin y el archivo a solicitar. 2 - El web browser (navegador) enva el mensaje a travs de Internet a la computadora, por ej emplo www.lanacion.com/pagina1.htm solicitando la pgina (archivo) pagina1.htm 3 - El web server (servidor web, que puede ser el Apache, IIS, etc.) que es un programa que se ejecuta en la mquina www.lanacion.com, recibe el mensaje y lee el archivo solicitado desde el disco duro. 4 - El servidor web enva el archivo solicitado por el navegador tal cual est en el disco duro. 5 - El navegador muestra en pantalla el archivo que envi el servidor web. Este proceso siempre es el mismo cuando hablamos de pginas estticas (pginas que no cambian), cualquiera sea el cliente que solicita la pgina el contenido siempre ser el mismo. La nica forma que el contenido del archivo cambie es que el administrador de ese sitio web edite el contenido del archivo pagina1.htm y haga modificaciones. Comunicacin entre el cliente y el servidor con ASP: 1 - Se escribe en la barra del navegador la direccin y el archivo a solicitar. 2 - El web browser (navegador) enva el mensaje a travs de Internet a la computadora llamada www.lanacion.com solicitando la pgina (archivo) pagina1.asp 3 - El web server (servidor web IIS, veremos luego que este servidor tambin es propiedad de Microsoft), recibe el mensaje y al ver que la extensin es "asp" solicita al mdulo de ASP (que es otro programa que se ejecuta en el servidor web) que le enve el archivo. 4 - El mdulo ASP lee desde el disco el archivo pagina1.asp 5 - El mdulo ASP ejecuta los comandos contenidos en el archivo y eventualmente se comunica con un gestor de base de datos (ejemplos de ellos pueden ser SQL Server, Access etc.) 6 - Luego de ejecutar el programa contenido en el archivo enva ste al servidor web. 7 - El servidor web enva la pgina al cliente que la haba solicitado. 8 - El navegador muestra en pantalla el archivo que envi el servidor web. Para aquellas personas que conocen otros lenguajes de programacin (C- Java - C# - Pascal etc.) la salida de los resultados normalmente es la pantalla, en ASP la salida es la pgina HTML (luego sta viaja por internet y llega al cliente que la solicit).

2 - Programa "Hola Mundo" con ASPDecamos que ASP es la primera tecnologa desarrollada por Microsoft para la generacin de pginas dinmicas de servidor. En realidad ASP no es un lenguaje de programacin sino el nombre de la tecnologa. El lenguaje ms utilizado para implementar las pginas dinmicas ASP es el VBScri t. Este lenguaje utilizaremos en este curso p para la codificacin de las pginas dinmicas. Tambin se puede emplear el lenguaje JScript. Para agregar un programa dentro de una pgina HTML debemos por un lado al crear el archivo definirlo con extensin asp (a diferencia de las pginas estticas que tienen extensin htm o html) y dentro del contenido de la pgina, encerrar el programa entre los smbolos ASP cuenta con una serie de objetos que nos permiten trabajar en el servidor. El objeto response cue con un nta mtodo llamado write que nos permite generar HTML en el servidor. Nuestro programa "Hola Mundo" ser entonces: pagina1.asp problema El servidor IIS (Internet Information Server) identifica que la extensin del archivo solicitado es asp por lo que pasa al mdulo ASP para procesar el programa contenido en su interior. En este caso el programa contenido es muy sencillo, solo le pedimos que imprima dentro de la pgina la cadena "Hola Mundo". Es verdad que para este tipo de problemas conviene emplear una pgina esttica HTML ya que el contenido que genera el programa siempre es el mismo. Otra cosa que hay que tener bien en claro, cual es el contenido del archivo que recibe el navegador: pagina1.asp problema Hola Mundo Como podemos observar desaparece el programa codificado en VBScript y contiene el resultado de la ejecucin del mismo. Los programas que se encuentran en el servidor nunca sern visto por el visitante, ya que estos reciben el s resultado de la ejecucin de los mismos.

Para aquellas personas que no han utilizado otra tecnologa de pginas dinmicas puede ser inicialmente un poco complejo entender la programacin en el servidor. Si ya de antemano conocen otro lenguaje de escritorio (CC++ - Java) el mtodo write del objeto response (response.write) remplaza al comando de impresin por pantalla. Como el programa se ejecuta en un servidor de Internet que se puede encontrar a miles de kilmetros poco sentido tendra imprimir en el monitor de dicho servidor. Entonces la solucin es "imprimir" dentro del archivo HTML que se enviar al navegador que solicit dicha pgina.

Problema:Confeccione un programa que muestre su nombre y apellido en la pgina empleando el mtodowrite del objeto response. Tener en cuenta que hay que encerrar entre comillas dobles la cadena a imprimir. problema

3 - Un programita ms til que "Hola Mundo"Tal vez el ejemplo del concepto anterior no sea el ms adecuado para ver las ventajas dela ejecucin de un programa en el servidor. Un problema sencillo que se nos puede presentar y que no se puede resolver empleando solo HTML es que una pgina est disponible slo los 10 primeros das del mes. Mostraremos un cartel que diga que el sitio se encuentra disponible si la fecha es menor o igual a 10, en caso contrario mostraremos un mensaje de sitio fuera de servicio. Si no conocemos una tecnologa para generar paginas dinmicas no nos queda otra solucin que nosotros manualmente modifiquemos la pgina HTML cada vez que llegamos al da 11. La solucin con ASP es obtener la fecha actual y mediante una condicin verificar si el da es menor o igual a 10 y mostrar el mensaje correspondiente. pagina1.asp problema Una variable entera se define cuando le asignamos un valor entero: edad=22 Luego para imprimir dicha variable hacemos: response.write("variable entera:") response.write(edad) response.write("
") Primero mostramos un mensaje para saber que tipo de variable estamos imprimiendo, seguidamente en la segunda llamada al mtodo write imprimimos la variable y por ltimo procedemos a imprimir el elemento HTML
para que se efecte un salto de lnea en el navegador y cada variable aparezca en una lnea distinta. Para definir una variable real debemos utilizar el caracter .: pi=3.1416 Las variables de tipo string se inicializan asignndole una cadena encerrada entre dobles comillas: nombre="juan"

Una variable de tipo fecha debe estar encerrada entre los caracteres # y el orden de inicializacin es mes/da/ao: fechahoy=#12/25/2008# Por ltimo una variable lgica solo puede almacenar alguno de estos dos valores ( true o false): existe = true

Lo operadores matemticos para las variables enteras y reales son: + * / \ (retorna la parte entera de la divisin) mod (retorna el resto de una divisin) ^ (eleva un nmero a un determinado exponente) Para concatenar variables de tipo string debemos utilizar el operador &. Definir las siguientes tipos de variables: entera, real, string, fecha y lgica. Luego imprimir sus contenidos una por lnea. pagina1.asp problema

Problema:Definir tres variables enteras e inicializarlas con distintos valores. Guardar la suma de las tres en una cuarta variable. Luego mostrar las tres variables y la variable que almacena la suma. problema

6 - Forzar definicin de variables

Habamos visto en el concepto anterior que las variables se creaban cuando le asignbamos un valor. Esto puede ser muy peligroso ya que podemos caer fcilmente en este error: edad=22 ... ... response.write(ed) Este programa no provoca error ya que cuando queremos imprimir la variable ed y el VBScript n la encuentra o entre las definidas procede a crear una nueva variable. El lenguaje VBScript nos permite indicarle que nos obligue a definir todas las variables que utilizamos en el programa. Esto se logra indicando en la primera lnea el comando: option ex plicit Luego utilizamos la palabra dim seguida de las variables a definir. Veamos un ejemplo donde definimos tres variables con los nombres de personas: problema Como podemos observar la primera lnea del archivo es: Luego todas las variables que utilizaremos debemos definirlas seguidas de la palabra clave dim: dim nom1,nom2,nom3 La asignacin de variables no sufre cambios con respecto a lo visto: nom1="ana" Ahora bien si en alguna parte del programa nos equivocamos y tratamos de asig narle un valor a una variable inexistente (no definida) el programa se detiene y nos informa del error: n1="ana" Provoca un error similar a esto: Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'n1' /aspya/usuarios/190.30.94.164/pagina1.asp, line 9 Es muy conveniente la definicin de variables, nos evitan muchos problemas cuando un programa es ms grande y tenemos una gran cantidad de variables. Las nuevas tecnologas de Microsoft ASP.Net obligan pordefecto la definicin de variables. Definir tres variables de tipo string con los nombres de personas. Forzar la definicin obligatoria de variables. Imprimir sus contenidos. Luego imprimir una variable que no exista, podemos modificar levemente el nombre de alguna de esas tres variables definidas previamente (ver el mensaje de error). Luego elimine el comandooption explicit y ejecute nuevamente el programa.

pagina1.asp problema

7 - Estructura condicional ifCuando se pretende que el programa, una vez llegado a un cierto punto, tome un camino concreto en determinados casos y otro diferente si las condiciones de ejecucin difieren, se utiliza la instruccin if:

if Condicin Instruccin Instruccin else Instruccin Instruccin end if

A1 A2 B1 B2

Si la condicin genera un valor verdadero se ejecutan luego todas las instrucciones seguidas al if: Instruccin A1 Instruccin A2 Si genera un valor falso se ejecutan las instrucciones seguidas al else hasta encontrar el comando end if: Instruccin B1 Instruccin B2 El bloque del else es opcional, es decir podemos hacer que ciertas instrucciones se ejecuten y en caso de ser falso la condicin del if no se ejecute nada: if Condicin Instruccin Instruccin else Instruccin Instruccin end if

A1 A2 B1 B2

Confeccionaremos una pgina que muestre un mensaje distinto si el da actual tiene un dgito o dos: problema mayor. Ahora cuando rescatamos el contenido del control select: operaciones=request.form("operacion") se almacena en la variable operacin todos los contenidos de las propiedades value de las opciones seleccionadas. Cada valor est separado por una coma. Esta forma de retornar todos los valores nos complica en el momento de verificar cual de las opciones est seleccionada. Una forma de verificar si una de las opciones est seleccionada es empleando la funcin intstr. Esta funcin tiene dos parmetros, el primero recibe la cadena completa a analizar y el segundo la cadena a buscar. Si esta funcin retorna un valor distinto a cero significa que se encuentra la cadena a buscar. Entonces tenemos: if (instr(operaciones,"su ma")0) then Si el string "suma" se encuentra almacenada en alguna parte de la variable operacin la funcin instr retorna un valor distinto a cero por lo que la condicin del if se verifica verdadera y procedemos a efectuar la suma de los dos valores.

Confeccionar un formulario que solicite la carga de dos valores enteros por teclado. Luego mediante un control HTML de tipo select (de seleccin mltiple) solicitar que indique el usuario si quiere sumarlos,restarlos o ambos. Mostrar el resultado en una pgina ASP.

pagina1.html problema Ingrese primer valor:


Ingrese segundo valor:
Sumar Restar
pagina1.asp problema

12 - Formulario HTML (control checkbox)

Otra forma de hacer selecciones mltiples es utilizar un conjunto de controles de tipo checkbox. Cada control de tipo checkbox es independiente. Resolvamos el problema del concepto anterior empleando dos controles de tipo checkbox. pagina1.html Problema Ingrese primer valor:
Ingrese segundo valor:
sumar
restar
Como podemos observar: sumar
restar
cada control de tipo checkbox define en la propiedad name un nombre distinto (check1 y check2) Es importante notar que definimos la propiedad value para cada checkbox, este valor se rescatar en casoque el checkbox est seleccionado. Veamos ahora el archivo que contiene el programa ASP.

pagina1.asp problema Rescatamos el contenido del primer checkbox: operacion=request.form("check1") Si el primer checkbox est seleccionado la variable opcin almacena el contenido de la propiedad value, en caso de no estar seleccionado la variable operacin almacena una cadena vaca que es el valor retornado por la llamada al mtodo form del objeto request pasando como parm etro el name del primer checkbox. Con una estructura if verificamos si el valor devuelto corresponde al string "suma": if (operacion="suma") then suma=cint(v1)+cint(v2) response.write("la suma de los dos valores es:") response.write(suma) response.write("
") end if Luego hacemos la misma actividad para rescatar el valor del segundo checkbox y almacenamos el valor devuelto en la misma variable operacion (se pierde el valor anterior): operacion=request.form("check2") if (operacion="resta ") then resta=cint(v1) -cint(v2) response.write("la diferencia de los dos valores es:") response.write(resta) end if Los parntesis en la condicin de un if son opcionales.

Confeccionar un formulario que solicite la carga de dos valores enteros por teclado. Luego mediante dos controles HTML de tipo checkbox solicitar que indique el usuario si quiere sumarlos,restarlos o ambos. Mostrar el resultado en una pgina ASP.

pagina1.html problema

Ingrese primer valor:
Ingrese segundo valor:
sumar
restar
pagina1.asp problema

Problema:Confeccionar un formulario que solicite la medida del lado de un cuadrado. Luego disponer dos controles de tipo checkbox que nos permitan si queremos calcular el permetro y superficie del cuadrado. pagina1.html problema Ingrese la medida del lado del cuadrado:
Permetro
Superficie

pagina1.asp problema

13 - Formulario HTML (control textarea)Otro control de uso comn es el textarea, a diferencia de un control de tipo "text" nos permite ingresar muchas lneas de texto. Confeccionaremos una pgina que solicite el ingreso de una persona y en un control de tipo textarea permitir ingresar un comentario. En la pagina ASP mostraremos los datos cargados en los dos controles. pagina1.html

problema Ingrese su nombre:
Comentarios


Recordemos la sintaxis en HTML para la definicin de un control de tipo textarea: Mediante el valor de la propiedad name rescataremos el contenido del cuadro de texto. Luego el programa ASP que rescata los datos ingresados (pagina1.asp): problema Definimos las dos variables donde almacenaremos los datos rescatados del formulario: dim nombre,comentarios Ahora rescatamos los valores de los controles: nombre=request.form("nombre") comentarios=request.form("comentarios") Por ltimo imprimimos los valores rescatados: response.write("Nombre ingresado:" & nombre) response.write("
") response.write("Comentarios:" & comentarios) El operador & nos permite concatenar una cadena con una variable y resolver la impresin con una sola llamada al mtodo write. Confeccionar un formulario que solicite el ingreso del nombre de una persona y en un control de tipo textarea pedir el ingreso de un comentario. En la pagina ASP imprimir los datos cargados en los dos controles.

pagina1.html problema Ingrese su nombre:
Comentarios


pagina1.asp problema

Problema:Confeccionar un formulario que permita ingresa en una serie de controles de tipo text el nombre y apellido de una persona, su edad, su direccin, su mail y en un control de tipo textarea su curriculum. Imprimir los datos cargados en la pgina ASP. pagina1.html problema Nombre y Apellido:
Edad:
Direccin:
Mail:
Curriculum


pagina1.asp problema

14 - Formulario HTML (control password)Otro control muy empleado es el de tipo password. Su funcionamiento y mecnica para rescatar su valor es semejante al control de tipo "text", la nica diferencia es que cuando tipeamos caracteres dentro del control nos muestra asterscos en lugar de los caracteres. Para ver su funcionamiento implementaremos un formulario para el ingreso del nombre de usuario y su clave. En la pgina ASP imprimiremos los dos datos ingresados. pagina1.html Problema Nombre de usuario:
Clave:
Como podemos observar para definir un control de tipo password en HTML debemos inicializar la propiedad type con el valor "password": La pgina ASP que rescata los valores ingresados y los imprime (pagina1.asp) problema Recordemos que en la primera lnea del archivo siempre ejecutamos el comando option explicit para obligar la definicin de variables: Definimos las variables y rescatamos los valores de los dos controles:

dim nombre,clave nombre=request.form("nombre") clave=request.form("clave") Imprimimos los valores cargados: response.write("Nombre ingresado:" & nombre) response.write("
") response.write("Clave ingresada:" & clave)

Confeccionar un formulario para el ingreso del nombre de usuario y su clave. Emplear el control de tipo password para el ingreso de la clave. En la pgina ASP imprimir los dos datos ingresado s.

pagina1.html problema Nombre de usuario:
Clave:
pagina1.asp problema

Problema:Solicitar el ingreso de una clave dos veces (es decir disponer dos controles de tipo password), luego en el servidor verificar si las claves ingresadas son iguales, mostrar un mensaje informando si se cargaron valores iguales o distintos.

pagina1.html problema Ingrese Clave:
Repita el ingrese de la Clave:

pagina1.asp problema

15 - Estructuras condicionales anidadasHabamos visto la estructura condicional if if condicion then instrucciones else instrucciones end if Hay situaciones donde por la rama del else podemos disponer otra estructura condicional y as sucesivamente. Para ver la sintaxis desarrollaremos un formulario donde ingresaremos un valor por teclado comprendido entre 1 y 1000. Luego mostraremos cuantos dgitos tiene. Emplearemos una serie de if anidados para ver la cantidad de dgitos. pagina1.html problema Ingresar un valor entre 1 y 1000:
La pgina que contiene el programa ASP es problema