Tutoriais ASP

ASP HOME

Tutorial WP

Introdução às páginas da Web Navalha de páginas da Web Layout de páginas da Web Pastas de páginas da Web Páginas da Web globais Formulários de páginas da Web Objetos de páginas da Web Arquivos de páginas da Web Bancos de dados de páginas da Web Assistentes de páginas da Web Páginas da Web WebGrid Gráficos de páginas da Web E-mail de páginas da Web Segurança de páginas da Web Publicação de páginas da Web Exemplos de páginas da Web Aulas de páginas da Web

Máquina de barbear ASP.NET

Introdução à navalha Sintaxe Razor Variáveis ​​Razor C# Loops Razor C# Razor C# Logic Variáveis ​​Razor VB Loops Razor VB Lógica do Razor VB

ASP Clássico

Introdução ASP Sintaxe ASP Variáveis ​​ASP Procedimentos ASP Condicionais ASP Loop ASP Formulários ASP Cookies ASP Sessão ASP Aplicativo ASP ASP #incluir ASP Global.asa ASP AJAX e-mail ASP Exemplos ASP

Referência ASP

Funções ASP VB Palavras-chave ASP VB Resposta ASP Solicitação ASP Aplicativo ASP Sessão ASP Servidor ASP Erro ASP Sistema de arquivos ASP Fluxo de texto ASP Unidade ASP Arquivo ASP Pasta ASP Dicionário ASP ASP AdRotator ASP BrowserCap Vinculação de conteúdo ASP Rotador de conteúdo ASP Referência Rápida ASP

Tutorial ADO

Introdução ao ADO ADO Connect Conjunto de registros ADO Exibição ADO Consulta ADO ADO Sort Adicionar ADO Atualização ADO Excluir ADO Demonstração ADO Aceleração ADO

Objetos ADO

Comando ADO Conexão ADO Erro ADO Campo ADO Parâmetro ADO Propriedade ADO Registro ADO Conjunto de registros ADO Fluxo ADO Tipos de dados ADO

ASP O arquivo Global.asa


O arquivo Global.asa

O arquivo Global.asa é um arquivo opcional que pode conter declarações de objetos, variáveis ​​e métodos que podem ser acessados ​​por cada página em um aplicativo ASP.

Todos os scripts de navegador válidos (JavaScript, VBScript, JScript, PerlScript, etc.) podem ser usados ​​no Global.asa.

O arquivo Global.asa pode conter apenas o seguinte:

  • Eventos do aplicativo
  • Eventos de sessão
  • declarações de <objeto>
  • Declarações TypeLibrary
  • a diretiva #include

Nota: O arquivo Global.asa deve ser armazenado no diretório raiz do aplicativo ASP e cada aplicativo pode ter apenas um arquivo Global.asa.


Eventos em Global.asa

Em Global.asa você pode dizer ao aplicativo e aos objetos de sessão o que fazer quando o aplicativo/sessão iniciar e o que fazer quando o aplicativo/sessão terminar. O código para isso é colocado em manipuladores de eventos. O arquivo Global.asa pode conter quatro tipos de eventos:

Application_OnStart - ocorre quando o PRIMEIRO usuário chama a primeira página em um aplicativo ASP. Este evento ocorre depois que o servidor Web é reiniciado ou depois que o arquivo Global.asa é editado. O evento "Session_OnStart" ocorre imediatamente após este evento.

Session_OnStart - Este evento ocorre TODA vez que um novo usuário solicita sua primeira página no aplicativo ASP.

Session_OnEnd - Este evento ocorre TODA vez que um usuário encerra uma sessão. Uma sessão de usuário termina depois que uma página não foi solicitada pelo usuário por um tempo especificado (por padrão, são 20 minutos).

Application_OnEnd - Este evento ocorre depois que o ÚLTIMO usuário encerrou a sessão. Normalmente, esse evento ocorre quando um servidor Web é interrompido. Este procedimento é usado para limpar as configurações após a interrupção do aplicativo, como excluir registros ou gravar informações em arquivos de texto.

Um arquivo Global.asa pode ser algo assim:

<script language="vbscript" runat="server">

sub Application_OnStart
'some code
end sub

sub Application_OnEnd
'some code
end sub

sub Session_OnStart
'some code
end sub

sub Session_OnEnd
'some code
end sub

</script>

Nota: Como não podemos usar os delimitadores de script ASP (<% e %>) para inserir scripts no arquivo Global.asa, colocamos sub-rotinas dentro de um elemento HTML <script>.



<objeto> Declarações

