Na série publicada, discutimos dois objetos ASP: objeto de aplicativo e objeto de sessão, para que possamos acessar as coleções, métodos, propriedades e eventos fornecidos pelo objeto de aplicação e pelo objeto de sessão. Esta seção estudará esses dois objetos da perspectiva da programação.
· Crie um objeto de aplicativo quando uma DLL ASP for carregada e a primeira solicitação para uma página da Web ASP é respondida. Este objeto fornece um local de armazenamento para armazenar variáveis e objetos disponíveis para todas as páginas da web abertas por todos os visitantes.
· Quando um visitante solicita uma página ASP do site pela primeira vez, crie um objeto de sessão para ele e permaneça válido até o período de tempo limite padrão (ou o período de tempo limite determinado pelo script). O objeto fornece um local de armazenamento para armazenar variáveis e objetos disponíveis apenas para as páginas da web abertas pelo visitante durante a atividade da sessão.
relação
1. Visão geral dos membros do objeto do aplicativo ASP
Esta seção descreve a coleção, métodos e eventos de objetos de aplicativos (os objetos do aplicativo não têm propriedades). O objeto de sessão (com propriedades) é explicado na próxima seção. Em seguida, continuaremos a explorar as tarefas realizadas com esses objetos, explicando com mais detalhes como cada membro de cada objeto funciona.
1. Coleção de objetos de aplicativos
O objeto de aplicativo fornece duas coleções que podem ser usadas para acessar variáveis e objetos armazenados no espaço de aplicativos globais. A coleção e a descrição são as seguintes:
Coleção e descrição dos objetos de aplicativo de tabela
| juntar | ilustrar |
| Conteúdo | Não há conjunto de todas as variáveis (e seus valores) armazenadas no objeto de aplicação definido usando o elemento <ject>. Inclui referências a matrizes variantes e instâncias de objetos do tipo variante |
| StaticObjects | Uma coleção de todas as variáveis (e seus valores) armazenadas no objeto de aplicativo definido usando o elemento <ject> |
2. Métodos de objetos de aplicação
O método do objeto de aplicação permite a exclusão de valores no espaço global de aplicativos, controlando o acesso simultâneo a variáveis nesse espaço. Os métodos e instruções são mostrados na tabela a seguir:
Métodos e descrições de objetos de aplicativo de tabela
| método | ilustrar |
| Contents.remove (variable_name) | Remova uma variável chamada variable_name da coleção Application.Content |
| Contents.removeall () | Remova todas as variáveis da coleção Application.Content |
| Trancar() | Bloqueie o objeto de aplicativo para que apenas a página ASP atual possa acessar o conteúdo. Usado para garantir que operações simultâneas realizadas por métodos que permitam que dois usuários leiam e modifiquem o valor simultaneamente não corrompem conteúdo |
| Desbloqueio () | Desbloqueie páginas da web asp em objetos de aplicativo |
Observe que as variáveis não podem ser excluídas da coleção Application.staticObjects durante o tempo de execução.
3. Eventos de objetos de aplicativo
O objeto de aplicação fornece dois eventos que são acionados quando inicia e termina, como mostrado na tabela a seguir:
Eventos e descrições de objetos de aplicativo de tabela
| evento | ilustrar |
| OnStart | Acionado quando o ASP inicia, antes que o usuário solicite que a página da web seja executada e antes que qualquer usuário crie o objeto de sessão. Usado para inicializar variáveis, criar objetos ou executar outro código |
| ONEND | Acionado quando o aplicativo ASP termina. Ocorre após o término da última sessão do usuário e todo o código no evento ONEND dessa sessão foi executado. No final, todas as variáveis presentes no aplicativo são canceladas |
Visão geral do membro do objeto de sessão do ASP
Esta seção descreve todos os membros de um objeto de sessão.
1. Coleção de objetos de sessão
O objeto de sessão fornece dois conjuntos que podem ser usados para acessar variáveis e objetos armazenados no espaço da sessão local do usuário. Essas coleções e descrições são mostradas na tabela a seguir:
Conjunto e descrição dos objetos de sessão de tabela
| juntar | ilustrar |
| Conteúdo | Uma coleção de todas as variáveis e seus valores armazenados nesse objeto de sessão em particular, e essas variáveis e valores não são definidos usando elementos <ject>. Inclui referências a matrizes variantes e instâncias de objetos do tipo variante |
| StaticObjects | Uma coleção de todas as variáveis armazenadas neste objeto de sessão definido usando o elemento <ject> |
2. Características dos objetos de sessão
O objeto de sessão fornece quatro propriedades. Essas propriedades e descrições são mostradas na tabela a seguir:
Tabela 3-7 Propriedades e descrições de objetos de sessão
| propriedade | ilustrar |
| FAGE DE CÓDIGO | Leia/escreva. Inteiro. Define a página de código para exibir o conteúdo da página no navegador. As páginas de código são valores numéricos de um conjunto de caracteres e diferentes páginas de código podem ser usadas em diferentes idiomas e locais. Por exemplo, o Código ANSI Página 1252 é usado nos idiomas americanos em inglês e na maioria dos idiomas europeus. Código Página 932 é usado para caracteres japoneses |
| LCID | Leia/escreva. Inteiro. Define o ID da área da página (LCID) enviado ao navegador. O LCID é uma abreviação padrão internacional que identifica exclusivamente uma região. O LCID também pode ser usado no formatcurrency e em outras instruções, desde que haja um parâmetro LCID opcional. O LCID também pode ser definido na instrução de processamento ASP <%& hellip;%> e tem precedência sobre as configurações no atributo LCID da sessão. Este capítulo fornece uma lista de instruções de processamento ASP posteriormente |
| SessionID | Somente leitura. Forma longa. Retorna o identificador de sessão para esta sessão, que é gerado pelo servidor quando a sessão é criada. Somente exclusivo durante a vida inteira do objeto de aplicativo pai, para que ele possa ser reutilizado quando um novo aplicativo inicia |
| Tempo esgotado | Leia/escreva. Inteiro. Defina um período de tempo limite em minutos para esta sessão. Se o usuário não atualizar ou solicitar uma página da Web durante o período de tempo limite, a sessão terá -las. Você pode modificá -lo conforme necessário em cada página da web. O valor padrão é 10min. Este tempo deve ser mais curto em sites com alto uso |
3. Métodos de objetos de sessão
O objeto de sessão permite a remoção de valores especificados do espaço da sessão no nível do usuário e encerra a sessão, conforme necessário. Os métodos e descrições do objeto Seesion são mostrados na tabela a seguir:
Métodos e descrições de objetos de sessão de tabela
| método | ilustrar |
| Contents.remove (variable_name) | Remova uma variável chamada variable_name da coleção Session.Content |
| Contents.removeall () | Remova todas as variáveis da Coleção da Sessão. |
| Abandonar() | Quando a execução da página da web é concluída, a sessão atual do usuário é encerrada e o objeto de sessão atual não é documentado. Mas, mesmo depois que o método é chamado, as variáveis da sessão atual na página ainda podem ser acessadas. Quando o usuário solicitar a próxima página, uma nova sessão será iniciada e um novo objeto de sessão será criado (se houver) Observe que as variáveis não podem ser excluídas da coleção SesstaticObjects durante o tempo de execução. |
4. Eventos de objetos de sessão
O objeto de sessão fornece dois eventos que são acionados na inicialização e no final, conforme mostrado na Tabela 3-9:
Tabela 3-9 Eventos e descrições de objetos de sessão
| evento | ilustrar |
| OnStart | Acionado quando a sessão do usuário do ASP inicia, antes que o usuário solicitou a página da web ser executada. Usado para inicializar variáveis, criar objetos ou executar outro código. |
| ONEND | Acionado quando a sessão do usuário do ASP terminar. A partir da última solicitação de página do usuário para o aplicativo, o evento será acionado se o período de tempo limite da sessão predeterminado tiver sido excedido. Quando a sessão terminar, cancele todas as variáveis nessa sessão. Este evento também é acionado ao usar o método abandonado para encerrar uma sessão de usuário do ASP no código |
Eventos usando aplicativos e sessão
Os objetos de aplicação e sessão da ASP refletem os eventos de recursos que outros objetos internos do ASP não possuem. No entanto, como visto na tabela de membros do objeto anterior, esses são eventos relacionados à sessão ASP e ao trabalho do aplicativo.
1. Manipuladores de eventos para aplicação e sessão
Sempre que um aplicativo ou sessão começa ou termina, o ASP aciona um evento. Esses eventos podem ser detectados e respondidos escrevendo o código de script comum em um arquivo especial, chamado global.asa, localizado no diretório raiz de um aplicativo (para o site padrão da web é /inetpub /wwwroot diretório ou como uma pasta definida como um aplicação real). Este arquivo pode conter um ou mais elementos <ject> do HTML que são usados para criar instâncias de componentes a serem usadas dentro do aplicativo ou sessão do usuário.
O código a seguir é um exemplo do arquivo global.asa. Nós apenas nos concentramos no elemento <ject> e nessas linhas de código que começam com a palavra -chave definida:
| <!- Declare a instância do componente aspcounter com escopo no nível do aplicativo //-> < ID do objeto = AspCounter Runat = Scope do servidor = Aplicativo Progid = mswc.counters > </objeto > <!- Declare a instância do componente aspContentLimk com escopo no nível da sessão //-> < ID do objeto = ASPCOntentLink Runat = SCOPE do servidor = sessão Progid = mswc.nextlink> </objeto > < Idioma do script = VBScript runat = servidor > Subpplication_onstart () 'Crie uma instância de um conjunto de registros ADO com escopo no nível do aplicativo Definir aplicativo (adoconnection) = server.createObject (adodb.connection) Dim VarArray (3) 'Crie uma matriz variante e preencha -a Vararray (0) = este é um Vararray (1) = matriz variante Vararray (2) = armazenado no Vararray (3) = objeto de aplicação APLICAÇÃO (VARIANT_ARRAY) = VarArray'store no aplicativo Aplicativo (start_time) = cstr (agora) 'armazenar a data/hora como uma string Aplicação (visit_count) = 0 'defina o contador variável para zero Final sub Subpplication_onend () Definir aplicativo (Adoconnection) = nada Final sub Sub -sesson_onstart () 'Crie uma instância do componente Adrotator com o escopo no nível da sessão Defina sessão (aspadrotator) = server.createObject (mswc.adrotator) Dim VarArray (3) 'Crie uma variante Arry e encha Vararray (0) = este é um Vararray (1) = matriz variante Vararray (2) = armazenado no Vararray (3) = objeto de sessão Sessão (variant_array) = VarArray 'Armazene -o na sessão Sessão (start_time) = cstr (agora) 'armazenar a data/hora como uma string 'Podemos acessar o conteúdo da solicitação e resposta em uma session_onstart 'Manipulador de eventos para a página que iniciou a sessão. 'Coloque o contexto da página ASP está disponível como este. 'Como exemplo, podemos obter o endereço IP do usuário: Sessão (your_ip_address) = request.servervariables (remote_addr) Application.lock intvisits = Application (visit_count) +1 APLICAÇÃO (VISIT_COUNT) = INTVISITS Application.unlock Final sub Sub Sestion_Onend () Definir sessão (aspadrotator) = nada Final sub </script > |
Como esse arquivo global.asa é usado na página de exemplo deste capítulo, será necessário colocar o arquivo no diretório raiz do site ou em um diretório configurado como um aplicativo virtual e incluir o diretório outros arquivos de amostra .
LEIA E AJUSE VALORES
Observe o exemplo acima como ler variáveis de aplicativo e sessão, da mesma maneira que você recebe uma coleção de objetos de solicitação e resposta. Defina os valores dessas variáveis:
| APLICAÇÃO (variable_name) = variable_value Aplicativo (variável_name) = variável_array_variable_name Definir aplicativo (variável_name) = object_reference |
Obtenha os valores dessas variáveis:
| variable_value = aplicativo (variável_name) variant_array_variable = Application (variable_name) Definir Object_reference = Application (variable_name) |
Obviamente, a mesma abordagem pode ser adotada para objetos de sessão.
Você pode ver como bloquear e desbloquear o objeto de aplicativo quando acessado a partir de um processador de eventos de sessão; Isso não é necessário ao acessar valores em objetos de aplicativo usando o código nos eventos do aplicativo. Isso ocorre porque, em qualquer aplicativo, existe apenas uma instância do objeto de aplicativo e o código do manipulador de eventos é executado apenas quando não há sessão de usuário ativa.
Você também pode ver como um contador básico de sessão do usuário é implementado. Aqui está uma variável no nível do aplicativo visit_count, que é aumentada automaticamente quando uma nova sessão é iniciada. Geralmente, não se restringe a simplesmente salvar valores em objetos de aplicação ou sessão. Por exemplo, o site do desenvolvedor da Web possui um arquivo global.asa correspondente em http://webdev.wrox.co.uk são obtidos na coleção Solicitação.Servervariables. Isso fornece um método básico para contar o número de visitantes e coletar algumas informações básicas sobre os visitantes.