Qué son los Objetos ASP
Tras crear una web, cada script ASP dispone desde el momento en que es ejecutado de una serie de objetos predefinidos. Estos objetos ASP no hace falta crearlos. Se encuentran disponibles para cualquier script y permiten realizar funciones básicas como averiguar los parámetros pasados al script, enviar información al usuario, guardar variables persistentes, etc. Aquí exponemos un breve resumen de los más importantes, con sus propiedades y métodos más utilizados.
Response
Se utiliza para enviar la salida del script, es decir, lo que verá el usuario en su navegador.
Los métodos mas importantes del objeto response son:
-
Response.Write (cadena).Envía la cadena de caracteres al cliente. Equivale a intercalar código HTML entre el ejecutable.
Así, el siguiente código
<% if num > 1000 then Response.Write ('<h1>Se ha pasado de rosca</h1>') End if %>
Es totalmente equivalente a éste
<% if num > 1000 then %> <h1>Se ha pasado de rosca</h1> <% End if %>
De hecho, el HTML intercalado se implementa internamente mediante sentencias Response.Write.
-
Response.Redirect (Url). Redirige la página ASP a la URL especificada.
Por ejemplo, esto que sigue es una página ASP completa que simplemente redirige a la web www.arsys.es.
<% Response.Redirect ('https://www.arsys.es') %>
La redirección se implementa mediante cabeceras HTTP que son distintas que las enviadas cuando se muestra una página web. Eso significa que si se utiliza Response.Write o se intercala cualquier código HTML, ya no funcionará un posterior Response.Redirect porque se habrán enviado las cabeceras de mostrar una página web, no las de redirección.
No obstante, existe una forma de rectificar y enviar un comando de redirección tras haber enviado comandos write. Esto implica el uso de la propiedad Buffer y los métodos Flush y Clear, como se explica a continuación.
- Response.Flush. Envía de inmediato los datos del buffer.Si se establece en True la propiedad Response.Buffer, la salida del script (enviada mediante comandos Response.Write o HTML intercalado) no se envía directamente al navegador, sino que queda en un buffer (espacio intermedio de almacenamiento) del servidor.El método Response.Flush envía los datos del buffer al navegador. Otra forma de enviar los datos del buffer es simplemente dejar que termine el script o invocar el método End.
- Response.Clear. Borra los datos del buffer.Utilizar un buffer sólo tiene sentido si pensamos que nos podemos arrepentir de los datos enviados. Este método permite precisamente eso, anular todos los comandos Response.Write y HTML intercalado que hayamos utilizado desde que pusimos en True la propiedad Response.Buffer.
- Response.End. Termina el script y envía el buffer si está a True la propiedad Response.Buffer.
- Response.Buffer. Si se establece en True, se utiliza un buffer para la salida de datos, en combinación con los métodos anteriormente descritos.A pesar de la insistencia en el buffer, es algo que prácticamente no se usa a no ser que sea realmente necesario, pues ralentiza el mostrado de la página web.
El único método realmente importante del objeto Response es Write.
Request
El objeto Request se utiliza para recoger los parámetros de entrada del script, es decir, los datos de los formularios o las variables pasadas mediante la interrogación en la URL. No tiene métodos ni propiedades dignas de mención, sino sólo tres colecciones muy importantes: Form, QueryString y ServerVariables.
Colección Request.Form
Mantiene la colección de parámetros pasados al script mediante el método POST, que es el usado preferentemente en los formularios, de ahí su nombre. Request.Form nos devuelve siempre la colección de parámetros. Por tanto, la expresión admite la sintaxis de las colecciones de Visual Basic, es decir:
-
Request.Form(«Param») nos da el valor del parámetro de nombre Param siempre y cuando exista un único valor para dicho parámetro. Por ejemplo, nos daría el texto introducido en un control de formulario cuyo código HTML podría ser del estilo a
.
- Request.Form(3) nos da el valor del tercer elemento de la colección, es decir, el valor del tercer control del formulario.
-
Request.Form.Count nos da el número de parámetros pasados en el formulario.Como existe la posibilidad de parámetros multivaluados, como una lista de selección múltiple, la expresión
Request.Form('Param')
puede ser a su vez una colección: la colección de valores del parámetro.Por ejemplo, si en nuestro formulario tenemos una lista de selección múltiple, cuyo nombre sea Lista, la expresión
Request.Form('Lista')[2]
nos daría el segundo elemento seleccionado de la lista, y
Request.Form('Lista').Count
nos daría el número de elementos que ha seleccionado el usuario.
Su valor será 1 si se trata de un parámetro monovaluado y 0 si es un parámetro no definido en el formulario.
También es posible iterar sobre las colecciones anteriores mediante bucles For each. El siguiente ejemplo nos muestra todos los parámetros pasados al script y sus valores:
<% For each param In Request.Form Response.Write ('<p>') Response.Write('El parámetro ' & param & ' toma el valor ' & Request.Form(param) ) Response.Write('</p>') Next %>
Colección Request.QueryString
Mantiene la colección de parámetros pasados al script mediante el método GET, que es el utilizado cuando se escribe la URL seguida del símbolo ? y de los parámetros con sus valores.
Por ejemplo:
Invoca el script pasando las variables nombre (valor = Pepe) y apellido (valor = Gotera).
El símbolo & se utiliza como separador entre los distintos parámetros.
Aunque no es lo habitual, también los formularios pueden utilizar el método GET. Para ello basta con ponerlo en la marca