É possível criar objetos com escopo de sessão ou aplicativo em Global.asa usando a tag <object>.

Nota: A tag <object> deve estar fora da tag <script>!

Sintaxe

<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>
....
</object>

Parameter Description
scope Sets the scope of the object (either Session or Application)
id Specifies a unique id for the object
ProgID An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]

Either ProgID or ClassID must be specified.

ClassID Specifies a unique id for a COM class object.

Either ProgID or ClassID must be specified.

Exemplos

O primeiro exemplo cria um objeto de escopo de sessão chamado "MyAd" usando o parâmetro ProgID:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

O segundo exemplo cria um objeto de escopo de aplicação chamado "MyConnection" usando o parâmetro ClassID:

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

Os objetos declarados no arquivo Global.asa podem ser usados ​​por qualquer script da aplicação:

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

You could reference the object "MyAd" from any page in the ASP application:

SOME .ASP FILE:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>

Declarações de biblioteca de tipos

Um TypeLibrary é um contêiner para o conteúdo de um arquivo DLL correspondente a um objeto COM. Incluindo uma chamada para TypeLibrary no arquivo Global.asa, as constantes do objeto COM podem ser acessadas e os erros podem ser melhor relatados pelo código ASP. Se seu aplicativo da Web depender de objetos COM que tenham tipos de dados declarados em bibliotecas de tipos, você poderá declarar as bibliotecas de tipos em Global.asa.

Sintaxe

<!--METADATA TYPE="TypeLib"
file="filename" uuid="id" version="number" lcid="localeid"
-->

Parameter Description
file Specifies an absolute path to a type library.

Either the file parameter or the uuid parameter is required

uuid Specifies a unique identifier for the type library.

Either the file parameter or the uuid parameter is required

version Optional. Used for selecting version. If the requested version is not found, then the most recent version is used
lcid Optional. The locale identifier to be used for the type library

Valores de erro

O servidor pode retornar uma das seguintes mensagens de erro:

Error Code Description
ASP 0222 Invalid type library specification
ASP 0223 Type library not found
ASP 0224 Type library cannot be loaded
ASP 0225 Type library cannot be wrapped

Nota: As tags METADATA podem aparecer em qualquer lugar no arquivo Global.asa (dentro e fora das tags <script>). No entanto, é recomendável que as marcas METADATA apareçam perto da parte superior do arquivo Global.asa.


Restrições

Restrições sobre o que você pode incluir no arquivo Global.asa:

  • Você não pode exibir texto escrito no arquivo Global.asa. Este arquivo não pode exibir informações
  • Você só pode usar objetos Servidor e Aplicativo nas sub-rotinas Application_OnStart e Application_OnEnd. Na sub-rotina Session_OnEnd, você pode usar os objetos Servidor, Aplicativo e Sessão. Na sub-rotina Session_OnStart você pode usar qualquer objeto embutido

Como usar as subrotinas

Global.asa é frequentemente usado para inicializar variáveis. 

O exemplo abaixo mostra como detectar a hora exata em que um visitante chega pela primeira vez a um site. O tempo é armazenado em uma variável Session chamada "started", e o valor da variável "started" pode ser acessado de qualquer página ASP no aplicativo:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa também pode ser usado para controlar o acesso à página.

O exemplo abaixo mostra como redirecionar cada novo visitante para outra página, neste caso para uma página chamada "newpage.asp":

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

E você pode incluir funções no arquivo Global.asa.

No exemplo abaixo, a sub-rotina Application_OnStart ocorre quando o servidor Web é iniciado. Em seguida, a sub-rotina Application_OnStart chama outra sub-rotina chamada "getcustomers". A sub-rotina "getcustomers" abre um banco de dados e recupera um conjunto de registros da tabela "customers". O conjunto de registros é atribuído a um array, onde pode ser acessado de qualquer página ASP sem consultar o banco de dados:

<script language="vbscript" runat="server">

sub Application_OnStart
getcustomers
end sub

sub getcustomers
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub

</script>

Exemplo Global.asa

Neste exemplo, criaremos um arquivo Global.asa que conta o número de visitantes atuais.

  • O Application_OnStart define a variável do aplicativo "visitors" para 0 quando o servidor é iniciado
  • A sub-rotina Session_OnStart adiciona um à variável "visitantes" toda vez que um novo visitante chega
  • A sub-rotina Session_OnEnd subtrai um de "visitantes" cada vez que esta sub-rotina é acionada

O arquivo Global.asa:

<script language="vbscript" runat="server">

Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub

</script>

Para exibir o número de visitantes atuais em um arquivo ASP:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>