Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

Global.asa para controlar o sucesso de aplicações e sessão.

Posted by karuta em maio 16, 2008

Vou mostrar como funciona o Global.asa para controlar o sucesso de aplicações e sessão.
O arquivo global.asa é onde você declara objetos, variáveis e gerenciadores de eventos, através de algumas rotinas que veremos nesse artigo.
Pode existir apenas um arquivo global.asa por diretório virtual ou por aplicação.
Suponha que tenhamos uma aplicação de cadastro no diretório virtual /cadastro, você poderá ter somente um arquivo global.asa no diretório virtual e ele terá que ficar na raiz do diretório “cadastro”. Se tiver um segundo global.asa em qualquer subdiretório de “cadastro” ele será ignorado pela dll Global.asa.
O global.asa tem a seguinte sintaxe:

CODE
<script LANGUAGE=VBScript RUNAT=server>

sub application_onStart()
  Código da rotina de evento.
end sub

sub application_onEnd()
  Código da rotina de evento.
end sub

sub session_onStart()
  Código da rotina de evento.
end sub

sub session_onEnd()
  Código da rotina de evento.
end sub

</SCRIPT>

Qualquer script que não esteja dentro da tag <script> resultará em um erro.

Aplicação(Application)

O conjunto de páginas ASP dentro de um mesmo diretório virtual damos o nome de aplicação ASP.
A Aplicação será iniciada a partir do momento que o usuário acessar qualquer página ASP dentro dessa aplicação.
E 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:

CODE
Application(“NOME_DA_APLICACAO”) = VALOR_DA_ APLICACAO

Uma vez criada, essa variável estará acessível a qualquer usuário da aplicação. O Valor ficará armazenado até o momento que o servidor seja desligado.
Como esse valor pode ser modificado por qualquer usuário conectado à aplicação, poderia ter alguma confusão se mais usuários alterasse o valor ao mesmo tempo. Para isso temos os métodos lock e unlock do objeto application, para evitar que isso ocorra.

O lock 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.
Também temos dois eventos para esse objeto.

Application_OnStart – Funciona quando aplicação é iniciada(quando um diretório virtual é acessado pela primeira vez.)
Application_OnEnd – Funciona quando a aplicação é finalizada(quando o servidor web é desligado).

O evento nada mais é que uma subrotina chamada automática quando o sistema sofre alguma ação as subrotinas não serão escritas nas páginas asp de sua aplicação, mas sim em um arquivo clamado de GLOBAL.ASA.

Toda vez que um uma aplicação foi acessada pela primeira vez o Web Server ou servidor Web procura se existe o global.asa se encontra ele procura a subrotina Application_OnStart e executa seus comandos e quando o Server é desligado ele procura a subrotina Application_OnEnd.

Vou seguir um exemplo adotado por muitos para mostrar como isso funciona:

CODE
<script LANGUAGE=VBSCRIPT RUNAT=SERVER>

Sub Application_OnStart()
   Application(“DataHora”)=Now
  Application(“forum”)=”iMasters”
Application(“url”)=”http://forum.imasters.com.br&#8221;
End Sub

</SCRIPT>

pagina_aplicacao.asp

CODE
<% @LANGUAGE=VBSCRIPT %>
<HTML><HEAD><TITLE><%=Application(“forum”)%></TITLE></HEAD>
<BODY>
Essa aplicação ASP foi iniciada em <B><%=Application(“DataHora “)%></B><BR>
<A Href=”<%=Application(“url”)%>”>iMasters</a>
</BODY>
</HTML>

Com o global.asa o trabalho de manutenção facititará muito, imagine todas as páginas de sua aplicação com a mesma configuração de topo, com as mesmas cores e etc…
Você utilizará um arquivo global.asa e nesse arquivo colocará todas as informações necessárias. Assim quando mudar algo, ao invés de mudar todas as páginas da sua aplicação, mudará somente a global.asa

Isso pode ajudar muito quem faz um sistema para vender, por exemplo, ele cria uma aplicação com um arquivo global e modifica esse arquivo para cada cliente.

Seção (Session)

Toda vez que um usuário acessa a aplicação é iniciado uma seção no servidor web.
Para isso o ASP tem um objeto chamado session.

Esse objeto é bem parecido com o aplication, mas a diferença é que a session é ligado a um usuário da sua aplicação, ou seja cada usuário possui suas informações gravadas apenas para ele próprio(dono da session).
Sintaxe

session(“nome_da_session”) = valor_da_session

A seção ficará ativa até a o usuário ou fechar o browser, quando ocorre o “TIMEOUT” da sessão, ou quando o script invoca o método ABANDON do objeto Session.

O TIMEOUT ocorre quando o usuário fica parado por um tempo na página.
Isso pode ser definido em minutos assim:

CODE
Session.Timeout = VALOR_MINUTOS


Porém se você não definir nada vai assumir o seu default que é de vinte minutos.

Existe também dois eventos para esse objeto, são eles:
Ainda relacionado a esse objeto existem dois eventos:

– Session_OnStart sessão é iniciada
– Session_OnEnd sessão é finalizada.

Os eventos do objeto Application, também podem escrever em subretinas de um global.asa.

Exemplo:

CODE
<script LANGUAGE=VBSCRIPT RUNAT=SERVER>

Sub Application_OnStart()
  Application(“DataHora”)=Now
  Application(“title_imasters”)=”Global.asa”
  Application(“usuarios”)=0
End Sub

Sub Session_OnStart()
     Application(“usuarios”)=Application(“usuarios”)+1  
    Session(“quando”)=Time
End Sub

</SCRIPT>

o Script acima fará um contador de acessos e será encerrado com o método abandon.

contador_secao.asp:

CODE
<% @LANGUAGE=VBSCRIPT %>
<HTML>
<HEAD>
<TITLE>iMasters – Shumi</TITLE>
</HEAD>
Você está no iMasters essa seção deu início às: <%=Session(“quando”)%><BR>
Você é o usuário: <%=Session(“usuarios”)%>
<BR>
Abrimos o site: <%=Application(“DataHora”)%>
<HR>
<A HREF=”sair.asp”>sair</A>
</BODY>
</HTML>

o sair.asp você usará o método abandon assim:

sair.asp:

CODE
<%
        session.abandon
        response.Write(“<div id=””minhaLayer”” class=””menu_txt”” style=””top:0px; left:0px; width:250px; height:50px; text-align:center””>”)
        response.Write(“<strong><br>Você saiu da área restrita! Aguarde…</strong><br><br>”)
        response.Write(“</div>”)
        Response.AddHeader “Refresh”, “2;URL=index.asp”
%>

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: