Este artículo presenta principalmente la información relevante sobre la aplicación y la sesión de objetos ASP.
En el artículo anterior, el autor introdujo en detalle cómo usar la respuesta de objeto ASP incorporada en este artículo, el autor continuará presentando a otros dos otros objetos ASP muy prácticos e importantes.
Además de los objetos utilizados para enviar, recibir y procesar datos, también hay algunos objetos muy prácticos que representan aplicaciones de servidor activas e información individual del usuario en ASP.
Primero echemos un vistazo al objeto de aplicación. Todos los archivos .asp en el mismo directorio virtual y sus subdirectorios constituyen la aplicación ASP. En lugar de usar objetos de aplicación, podemos compartir información entre todos los usuarios de una aplicación determinada y guardar datos de manera persistente durante la operación del servidor. Además, el objeto de aplicación también tiene métodos para controlar el acceso a datos y eventos de nivel de aplicación que pueden usarse para activar un proceso cuando una aplicación comienza y se detiene.
Aprendamos sobre los objetos de aplicación juntos.
1. Atributos
Aunque el objeto de aplicación no tiene propiedades incorporadas, podemos establecer propiedades definidas por el usuario utilizando la siguiente sintaxis, que también se puede llamar colecciones.
Aplicación (Nombre de propiedad/colección) = Valor
Podemos declarar y crear propiedades del objeto de aplicación utilizando el siguiente script.
- <%
- Aplicación (myvar) = hola
- SetApplication (myobj) = server.createObject (myComponent)
- %>
Una vez que asignamos las propiedades del objeto de aplicación, persiste hasta que el servicio del servidor web se apaga para que la aplicación se detenga. Dado que los valores almacenados en el objeto de aplicación pueden ser leídos por todos los usuarios de la aplicación, las propiedades del objeto de aplicación son particularmente adecuadas para transmitir información entre los usuarios de la aplicación.
2. Método
Los objetos de aplicación tienen dos métodos, que se utilizan para manejar múltiples usuarios que escriben datos almacenados en la aplicación
1. El método de bloqueo prohíbe a otros clientes modificar las propiedades del objeto de aplicación.
El método de bloqueo evita que otros clientes modifiquen variables almacenadas en objetos de aplicación para garantizar que solo un cliente pueda modificar y acceder a las variables de aplicación al mismo tiempo. Si el usuario no llama explícitamente el método de desbloqueo, el servidor desbloqueará el objeto de aplicación después de que termine el archivo .asp finalice o se agote.
Echemos un vistazo al siguiente programa que utiliza la aplicación para registrar el número de accesos de página:
< %
Dim numVisitSnumVisits = 0
Application.LockApplication (Numvisits) = Application (Numvisits) + 1
Aplicación
%>
Bienvenido a esta página, usted es el visitante < %= Aplicación (Numvisits) %> ¡Visitante en esta página!
Guarde el script anterior en su archivo .asp y agregue un contador a su página fácilmente.
2. Al contrario del método de bloqueo, el método de desbloqueo permite a otros clientes modificar las propiedades del objeto de aplicación.
En el ejemplo anterior, en el ejemplo anterior, el método de desbloqueo desbloquea el objeto para que el próximo cliente pueda aumentar el valor de las numevisidades.
III.
1. Application_onStart
El evento Application_onStart ocurre antes de la primera creación de una nueva sesión (es decir, el evento Session_onStart). El evento Application_onStart se activa cuando el servidor web comienza y permite solicitudes a archivos contenidos en la aplicación. El procesamiento del evento Application_onStart debe escribirse en el archivo global.ASA.
La sintaxis del evento Application_onStart es la siguiente:
- <ScriptLanguage = scriptLanguagerunat = servidor>
- Subapplicio_onstart ...
- Endsub
- </script>
2. Application_onend
El evento Application_onend ocurre después del evento Session_onend cuando la aplicación sale.
Echemos un vistazo a las cosas a las que debe prestar atención al usar objetos de aplicación.
Los objetos incorporados ASP no se pueden almacenar en objetos de aplicación. Por ejemplo, cada línea a continuación devuelve un error.
- <%
- SetApplication (var1) = sesión
- SetApplication (VAR2) = solicitud
- SetApplication (var3) = respuesta
- SetApplication (var4) = servidor
- SetApplication (var5) = aplicación
- SetApplication (var6) = objectContext
- %>
Si almacena una matriz en un objeto de aplicación, no cambie los elementos almacenados en la matriz directamente. Por ejemplo, el siguiente script no puede ejecutarse.
< % Aplicación (StoredRarray) (3) = nuevo valor %>
Esto se debe a que el objeto de aplicación se implementa como una colección. Elemento de matriz almacenado (3) No se obtuvo una nueva asignación. Este valor se incluirá en la recopilación de objetos de la aplicación y sobrescribirá cualquier información almacenada previamente en esta ubicación. Se recomienda que obtenga una copia de la matriz antes de recuperar o cambiar los objetos en la matriz al almacenar la matriz en el objeto de aplicación. Cuando opere en una matriz, debe almacenar todas las matrices en el objeto de aplicación para que se almacenen los cambios que realice. El siguiente script demuestra esto.
--- ASP8A.ASP ---
- <%
- DimmyArray ()
- RedimmyArray (5)
- MyArray (0) = hola
- MyArray (1) = SomeTherstring
- Application.lock
- Aplicación (StoredArray) = myArray
- Aplicación
- Respuesta.Redirectasp8b.asp
- %>
--- asp8b.asp ---
- <%
- LocalArray = aplicación (StoredArray)
- LocalArray (1) = allí
- Response.WriteLocalArray (0) y LocalArray (1)
- Application.lock
- Aplicación (StoredArray) = LocalArray
- Aplicación
- %>
Otro objeto incorporado ASP muy práctico que tiene funciones similares a los objetos de aplicación es la sesión. Podemos usar el objeto de sesión para almacenar la información necesaria para una sesión de usuario específica. Cuando el usuario salta entre páginas de la aplicación, las variables almacenadas en el objeto de sesión no se borra, y estas variables siempre existen cuando el usuario accede a la página en la aplicación. Cuando un usuario solicita una página web de la aplicación, si el usuario no ha tenido una sesión, el servidor web creará automáticamente un objeto de sesión. Cuando la sesión expira o se abandona, el servidor termina la sesión.
Los objetos de sesión en el servidor se pueden administrar enviando cookies únicas al programa del cliente. Cuando un usuario solicita una página en la aplicación ASP por primera vez, el ASP verifica la información del encabezado HTTP para ver si hay una cookie llamada AspSessionID en el mensaje. Valor para la sesión, y envíe este valor al cliente como el valor de la nueva cookie ASPSIONID. La función más común de un objeto de sesión es almacenar las preferencias del usuario. Por ejemplo, si el usuario indica que no le gusta ver los gráficos, puede almacenar la información en un objeto de sesión. Además, a menudo se usa en programas que identifican a los clientes. Cabe señalar que el estado de la sesión solo se conserva en los navegadores que admiten cookies, y si el cliente apaga la opción de cookie, la sesión no funcionará.
1. Atributos
1. SessionID
La propiedad SessionID devuelve la identidad de la sesión del usuario. Al crear una sesión, el servidor genera una identidad separada para cada sesión. El identificador de la sesión se devuelve como el tipo de datos alargado. En muchos casos, SessionID se puede utilizar para estadísticas de registro de la página web.
2. Tiempo de espera
La propiedad de tiempo de espera especifica un límite de tiempo de tiempo de espera para el objeto de sesión de la aplicación en minutos. Si el usuario no actualiza ni solicita una página web dentro de este período de tiempo de espera, la sesión finalizará.
2. Método
Solo hay un método para un objeto de sesión, que es abandonado. Si no llama explícitamente el método de abandono, el servidor eliminará estos objetos una vez que la sesión se agotara. Cuando el servidor ha terminado de procesar la página actual, el siguiente ejemplo libera el estado de la sesión.
< %Session.abandon %>
III.
El objeto de sesión tiene dos eventos que se pueden usar cuando se inicia el objeto de sesión y se lanza.
1. El evento Session_onStart ocurre cuando el servidor crea una nueva sesión. El servidor procesa el script antes de ejecutar la página solicitada. El evento Session_OnStart es el mejor momento para establecer variables de sesión, porque se establecen antes de acceder a cualquier página.
Aunque el objeto de sesión permanece cuando el evento session_onstart contiene una llamada de método de redirección o final, el servidor deja de procesar el archivo global.asa y desencadena el script en el archivo que activa el evento session_onstart.
Para asegurarse de que el usuario siempre inicie una sesión al abrir una página web específica, se puede llamar al método de redirección en el evento Session_onStart. Cuando el usuario ingresa a la aplicación, el servidor crea una sesión para el usuario y procesa el script de evento session_onstart. Puede incluir el script en este evento para verificar si la página abierta por el usuario es una página de inicio y, si no, instruya al usuario que llame al método respuesta. Redirect para iniciar la página web. El procedimiento es el siguiente:
- <Scriptrunat = serverlanguage = vBscript>
- Subsession_onstart
- startpage =/myapp/starthere.asp
- currentPage = request.ServerVariAbles (script_name)
- ifstrcomp (currentPage, startPage, 1) entonces
- Respuesta.Redirect (Page de inicio)
- endif
- Endsub
- </script>
Los programas anteriores solo pueden ejecutarse en navegadores que admiten cookies. Debido a que los navegadores que no admiten cookies no pueden devolver las cookies de SessionID, el servidor crea una nueva sesión cada vez que un usuario solicita una página web. De esta manera, para cada servidor solicitante, se procesará el script session_onstart y el usuario se redirigirá a la página de inicio.
2. El evento Session_onend ocurre o se agota durante la sesión.
Las cosas a tener en cuenta sobre el uso de objetos de sesión.
La sesión se puede iniciar de las siguientes tres maneras:
1. Un nuevo usuario solicita acceso a una URL que identifica el archivo .asp en una aplicación, y el archivo global.asa de la aplicación contiene el proceso session_onstart.
2. El usuario almacena un valor en el objeto de sesión.
3. El usuario solicitó el archivo .asp de la aplicación, y el archivo global.asa de la aplicación utiliza la etiqueta <S Object> para crear una instancia de un objeto con un alcance de sesión.
Si el usuario no solicita ni actualiza ninguna página en la aplicación dentro del tiempo especificado, la sesión finalizará automáticamente. El valor predeterminado para este período es de 20 minutos. Puede cambiar la configuración de límite de tiempo de espera predeterminada para una aplicación configurando la propiedad de tiempo de espera de sesión en la página de propiedades de opciones de solicitud en el administrador de servicios de Internet. Este valor debe establecerse de acuerdo con los requisitos de su aplicación web y el espacio de memoria del servidor. Por ejemplo, si desea que los usuarios que deseen navegar por su aplicación web permanezcan en cada página por solo unos minutos, debe acortar el valor de tiempo de espera predeterminado para su sesión. Un valor de tiempo de espera de sesión demasiado largo causará demasiadas sesiones abiertas y agotará los recursos de memoria de su servidor. Para una sesión específica, si desea establecer un valor de tiempo de espera que sea menor que el valor de tiempo de espera predeterminado, puede establecer la propiedad de tiempo de espera del objeto de sesión. Por ejemplo, el siguiente script establece el valor de tiempo de espera en 5 minutos.
< %Session.timeout = 5 %>
Por supuesto, también puede establecer un valor de tiempo de espera mayor que la configuración predeterminada. También puede finalizar explícitamente una sesión a través del método de abandono del objeto de sesión. Por ejemplo, proporcione un botón de salida en la tabla, configurando el parámetro de acción del botón en la URL del archivo .asp que contiene los siguientes comandos.
< %Session.abandon %>
Hoy, hemos aprendido dos objetos incorporados que a menudo usan ASP en las páginas web, especialmente en BBS o chat basados en la web. .
Lo anterior se trata de este artículo.