Inicio /
Objeto Request en ASP

 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 <input type=text name="Param">.
  • 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:

http://www.cocinatusrecetas.com/message.asp?MessageID=58086&pagina=1&idTema=58086

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 <FORM> de la página web:

<FORM method=GET action = "MiForm.asp">

En este caso, los parámetros del formulario los obtendríamos en Request.QueryString en lugar de en Request.Form.

Colección Request.ServerVariables

Mantiene la colección de las variables de entorno del servidor web. Entre las mismas, podemos encontrar valores muy interesantes conocidos por el servidor web, como la dirección IP del usuario que está viendo las páginas, el login y contraseña si estamos en un directorio de acceso restringido, el nombre del dominio, el nombre del script, etc.

Estas son algunas de las variables de servidor:

VARIABLE
DESCRIPCIÓN
.ALL_HTTPTodas las cabeceras HTTP enviadas por el cliente.
AUTH_PASSWORDLa contraseña del cliente.
AUTH_USERNombre de usuario autentificado en bruto (raw).
CERT_COOKIEID de usuario único para el certificado del cliente, devuelto como cadena de caracteres. Puede ser usado como firma para el certificado al completo.
CERT_FLAGSEl bit0 es puesto a 1 si está presente el certificado del cliente. El bit1 es puesto a 1 si la autoridad de certificados del certificado del cliente es inválida (no está en la lista de las reconocidas en el servidor).
CERT_ISSUERCampo del suministrador del certificado de cliente (O=MS, OU=IAS, CN=user name, C=USA).
CERT_KEYSIZENúmero de bits de la clave SSL. Por ejemplo, 128.
CERT_SECRETKEYSIZENúmero de bits en la clave secreta del certificado del servidor. Por ejemplo, 1024.
CERT_SERIALNUMBERCampo del número de serie del certificado del cliente.
CERT_SERVER_ISSUERCampo para el suministrador del certificado del servidor.
CERT_SERVER_SUBJECTCampo del sujeto del certificado del servidor.
CERT_SUBJECTCampo del sujeto del certificado del cliente.
CONTENT_LENGTHLa longitud del contenido tal como es suministrado por el cliente.
CONTENT_TYPEEl tipo de datos del contenido. Se usa con solicitudes que adjuntan información, como las solicitudes de http GET, POST, y PUT.
GATEWAY_INTERFACELa revisión de la especificación CGI usada por el servidor. El formato es CGI/revision.
HTTP_<HeaderName>El valor almacenado en la cabecera o header llamada HeaderName. Cualquier header distinto de los incluidos en esta tabla debe ser prefijado por HTTP_ para que la colección de ServerVariables pueda recuperar su valor. Tenga en cuenta que el servidor interpreta cualquier carácter con guión bajo (_) en HeaderName como guiones normales en el header. Por ejemplo, si escribe HTTP_MY_HEADER, el servidor busca por un header enviado como MY-HEADER.
HTTPSDevuelve una activación ON si la petición vino a través de un canal seguro (SSL), o devuelve una desactivación OFF si la petición es a través de un canal no seguro.
HTTPS_KEYSIZEClave de tamaño en bits de una conexión Secure Sockets Layer. Por ejemplo, 128.
HTTPS_SECRETKEYSIZENúmero de bits en una clave privada de certificado del servidor seguro. Por ejemplo, 1024.
HTTPS_SERVER_ISSUERCampo para el suministrador del certificado del servidor seguro.
HTTPS_SERVER_SUBJECTCampo del sujeto del certificado del servidor
INSTANCE_IDLa ID para la instancia IIS en el modo texto. Si la instancia ID es 1, aparece como una cadena. Puede usar esta variable para recuperar la ID de la instancia del servidor web (en la base de datos) al cual corresponde la petición.
INSTANCE_META_PATHLa ruta de la metabase para la instancia del IIS que responde a la petición.
LOCAL_ADDRDevuelve la dirección del servidor en la que entró la petición. Esto es importante en el caso de las máquinas multi-homed, donde puede haber múltiples direcciones IP enlazadas a una máquina, y puede interesar conocer cuál es la dirección usada por la petición.
LOGON_USERNombre de usuario de la cuenta de Windows.
PATH_INFOInformación sobre una ruta extra tal como es ofrecida por el cliente. Usted puede acceder a scripts usando su ruta virtual y la variable de servidor PATH_INFO. Si esta información proviene de una URL, es decodificada por el servidor antes de que sea pasada al script CGI.
PATH_TRANSLATEDVersión traducida de PATH_INFO que toma la ruta y configura cualquier estructura necesaria de relación virtual-física.
QUERY_STRINGPetición de información almacenada en la cadena siguiendo al signo de interrogación (?) en la solicitud http.
REMOTE_ADDRLa dirección IP del host remoto que hace la consulta.
REMOTE_HOSTEl nombre del host que hace la consulta. Si el servidor no tiene esta información, utilizará REMOTE_ADDR y dejará esta variable vacía.
REMOTE_USERCadena de nombre de usuario no localizada, introducida por el usuario. Este es el nombre que es realmente enviado por el usuario, distinto de aquellos que son modificados por cualquier filtro de autentificación instalado en el servidor.
REQUEST_METHODMétodo usado para realizar la consulta. Para HTTP, éste es GET, HEAD, POST, etc.
SCRIPT_NAMEUna ruta virtual al script que está siendo ejecutado. Es usado para autoreferenciar direcciones URL.
SERVER_NAMEEl nombre, alias DNS, o dirección IP del servidor, tal como aparecería en la autoreferencia de direcciones URL.
SERVER_PORTEl número de puerto al que fue enviada la petición.
SERVER_PORT_SECUREUna cadena que contiene 0 ó 1. Si la petición está siendo manejada a través de un puerto seguro, entonces la cadena será 1. De otro modo, será 0.
SERVER_PROTOCOLEl nombre y revisión del protocolo de peticiones de información. El formato es protocol/revision.
SERVER_SOFTWAREEl nombre y versión del software del servidor que responde las peticiones. El formato es name/version.
URLProporciona la porción básica de la URL.

