Home
Forum
Inserisci
   
Home
Home
Forum
Inserisci
 
 
_______________________________________________________________________________________________________________________________________________________________________
 
 
Tutorial
   
   
   
   
   
   
 
 PHP
 
   
 
 Swift 3D
 
   
   
     
 
Guide
 
   
   
   
   
     
 
Corsi
 
   
 
     
Contenuti Sponsorizzati
     
     
     
     
 
 
 
Siete qui: Home > Guide > Asp > Asp Base > Lezione 8
 
     
 
Asp: Asp Base: L'oggetto di sessione
 
     
 

Lezione 7 < Lezione 8 > Lezione 9

 

L'oggetto di sessione è usato per memorizzare informazioni, oppure cambiare le impostazioni per una sessione dell'utente. Le variabili immagazzinate nell'oggetto di sessione contengono informazioni riguardando un solo utente e sono disponibili per tutte le pagine di una sola applicazione.

 
L'oggetto di sessione
 
 
Quando state lavorando con un'applicazione, la aprite, fate alcuni cambiamenti ed dopo la chiudete. Tutto questo è più o meno come una sessione. Il computer sa chi siete. Sa quando iniziate l'applicazione e quando la chiudete. Ma su Internet c’è un problema: il web server non conosce chi siete e che cosa fate perché l'indirizzo del HTTP non si ricorda i dati.
L'Asp risolve questo problema generando un cookie unico per ogni utente. Il cookie è trasmesso al cliente e contiene le informazioni che identificano l'utente. Questa interfaccia è denominata l'oggetto di sessione.
L'oggetto di sessione è usato per memorizzare le informazioni, oppure per cambiare le impostazioni per una sessione dell'utente. Le variabili immagazzinate  dell'oggetto di sessione  contengono informazioni riguardando un sol utente e sono disponibili per tutte le pagine di una sola applicazione. Le informazioni comuni memorizzate nelle variabili di sessione sono "nome", "id" e "preferenze". Il server  genera un nuovo oggetto di sessione per ogni nuovo utente e distrugge l'oggetto di sessione quando la sessione termina.
 
Quando comincia una sessione?
 
Una sessione comincia quando:
1.
Un nuovo utente richiede un file Asp, e il file Global.asa include una procedura di Session_OnStart
2. Un valore è memorizzato in una variabile di sessione
3.
Un nuovo utente richiede un file Asp, e il file Global.asa usa il tag <object> per instanziare un oggetto con fine di una sessione
 
Quando si conclude una sessione?
 
Una sessione si conclude se un utente non ha chiesto o non ha rinfrescato "refresh" una pagina di un’applicazione per un periodo specificato. Per defult, questo è 20 minuti.
Se desiderate regolare un intervallo di chiusura di una sessione che è più corto o più lungo rispetto a quello di default, dovrete regolare la proprietà di Timout.
L'esempio sotto regola l'intervallo della chusura della sessione di 10 minuti:
<%
Session.Timeout = 10
%>
Per concludere immediatamente una sessione, potete usare il metodo di abbandono:
<%
Session.Abandon
%>
Nota: Il problema principale con le sessioni è quando dovrebbero concludersi. Non sappiamo se l'ultima richiesta dell'utente fosse quella finale oppure no. Così non sappiamo quanto tempo dovremmo mantenere la sessione "viva". Aspettando troppo allungo per una sessione idle esaurisce le risorse sul server, ma se la sessione sarà cancellata troppo presto l'utente deve cominciare da capo perché il server del sito ha cancellato tutte le informazioni. L'individuazione dell'intervallo giusto di chiusura quindi può essere difficile!
 
Immagazinare e ritrovare le variabili di sessione
 
La cosa più importante riguardando l'oggetto di sessione è che potete immagazzinare le variabili in esso.
L'esempio qui sotto darà  alla variabile di sessione "username"  il valore"Mario Rossi" ed alla variabile di Sessione "eta" il valore "20":
<%
Session("username") = "Mario Rossi"
Session("eta") = 20
%>
Quando il valore è memorizzato in una variabile di sessione può essere raggiunto da qualsiasi pagina nell'applicazione Asp:
Welcome <%Response.Write(Session("username"))%>
Il risultato sarà: "Benvenuto Mario Rossi".
Potete anche immagazzinare le preferenze dell'utente nell'oggetto di sessione ed dopo accedere a quella preferenza per scegliere che pagina  rinviare all'utente.
L'esempio sotto specifica una versione di testo solamente della pagina se l'utente ha una risoluzione bassa dello schermo:
<%If Session("screenres")="low" then%>
Questa è la versione testo della pagina
<%else%>
Questa è la versione multimedia della pagina
<%end If%>
Rimuovere le variabili di sessione
 
Il Contenuto delle Collezioni "Content collection"  contiene tutte le variabili di sessione.
È possibile rimuovere una variabile di sessione con il metodo di rimozione.
L'esempio sotto rimuove la variabile di sessione "vendita" se il valore della variabile di sessione  “eta” è più basso di 18:
<%
If Session.Contents("eta")<18 then
Session.Contents.Remove("vendita")
End If
%>
Per rimuovere tutte le variabili in una sessione, utilizzate il metodo RemoveAll:
<%
Session.Contents.RemoveAll()
%>
 
Loop (ciclo)  attraverso il Contenuto delle Collezioni (Contents Collection)
 
Il Content Collection contiene tutte le variabili di sessione. Potete realizzare il loop nel Content collection, per vedere che cosa è immagazzinato in esso:
<%
Session("username")="Mario Rossi"
Session("eta")=20
dim x
For Each x in Session.Contents
Response.Write(x &"<br />")
Next
%>
Risultato:
username
eta
Se non conoscete il numero delle variabili nel Contents collection, potete usare la proprietà Conteggio:
<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Variabili di sessione : " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br />")
Next
%>
Risultato:
Variabili di Sessione: 2
Mario Rossi
20
 
Loop nella Collezione di StaticObjects
 
Potete realizzare il loop attraverso la collezione di StaticObjects, per vedere i valori di tutti gli oggetti memorizzati nell'oggetto di sessione:
<%
dim x
For Each x in Session.StaticObjects
Response.Write(x &"<br />")
Next
%>
 
 
Lezione 7 < Lezione 8 > Lezione 9