Objeto Sesión de ASP
- Página anterior Cookies de ASP
- Página siguiente Aplicación de ASP
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。
Session 对象
当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。
ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。
El objeto Session se utiliza para almacenar información sobre el usuario o para cambiar la configuración de sesión de un usuario. Las variables almacenadas en el objeto Session contienen información de un solo usuario y están disponibles en todas las páginas de la aplicación. La información almacenada en el objeto Session generalmente incluye nombre, id y parámetros. El servidor crea una nueva sesión para cada usuario nuevo y revoca el objeto de sesión cuando la sesión expira.
¿Cuándo comienza la sesión?
La sesión comienza:
- Cuando un nuevo usuario solicita un archivo ASP y el archivo Global.asa llama al subprograma Session_OnStart;
- Cuando se almacena un valor en la variable de sesión;
- Cuando un usuario solicita un archivo ASP y Global.asa utiliza la etiqueta <object> para instanciar un objeto a través del alcance de la sesión;
¿Cuándo termina la sesión?
Si el usuario no realiza una solicitud o actualiza la página en la aplicación dentro del tiempo establecido, la sesión finalizará. El valor predeterminado es de 20 minutos.
Si desea ajustar el intervalo de tiempo de expiración a un valor más largo o más corto, puede configurar Timeout Atributo.
El siguiente ejemplo establece un intervalo de tiempo de expiración de 5 minutos:
<% Sesión.Timeout=5 %>
Para finalizar la sesión inmediatamente, puede usar Abandonar Método:
<% Sesión.Abandonar %>
Nota:El problema principal al usar session es determinar cuándo deben terminar. No sabemos si la última solicitud del usuario fue la última. Por lo tanto, no estamos seguros de cuánto tiempo debe "vivir" la sesión. Esperar demasiado tiempo a una sesión inactiva puede agotar los recursos del servidor. Sin embargo, si la sesión se elimina demasiado pronto, el usuario tendrá que comenzar de nuevo una y otra vez, porque el servidor ha eliminado toda la información. Es difícil encontrar el intervalo de tiempo de expiración adecuado.
Consejo:Si está utilizando variables de sesión, no almacene una gran cantidad de datos en ellas.
Almacenar y recuperar variables de sesión
La mayor ventaja del objeto Session es que se pueden almacenar variables en él para que las páginas web posteriores las lean, y su ámbito de aplicación es muy amplio.
El siguiente ejemplo asigna "Donald Duck" a la variable de sesión llamada username y "50" a la variable de sesión llamada age:
<% Session("nombre_de_usuario")="Donald Duck" Session("edad")=50 %>
Una vez que el valor se almacena en la variable de sesión, puede ser utilizado por cualquier página del programa ASP:
Bienvenido <%Response.Write(Session("nombre_de_usuario"))%>
El resultado devuelto por esta línea de código es: "Bienvenido Donald Duck".
También se pueden guardar parámetros de usuario en el objeto sesión y luego acceder a estos parámetros para determinar qué página se devuelve al usuario.
El siguiente ejemplo establece que si el usuario utiliza una resolución de pantalla baja, se devuelve la versión de texto de la página:
<%If Session("screenres")="low" Then%> Esta es la versión de texto de la página <%Else%> Esta es la versión multimedia de la página <%End If%>
Eliminar variable de sesión
La colección contents contiene todas las variables de sesión.
Se puede eliminar una variable de sesión mediante el método remove.
En el siguiente ejemplo, si el valor de la variable de sesión "edad" es menor de 18, elimine la variable de sesión "venta":
<% If Session.Contents("edad")<18 then Session.Contents.Remove("venta") End If %>
Si desea eliminar todas las variables de la sesión, utilice el método RemoveAll:
<% Session.Contents.RemoveAll() %>
Recorrer la colección contents
La colección contents contiene todas las variables de sesión. Puede recorrer la colección contents para ver las variables almacenadas:
<% Session("nombre_de_usuario")="Donald Duck" Session("edad")=50 dim i For Each i in Session.Contents Response.Write(i & "<br />") Next %>
Resultados:
nombre_de_usuario edad
Si necesita saber la cantidad de elementos en la colección contents, puede usar la propiedad count:
<% dim i dim j j=Session.Contents.Count Response.Write("Variables de sesión: " & j) For i=1 to j Response.Write(Session.Contents(i) & "<br />") Next %>
Resultados:
Variables de sesión: 2 Donald Duck 50
Recorrer la colección StaticObjects
Se puede recorrer la colección StaticObjects para ver los valores de todos los objetos almacenados en el objeto sesión:
<% dim i For Each i in Session.StaticObjects Response.Write(i & "<br />") Next %>
- Página anterior Cookies de ASP
- Página siguiente Aplicación de ASP