Ejemplo:

<h3> Usted está viendo el dominio <%= Request.ServerVariables("SERVER_NAME") %> </h3>


admin @ 15:46 | comentarios (44) | Links Permanentes


Objeto Response en ASP

 Response

Este objeto se utiliza para tratar la salida del script, es decir, lo que verá el usuario en su navegador.

Los métodos mas importantes del objeto response son los siguientes:

  • 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 (http://www.cocinatusrecetas.com) %>

    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 más importante del objeto Response es Write.


admin @ 15:03 | comentarios (2) | Links Permanentes


Manejo de cadenas de caracteres

Existen bastantes funciones para el manejo de cadenas, a continuación explicaremos las más usadas.

  • len(cadena). Nos devuelve el número de carácteres de una cadena.
  • split(cadena,separador). Divide una cadena en varias usando un carácter separador.
  • mid(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud longitud.
  • trim(cadena). Elimina los espacios en blanco iniciales y finales de una cadena.
  • instr(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que se encuentra.
  • replace(texto, cadena1, cadena2). Reemplaza la cadena1 por la cadena2 en el texto.
  • left(cadena, num). Devuelve los num caracteres de cadena empezando por la izquierda.
  • LCase(texto). Esta función covierte el texto pasado a minúsculas
  • UCase(texto). Convierte el texto pasado a mayúsculas.


Ejemplo:






<%
Dim palabras,i

'Ejemplo del uso de la función que nos devuelve la longitud de la cadena
Response.Write(len("12345") & "
")

' Uso de Split, nos devuelve un array con las cadenas separadas por espacios, es decir en este caso se corresponde con las palabras
i=0
palabras=split("Esto es una prueba"," ")

Response.Write(palabras(0)&"
")
Response.Write(palabras(1)&"
")
Response.Write(palabras(2)&"
")
Response.Write(palabras(3)&"

")


' Función para devolver una subcadena de otra
Response.Write(mid("Devuelve una subcadena de otra",9,3) & "

")

' Función que elimina los espacios en blanco iniciales y finales
if trim(" Cadena ") = "Cadena" then
Response.Write("Iguales

")
end if

' Ejemplo de búsqueda de un texto dentro de una cadena de caracteres
Response.Write(instr("Busca la palabra dentro de la frase", "palabra") & "

")

' Función que remplaza una cadena por otra
Response.Write(replace("Un pez de color verde, como verde es la hierba.","verde","rojo") & "
")

%>










admin @ 14:52 | comentarios (0) | Links Permanentes



<< November 2005 >>
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30  

archivos

November - 2013
October - 2013
July - 2013
June - 2013
May - 2013
April - 2013
March - 2013
February - 2013
November - 2010
October - 2010
September - 2010
August - 2010
June - 2010
November - 2009
October - 2009
September - 2009
March - 2009
February - 2009
January - 2009
September - 2008
May - 2008
April - 2008
November - 2007
October - 2007
May - 2007
April - 2007
March - 2007
February - 2007
January - 2007
December - 2006
September - 2006
August - 2006
June - 2006
May - 2006
April - 2006
February - 2006
January - 2006
December - 2005
November - 2005

powered by SimpleBlog 2.0

rss feed




Ir a Blog de Recetas de Cocina