Oggetto Session ASP
- Pagina precedente Cookies ASP
- Pagina successiva Applicazione ASP
Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。
Session 对象
当您操作某个应用程序时,您打开它,做些改变,然后将它关闭。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。但是在因特网上有一个问题:由于 HTTP 地址无法存留状态,web 服务器并不知道您是谁以及您做了什么。
ASP 通过为每位用户创建一个唯一的 cookie 的方式解决了这个问题。cookie 被传送至客户端,它含有可识别用户的信息。这种接口被称作 Session 对象。
L'oggetto Sessione viene utilizzato per memorizzare informazioni riguardanti l'utente o per modificare le impostazioni di sessione per un utente. Le variabili memorizzate nell'oggetto Sessione contengono informazioni su un singolo utente e sono disponibili su tutte le pagine dell'applicazione. Le informazioni memorizzate nell'oggetto Sessione sono di solito nome, id e parametri. Il server crea una nuova Sessione per ogni nuovo utente e revoca l'oggetto Sessione quando la sessione scade.
Quando inizia la sessione?
La sessione inizia:
- Quando un nuovo utente richiede un file ASP e il file Global.asa chiama la sottoprogramma Session_OnStart;
- Quando un valore viene memorizzato nella variabile di sessione;
- Quando un utente richiede un file ASP e Global.asa utilizza il tag <object> per esempio un oggetto tramite lo scope di sessione;
Quando la sessione termina?
Se l'utente non richiede o aggiorna la pagina nell'applicazione entro un determinato periodo di tempo, la sessione si conclude. Il valore predefinito è 20 minuti.
Se desideri impostare un intervallo di timeout più lungo o più corto, puoi impostare Timeout Proprietà.
Esempio seguente imposta un intervallo di timeout di 5 minuti:
<% Sessione.Timeout=5 %>
Per terminare immediatamente la sessione, utilizzare Abbandona Metodo:
<% Sessione.Abbandona %>
Attenzione:Il problema principale dell'uso della sessione è capire quando dovrebbe finire. Non possiamo sapere se la richiesta recente dell'utente è stata laultima richiesta. Pertanto, non sappiamo per quanto tempo dovrebbe sopravvivere la sessione. Attendere troppo a lungo per una sessione inattiva può esaurire le risorse del server. Tuttavia, se la sessione viene eliminata troppo presto, l'utente deve iniziare di nuovo più volte, poiché il server ha eliminato tutte le informazioni. Trovare un intervallo di timeout appropriato è difficile.
Suggerimento:Se stai utilizzando le variabili di sessione, non conservare troppi dati al loro interno.
Memorizzazione e recupero delle variabili di sessione
Il maggior vantaggio dell'oggetto Sessione è la possibilità di memorizzare variabili che possono essere lette nelle pagine successive, la cui applicazione è molto ampia.
Esempio seguente assegna "Donald Duck" alla variabile di sessione chiamata username e assegna "50" alla variabile di sessione chiamata age:
<% Session("nomeutente")="Papero Donald" Session("età")=50 %>
Una volta che un valore è stato salvato nella variabile di sessione, può essere utilizzato da qualsiasi pagina dell'applicazione ASP:
Benvenuto <%Response.Write(Session("nomeutente"))%>
Il risultato restituito da questa riga di codice è: "Benvenuto Donald Duck".
È anche possibile salvare i parametri utente nell'oggetto sessione e poi accedere a questi parametri per determinare quale pagina restituire all'utente.
Nell'esempio seguente, se l'utente utilizza una risoluzione di schermo bassa, viene restituita la versione testuale della pagina:
<%Se Session("screenres")="low" allora%> Questa è la versione testuale della pagina <%Altrimenti%> Questa è la versione multimediana della pagina <%Fine If%>
Rimuovere variabile di sessione
La raccolta contents contiene tutte le variabili di sessione.
È possibile rimuovere le variabili di sessione utilizzando il metodo remove.
Nell'esempio seguente, se il valore della variabile di sessione "età" è inferiore a 18, rimuovere la variabile di sessione "sale":
<% Se Session.Contents("età")<18 allora Session.Contents.Remove("sale") Fine If %>
Se si desidera rimuovere tutte le variabili dalla sessione, utilizzare il metodo RemoveAll:
<% Session.Contents.RemoveAll() %>
Esplorare la raccolta contents
La raccolta contents contiene tutte le variabili di sessione. È possibile esplorare la raccolta contents per visualizzare le variabili memorizzate:
<% Session("nomeutente")="Papero Donald" Session("età")=50 dim i Per ognuno i in Session.Contents Response.Write(i & "<br />") Next %>
Risultato:
nomeutente età
Se si desidera conoscere il numero di elementi nella raccolta contents, si può utilizzare l'attributo count:
<% dim i dim j j=Count di Session.Contents Response.Write("Variabili di sessione: " & j) Per i=1 a j Response.Write(Session.Contents(i) & "<br />") Next %>
Risultato:
Variabili di sessione: 2 Papero Donald 50
Eseguire la scansione della raccolta StaticObjects
È possibile esaminare i valori di tutti gli oggetti memorizzati nell'oggetto sessione utilizzando il ciclo della raccolta StaticObjects:
<% dim i Per ognuno i in Session.StaticObjects Response.Write(i & "<br />") Next %>
- Pagina precedente Cookies ASP
- Pagina successiva Applicazione ASP