O objeto Session Object é usado para armazenar informações
ou mudar a configuração da sessão de um usuário.
Variáveis armazenadas no Session Object guardam informações
de um único usuário, e estão disponíveis
para todas as páginas da aplicação. As informações
mais comuns armazenadas nas variáveis da sessão são
o nome do usuário, identificação e preferências.
O server cria novos Session objects para novos usuários,
e destrói os Session objects quando a sessão
termina.
Uma sessão é iniciada quando:
- Um novo usuário requer um arquivo .asp de uma aplicação,
e o arquivo Global.asa tem uma procedure Session_OnStart.
- Um usuário armazena um valor no Session Object
- O server recebe uma requisição que não
contém um cookie SessionID válido.
- Um usuário requer um arquivo .asp de uma aplicação,
e o arquivo Global.asa usa a tag <object> para instanciar
um objeto com abrangência para toda sessão.
Uma sessão é encerrada se o usuário não
requer uma página em uma aplicação por um
determinado período de tempo. Este valor é de 20
minutos de inatividade por definição.
Se você quiser modificar este tempo de inatividade ( inactive
timeout), você poderá atribuir um novo valor para
a propriedade "Timeout". O exemplo abaixo atribui o intervalo
de 5 minutos de inatividade para encerrar a sessão.
Para terminar uma sessão você poderá usar também
o método "Abandon".
| Armazenar e Recuperar
Valores de Variáveis |
Você poderá armazenar valores para variáveis
na Session Object, desta forma:
<%
Session("username"="João")
Session("idade"=24)
%>
|
Você poderá recuperar os valores das variáveis
da Session Object, desta forma:
Bem vindo <%Response.Write(Session("username"))%>
|
A linha acima retorna: "Bem vindo João".
Você poderá armazenar as preferências do usuário
na Session Object, e então acessar estas preferências
para decidir qual página será retornada para o usuário.
O exemplo abaixo especifica uma versão da página
só com textos para o usuário que tem um monitor de
baixa resolução:
<%
If Session("screenres"="low") Then
%>
Esta é a página na versão texto
<%Else%>
Esta é a página na versão multimidia
<%End If%>
|
| Remover o Valor das Variáveis |
O Contents collection tem tudo das variáveis que
foram armazenadas numa sessão. Usando o método Remove,
você poderá remover uma variável da sessão.
O exemplo abaixo remove um item da sessão, neste caso a
variável "vendas":
<%
If Session.Contents("idade"<=18) then
Session.Contents.Remove("vendas")
End If
%>
|
Você poderá também usar o método RemoveAll
para remover todas as variáveis numa sessão:
<%
Session.Contents.RemoveAll()
%>
|
| Verificando o Contents
collection |
Você poderá executar um comando de repetição
( ex: For... Next ) para pesquisar o Contents collection
e ver o que está armazenado nele.
<%
dim i
For Each i in Session.Contents
Response.Write(Session.Contents(i) & "<br>")
Next
%>
|
Resultado:
Se você não sabe quantos itens estão armazenados
num Contents collection, você poderá usar a
propriedade "Count".
<%
dim i
dim j
j=Session.Contents.Count
For i=1 to j
Response.Write(Session.Contents(i) & "<br>")
Next
%>
|
Resultado:
| Verificando o StaticObjects |
Você poderá executar um comando de repetição
para pesquisar o StaticObjects e ver os valores de todos
os objetos armazenados no Session Object:
<%
dim i
For Each i in Session.StaticObjects
Response.Write(Session.StaticObjects(i) & "<br>")
Next
%>
|