Conforme foi constatado em nossa pesquisa ficou claro o interesse dos membros do forum em saber mais sobre global.asa (application/session), sendo assim estamos criando este tópico para debatermos o assunto.
Vou Iniciar com um tutorial sobre o assunto:
TUTORIAL APPLICATION/SESSION
APPLICATION
Ao conjunto de páginas ASP de um mesmo diretório virtual damos o nome de Aplicação ASP. Tal aplicação será iniciada na primeira vez que um usuário tentar acessar alguma página desse diretório virtual. Será finalizada quando o servidor web for desligado.
O objeto Application existe para nos possibilitar o armazenamento e recuperação de valores relacionadas a uma aplicação ASP. Com ele podemos criar variáveis de qualquer subtipo cujo valor pode ser acessado ou modificado por qualquer usuário conectado ao diretório virtual.
Para criar uma variável do nível de aplicação, devemos escrever comandos com seguinte sitaxe:
Uma vez criada, tal variável estará acessível a qualquer usuário da aplicação. Seu valor ficará armazenado até que o servidor web seja desligado.
Como o conteúdo desse tipo de variável pode ser modificado por qualquer usuário conectado à aplicação, poderia haver alguma confusão se vários usuários tentassem alterar esse valor ao mesmo tempo. Para evitar possíveis problemas com a “concorrência", o objeto application disponibiliza dois métodos: LOCK e UNLOCK.
O primeiro bloqueia as variáveis de nível de aplicação para o usuário que invoca tal método. Se qualquer outro “usuário” tentar acessar variáveis desse nível, ficará esperando até a aplicação ser desbloqueada.
A aplicação só será desbloqueada quando o script que a bloqueou termina sua execução, ou quando ocorre o “TimeOut”, ou quando o script invoca o método UNLOCK.
Ainda relacionado a esse objeto existem dois eventos:
Application_OnStart Ocorre quando a aplicação é iniciada, ou seja, quando um diretório virtual é acessado pela primeira vez.
Application_OnEnd Ocorre quando a aplicação é finalizada, ou seja, quando o web server é desligado.
Um evento é uma subrotina automaticamente chamada quando o sistema sofre alguma ação especifica. Tais subrotinas não são escritas diretamente nas páginas ASP mas num arquivo a parte nomeado de GLOBAL.ASA.
Sendo assim, quando um diretório virtual for acessado pela primeira vez, o Servidor Web procura em tal diretório a existência desse arquivo. Se encontra, abre o arquivo e procura a subrotina Application_OnStart para executar seus comandos. A mesma coisa acontece quando desligamos o servidor web, só que ele chama a subrotina Application_OnEnd.
No exemplo a seguir criamos uma variável de nível de aplicação chamada DataHoraI para armazenar a Data/Hora em que a aplicação foi iniciada. Outra variável chamada Titulo para armazenar o titulo da aplicação ASP. E uma variável chamada Correio que armazena o e-mail do Web Master:
Exemplo : Global.asa
<script LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart()
Application("DataHoraI")=Now
Application("Titulo")="Curso de ASP"
Application("Correio")="mailto:lineus@seduc.pi.gov.br"
End Sub
</SCRIPT>
Exemplo : Application1.asp
<% @LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE><%=Application("Titulo")%></TITLE></HEAD>
<BODY>
Essa aplicação ASP foi iniciada em <B><%=Application("DataHoraI")%></B><BR>
<A Href="<%=Application("Correio")%>">Web Master</a>
</BODY>
</HTML>
Obs : Só poderá existir um arquivo Global.asa em cada diretório virtual
Observe que o trabalho de manutenção do site pode ficar facilitado. Imagine que todas as páginas asp do seu diretório virtual possuem um padrão de cores, links, cabeçalho, etc. Sendo assim, as páginas teriam muito código em comum. Se desejarmos modificar os padrões do nosso site, teríamos que fazer alterações em todos os arquivos do diretório virtual. Mas se utilizarmos variáveis de nível de aplicação para armazenar essas configurações, não necessitamos mudar todos os arquivos do diretório, mas só o arquivo GLOBAL.ASA.
Exemplo : Global.asa
<script LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart()
Application("DataHoraI")=Now
Application("Titulo")="I Curso de ASP da UFPI"
Application("Correio")=mailto:lineulima@yahoo.com
Application("CorFundo")="Black"
Application("CorTexto")="Yellow"
Application("TamFonte")="4"
End Sub
</SCRIPT>
Exemplo : Application2.asp
<% @LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE>
<%=Application("Titulo")%>
</TITLE></HEAD>
<BASEFONT SIZE=<%=Application("TamFonte")%> COLOR=<%=Application("CorTexto")%>>
<BODY BGCOLOR=<%=Application("CorFundo")%>>
Essa aplicação ASP foi iniciada em <B><%=Application("DataHoraI")%></B><BR>
<A Href="<%=Application("Correio")%>">Web Master</a>
</BODY>
</HTML>
SESSION
Toda vez que um usuário Web se conecta a um aplicativo ASP é iniciada uma sessão para o mesmo no servidor Web. Para representar tal sessão, o ASP possui um objeto interno chamado Session.
Na verdade, ele é muito parecido com o objeto Application. A diferença esta em dizer que esse objeto pode armazenar valores ligados apenas a um único visitante do site(o dono da sessão). Com ele podemos criar variáveis de qualquer subtipo cujo valor pode ser acessado ou modificado somente pelo “dono” da sessão.
Para criar uma variável do nível de sessão, devemos escrever comandos com seguinte sitaxe:
Session(“NOME_DA_VARIAVEL”) = VALOR_DA_VARIAVEL
As variáveis de sessão permanecerão na memória(ativas) até a sessão ser encerrada. Isso pode acontecer quando o usuário fechar o web browser, quando ocorre o “TIMEOUT” da sessão, ou quando o script invoca o método ABANDON do objeto Session.
A propriedade TIMEOUT é usada quando o usuário fica parado sem fazer nada no Browser. O default é vinte minutos, mas esse valor pode ser modificado da seguinte forma:
Session.Timeout = VALOR_MINUTOS
Ainda relacionado a esse objeto existem dois eventos:
Session_OnStart Ocorre quando a sessão é iniciada
Session_OnEnd Ocorre quando a sessão é finalizada.
A exemplo dos eventos do objeto Application, eles também devem ser escritos como subrotinas de um arquivo GLOBAL.ASA.
O exemplo ilustra o conceito de sessão. Temos uma variável a nível de aplicação chamada contador. Ela serve para informar a quantidade de pessoas que acessaram essa aplicação ASP. A idéia é incrementar o valor dessa variável toda vez que uma sessão é iniciada. Também utilizamos uma variável de sessão que informa a hora em que a sessão em questão foi aberta.
Exemplo : Global.asa
<script LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Application_OnStart()
Application("DataHoraI")=Now
Application("Titulo")="I Curso de ASP da UFPI"
Application("Correio")=mailto:lineulima@yahoo.com
Application("CorFundo")="Black"
Application("CorTexto")="Yellow"
Application("TamFonte")="4"
Application("Contador")=0
End Sub
Sub Session_OnStart()
Application("Contador")=Application("Contador")+1
Session("HoraS")=Time
End Sub
</SCRIPT>
A página a seguir encerra a sessão através do método ABANDON:
Exemplo sessao1.asp
<% @LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE>
</TITLE></HEAD>
Essa sessão foi iniciada às <%=Session("HoraS")%><BR>
Você é o visitante de número <%=Session("Contador")%><BR>
Desde <%=Application("DataHoraI")%>
<HR>
<A HREF="sessao2.asp">Encerrar Sessão</A>
</BODY>
</HTML>
FONTE: Curso de ASP da UFPI escrito por LINEU ANTONIO DE LIMA SANTOS
Pergunta
cyberalexxx
Conforme foi constatado em nossa pesquisa ficou claro o interesse dos membros do forum em saber mais sobre global.asa (application/session), sendo assim estamos criando este tópico para debatermos o assunto.
Vou Iniciar com um tutorial sobre o assunto:
TUTORIAL APPLICATION/SESSION
APPLICATION
Ao conjunto de páginas ASP de um mesmo diretório virtual damos o nome de Aplicação ASP. Tal aplicação será iniciada na primeira vez que um usuário tentar acessar alguma página desse diretório virtual. Será finalizada quando o servidor web for desligado.
O objeto Application existe para nos possibilitar o armazenamento e recuperação de valores relacionadas a uma aplicação ASP. Com ele podemos criar variáveis de qualquer subtipo cujo valor pode ser acessado ou modificado por qualquer usuário conectado ao diretório virtual.
Para criar uma variável do nível de aplicação, devemos escrever comandos com seguinte sitaxe:
Application("NOME_DA_VARIAVEL") = VALOR_DA_VARIAVEL
Uma vez criada, tal variável estará acessível a qualquer usuário da aplicação. Seu valor ficará armazenado até que o servidor web seja desligado.
Como o conteúdo desse tipo de variável pode ser modificado por qualquer usuário conectado à aplicação, poderia haver alguma confusão se vários usuários tentassem alterar esse valor ao mesmo tempo. Para evitar possíveis problemas com a “concorrência", o objeto application disponibiliza dois métodos: LOCK e UNLOCK.
O primeiro bloqueia as variáveis de nível de aplicação para o usuário que invoca tal método. Se qualquer outro “usuário” tentar acessar variáveis desse nível, ficará esperando até a aplicação ser desbloqueada.
A aplicação só será desbloqueada quando o script que a bloqueou termina sua execução, ou quando ocorre o “TimeOut”, ou quando o script invoca o método UNLOCK.
Ainda relacionado a esse objeto existem dois eventos:
Application_OnStart Ocorre quando a aplicação é iniciada, ou seja, quando um diretório virtual é acessado pela primeira vez.
Application_OnEnd Ocorre quando a aplicação é finalizada, ou seja, quando o web server é desligado.
Um evento é uma subrotina automaticamente chamada quando o sistema sofre alguma ação especifica. Tais subrotinas não são escritas diretamente nas páginas ASP mas num arquivo a parte nomeado de GLOBAL.ASA.
Sendo assim, quando um diretório virtual for acessado pela primeira vez, o Servidor Web procura em tal diretório a existência desse arquivo. Se encontra, abre o arquivo e procura a subrotina Application_OnStart para executar seus comandos. A mesma coisa acontece quando desligamos o servidor web, só que ele chama a subrotina Application_OnEnd.
No exemplo a seguir criamos uma variável de nível de aplicação chamada DataHoraI para armazenar a Data/Hora em que a aplicação foi iniciada. Outra variável chamada Titulo para armazenar o titulo da aplicação ASP. E uma variável chamada Correio que armazena o e-mail do Web Master:
Exemplo : Global.asa
Exemplo : Application1.asp Obs : Só poderá existir um arquivo Global.asa em cada diretório virtual Observe que o trabalho de manutenção do site pode ficar facilitado. Imagine que todas as páginas asp do seu diretório virtual possuem um padrão de cores, links, cabeçalho, etc. Sendo assim, as páginas teriam muito código em comum. Se desejarmos modificar os padrões do nosso site, teríamos que fazer alterações em todos os arquivos do diretório virtual. Mas se utilizarmos variáveis de nível de aplicação para armazenar essas configurações, não necessitamos mudar todos os arquivos do diretório, mas só o arquivo GLOBAL.ASA. Exemplo : Global.asa Exemplo : Application2.asp SESSION Toda vez que um usuário Web se conecta a um aplicativo ASP é iniciada uma sessão para o mesmo no servidor Web. Para representar tal sessão, o ASP possui um objeto interno chamado Session. Na verdade, ele é muito parecido com o objeto Application. A diferença esta em dizer que esse objeto pode armazenar valores ligados apenas a um único visitante do site(o dono da sessão). Com ele podemos criar variáveis de qualquer subtipo cujo valor pode ser acessado ou modificado somente pelo “dono” da sessão. Para criar uma variável do nível de sessão, devemos escrever comandos com seguinte sitaxe: Session(“NOME_DA_VARIAVEL”) = VALOR_DA_VARIAVEL As variáveis de sessão permanecerão na memória(ativas) até a sessão ser encerrada. Isso pode acontecer quando o usuário fechar o web browser, quando ocorre o “TIMEOUT” da sessão, ou quando o script invoca o método ABANDON do objeto Session. A propriedade TIMEOUT é usada quando o usuário fica parado sem fazer nada no Browser. O default é vinte minutos, mas esse valor pode ser modificado da seguinte forma: Session.Timeout = VALOR_MINUTOS Ainda relacionado a esse objeto existem dois eventos: Session_OnStart Ocorre quando a sessão é iniciada Session_OnEnd Ocorre quando a sessão é finalizada. A exemplo dos eventos do objeto Application, eles também devem ser escritos como subrotinas de um arquivo GLOBAL.ASA. O exemplo ilustra o conceito de sessão. Temos uma variável a nível de aplicação chamada contador. Ela serve para informar a quantidade de pessoas que acessaram essa aplicação ASP. A idéia é incrementar o valor dessa variável toda vez que uma sessão é iniciada. Também utilizamos uma variável de sessão que informa a hora em que a sessão em questão foi aberta. Exemplo : Global.asa A página a seguir encerra a sessão através do método ABANDON: Exemplo sessao1.aspFONTE: Curso de ASP da UFPI escrito por LINEU ANTONIO DE LIMA SANTOS
Link para o comentário
Compartilhar em outros sites
19 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.