Este artigo apresenta principalmente as informações relevantes sobre o aplicativo e sessão de objetos internos da ASP.
No artigo anterior, o autor introduziu em detalhes como usar a resposta de objeto interno do ASP.
Além dos objetos usados para enviar, receber e processar dados, também existem alguns objetos muito práticos representando aplicativos de servidor ativo e informações individuais do usuário no ASP.
Vamos dar uma olhada no objeto de aplicativo primeiro. Todos os arquivos .asp no mesmo diretório virtual e seus subdiretos constituem o aplicativo ASP. Em vez de usar objetos de aplicativo, podemos compartilhar informações entre todos os usuários de um determinado aplicativo e salvar dados persistentemente durante a operação do servidor. Além disso, o objeto de aplicativo também possui métodos para controlar o acesso a dados e eventos no nível do aplicativo que podem ser usados para acionar um processo quando um aplicativo é iniciado e parado.
Vamos aprender sobre objetos de aplicativo juntos.
1. Atributos
Embora o objeto de aplicativo não tenha propriedades internas, podemos definir propriedades definidas pelo usuário usando a seguinte sintaxe, que também pode ser chamada de coleções.
Aplicação (nome da propriedade/coleção) = Valor
Podemos declarar e criar propriedades do objeto de aplicativo usando o seguinte script.
- <%
- APLICAÇÃO (MYVAR) = Olá
- Stapplication (myobj) = server.createObject (myComponent)
- %>
Depois que atribuímos as propriedades do objeto de aplicativo, ele persiste até que o serviço do servidor da Web seja desligado para que o aplicativo pare. Como os valores armazenados no objeto de aplicativo podem ser lidos por todos os usuários do aplicativo, as propriedades do objeto de aplicativos são particularmente adequadas para transmitir informações entre os usuários do aplicativo.
2. Método
Os objetos de aplicativos têm dois métodos, os quais são usados para lidar com vários usuários que escrevem dados armazenados no aplicativo
1. O método de bloqueio proíbe outros clientes de modificar as propriedades do objeto de aplicativo.
O método de bloqueio impede que outros clientes modifiquem variáveis armazenadas nos objetos de aplicativos para garantir que apenas um cliente possa modificar e acessar variáveis de aplicativos ao mesmo tempo. Se o usuário não chamar explicitamente o método de desbloqueio, o servidor desbloqueará o objeto de aplicativo após o término do arquivo .asp terminar ou tempo de saída.
Vamos dar uma olhada no seguinte programa que usa o aplicativo para registrar o número de acessos de página:
< %
Dim numvisitsNumvisits = 0
Application.lockApplication (numVisits) = Application (numVisits) + 1
Application.unlock
%>
Bem -vindo a esta página, você é o Visitante < %= Application (NumVisits)> nesta página!
Salve o script acima no seu arquivo .asp e adicione um contador à sua página facilmente.
2. Ao contrário do método de bloqueio, o método de desbloqueio permite que outros clientes modifiquem as propriedades do objeto de aplicativo.
No exemplo acima, no exemplo acima, o método de desbloqueio desbloqueia o objeto para que o próximo cliente possa aumentar o valor de numvisits.
III
1. Application_onstart
O evento Application_onstart ocorre antes da primeira criação de uma nova sessão (ou seja, o evento session_onstart). O evento Application_onstart é acionado quando o servidor da Web é iniciado e permite solicitações de arquivos contidos no aplicativo. O processamento do evento Application_onstart deve ser gravado no arquivo global.asa.
A sintaxe do evento Application_onstart é a seguinte:
- <ScriptLanguage = scriptLanguagerUnat = server>
- Subapplication_onstart ...
- Endsub
- </Script>
2. Application_Onend
O evento Application_Onend ocorre após o evento Session_Onend quando o aplicativo sair.
Vamos dar uma olhada nas coisas para as quais você deve prestar atenção ao usar objetos de aplicativo.
Objetos internos do ASP não podem ser armazenados em objetos de aplicativo. Por exemplo, cada linha abaixo retorna um erro.
- <%
- Stapplication (var1) = sessão
- Stapplication (var2) = solicitação
- Stapplication (var3) = resposta
- Stapplication (var4) = servidor
- Stapplication (VAR5) = APLICAÇÃO
- Stapplication (var6) = objectContext
- %>
Se você armazenar uma matriz em um objeto de aplicativo, não altere os elementos armazenados diretamente na matriz. Por exemplo, o script a seguir não pode ser executado.
< % Application (StoredArray) (3) = novo valor %>
Isso ocorre porque o objeto de aplicativo é implementado como uma coleção. Array Element StoredArray (3) Nenhuma nova tarefa foi obtida. Esse valor será incluído na coleção de objetos do aplicativo e substituirá qualquer informação anteriormente armazenada neste local. Recomenda -se que você obtenha uma cópia da matriz antes de recuperar ou alterar os objetos na matriz ao armazenar a matriz no objeto de aplicação. Ao operar em uma matriz, você deve armazenar todas as matrizes no objeto de aplicativo para que as alterações que você fize sejam armazenadas. O script a seguir demonstra isso.
--- asp8a.asp ---
- <%
- Dimmyarray ()
- Redimmyarray (5)
- MyArray (0) = Olá
- MyArray (1) = Algum faixa de terceiros
- Application.lock
- Aplicação (StoredArray) = MyArray
- Application.unlock
- Response.RedirecTasp8b.asp
- %>
--- Asp8b.asp ---
- <%
- LocalArray = Application (StoredArray)
- LocalArray (1) = lá
- Response.WritelocalArray (0) e LocalArray (1)
- Application.lock
- Aplicação (StoredArray) = LocalArray
- Application.unlock
- %>
Outro objeto interno ASP muito prático que possui funções semelhantes aos objetos de aplicativos é a sessão. Podemos usar o objeto de sessão para armazenar as informações necessárias para uma sessão de usuário específica. Quando o usuário pula entre as páginas do aplicativo, as variáveis armazenadas no objeto de sessão não são limpas e essas variáveis sempre existem quando o usuário acessa a página no aplicativo. Quando um usuário solicita uma página da Web do aplicativo, se o usuário não tiver uma sessão, o servidor da Web criará automaticamente um objeto de sessão. Quando a sessão expira ou é abandonada, o servidor termina a sessão.
Os objetos de sessão no servidor podem ser gerenciados enviando cookies exclusivos para o programa cliente. Quando um usuário solicita uma página no aplicativo ASP pela primeira vez, o ASP verifica as informações do cabeçalho HTTP para ver se há um cookie chamado ASPSessionID na mensagem. Valor para a sessão e envie esse valor ao cliente como o valor do novo cookie aspsessionIDID. A função mais comum de um objeto de sessão é armazenar as preferências do usuário. Por exemplo, se o usuário indicar que ele não gosta de visualizar os gráficos, ele poderá armazenar as informações em um objeto de sessão. Além disso, é frequentemente usado em programas que identificam clientes. Deve -se notar que o status da sessão é retido apenas em navegadores que suportam cookies e, se o cliente desligar a opção de cookies, a sessão não funcionará.
1. Atributos
1. SessionID
A propriedade SessionID retorna a identidade da sessão do usuário. Ao criar uma sessão, o servidor gera uma identidade separada para cada sessão. O identificador de sessão é retornado como o tipo de dados alongado. Em muitos casos, a SessionID pode ser usada para estatísticas de registro da página da web.
2. Tempo limite
A propriedade Timeout especifica um prazo de tempo limite para o objeto de sessão do aplicativo em minutos. Se o usuário não atualizar ou solicitar uma página da Web dentro deste período de tempo limite, a sessão será encerrada.
2. Método
Existe apenas um método para um objeto de sessão, que é abandonado. Se você não chamar explicitamente o método de abandono, o servidor excluirá esses objetos assim que a sessão se divirta. Quando o servidor terminar de processar a página atual, o exemplo a seguir libera o estado da sessão.
< %Session.abandon %>
III
O objeto de sessão tem dois eventos que podem ser usados quando o objeto de sessão é iniciado e lançado é executado.
1. O evento session_onstart ocorre quando o servidor cria uma nova sessão. O servidor processa o script antes de executar a página solicitada. O evento session_onstart é o melhor momento para definir variáveis de sessão, porque elas são definidas antes de acessar qualquer página.
Embora o objeto de sessão permaneça quando o evento session_onstart contém uma chamada de redirecionamento ou método final, o servidor interrompe o processamento do arquivo global.asa e aciona o script no arquivo que aciona o evento session_onstart.
Para garantir que o usuário sempre inicie uma sessão ao abrir uma página da Web específica, o método de redirecionamento pode ser chamado no evento Session_Onstart. Quando o usuário insere o aplicativo, o servidor cria uma sessão para o usuário e processa o script de evento session_onstart. Você pode incluir o script neste evento para verificar se a página aberta pelo usuário é uma página de inicialização e, se não, instruir o usuário a chamar o método Response.Redirect para iniciar a página da Web. O procedimento é o seguinte:
- <Scriptrunat = serverLanguage = vbscript>
- Samession_Onstart
- startPage =/myApp/starthere.asp
- CurrentPage = request.Servervariables (script_name)
- ifstrComp (CurrentPage, startpage, 1) então
- Response.Redirect (StartPage)
- endif
- Endsub
- </Script>
Os programas acima podem ser executados apenas em navegadores que suportam cookies. Como os navegadores que não suportam cookies não podem devolver cookies de sessão, o servidor cria uma nova sessão sempre que um usuário solicitar uma página da web. Dessa forma, para cada servidor solicitante, o script session_onstart será processado e o usuário será redirecionado para a página de inicialização.
2. O evento session_onend ocorre ou cronometrado durante a sessão.
Coisas a serem observadas sobre o uso de objetos de sessão.
A sessão pode ser iniciada nas três maneiras seguintes:
1. Um novo usuário solicita acesso a uma URL que identifica o arquivo .asp em um aplicativo e o arquivo global.asa do aplicativo contém o processo session_onstart.
2. O usuário armazena um valor no objeto de sessão.
3. O usuário solicitou o arquivo .asp de um aplicativo e o arquivo global.asa do aplicativo usa a tag <ject> para criar uma instância de um objeto com um escopo de sessão.
Se o usuário não solicitar ou atualizar nenhuma página no aplicativo dentro do tempo especificado, a sessão terminará automaticamente. O valor padrão para esse período é de 20 minutos. Você pode alterar as configurações de limite de tempo limite padrão para um aplicativo, definindo a propriedade de tempo limite da sessão na página de propriedades do aplicativo Options no gerenciador de serviços da Internet. Esse valor deve ser definido de acordo com os requisitos do seu aplicativo da Web e o espaço de memória do servidor. Por exemplo, se você deseja que os usuários que desejam procurar seu aplicativo da Web permanecem em cada página por apenas alguns minutos, reduza o valor do tempo limite padrão para sua sessão. Um valor de tempo limite de sessão excessivamente longo causará muitas sessões abertas e esgotará os recursos de memória do servidor. Para uma sessão específica, se você deseja definir um valor de tempo limite menor que o valor do tempo limite padrão, poderá definir a propriedade de tempo limite do objeto da sessão. Por exemplo, o script a seguir define o valor do tempo limite para 5 minutos.
< %Session.Timeout = 5 %>
Obviamente, você também pode definir um valor de tempo limite maior que a configuração padrão. Você também pode terminar explicitamente uma sessão através do método abandonado do objeto de sessão. Por exemplo, forneça um botão de saída na tabela, definindo o parâmetro de ação do botão no URL do arquivo .asp que contém os seguintes comandos.
< %Session.abandon %>
Hoje, aprendemos dois objetos embutidos que geralmente usam o ASP nas páginas da Web, especialmente em BBS baseado na Web ou no chat. .
O acima é tudo sobre este artigo.