No artigo anterior, o autor introduziu em detalhes dois métodos muito práticos para usar o aplicativo e sessão de objetos internos do ASP. Como os scripts de eventos OnStart e Onend devem ser declarados no arquivo global.asa, este artigo introduzirá em detalhes como usar o arquivo global.asa. Para permitir que todos dominem o conhecimento que aprenderam até agora, este artigo também incluirá um programa de bate -papo ASP para sua referência.
Recentemente, muitos amigos me enviaram uma carta para me perguntar por que existem e erros ao executar o programa de exemplo nas duas primeiras edições. Primeiro de tudo, quero declarar a você que esses programas estão escritos por mim e aprovaram a inspeção da qualificação antes de deixar a fábrica, e não há produtos falsificados e de má qualidade. :) Como os cookies são usados no programa para registrar as informações do cliente, se você não definir os cookies aceitar no seu navegador, o programa não será executado normalmente. Além disso, o método usado pelo programa para registrar as informações do cliente nos cookies do cliente é a resposta.cookie. HTTP Se as informações do cabeçalho HTTP foram transmitidas ao cliente, se a resposta.Cookie for usada após a transmissão das informações do cabeçalho HTTP para o cliente, o seguinte erro aparecerá: o cabeçalho HTTP foi gravado para o navegador do cliente. Qualquer modificação de um cabeçalho HTTP deve ser antes de escrever para o conteúdo da página. , Alguns amigos podem não prestar atenção ao cortar o programa, interromper a ordem pré e traseira do programa ou adicionar incorretamente o código HTML antes do programa de amostra ASP, resultando em um erro no programa em execução. Portanto, sugiro que, por um lado, não faça alterações no programa ao executar a rotina pela primeira vez e tente melhorá -lo gradualmente com base na compreensão do programa. Você deve pelo menos selecionar cookies aceitáveis no navegador.
Em seguida, apresentarei a você como usar o arquivo global.asa.
O que é um arquivo global.asa? Na verdade, é um arquivo opcional no qual o escritor do programa pode especificar scripts de eventos e declarar objetos com escopos de sessão e aplicativo. O conteúdo deste arquivo não é usado para ser exibido ao usuário, mas para armazenar informações e objetos de evento usados globalmente pelo aplicativo. O nome do arquivo deve ser global.asa e deve ser armazenado no diretório raiz do aplicativo. Cada aplicativo pode ter apenas um arquivo global.asa.
No arquivo global.asa, se o script incluído não for encapsulado com <Script> tag ou o objeto definido não possui sessão ou escopo de aplicativo, o servidor retorna um erro. Podemos escrever scripts incluídos no arquivo global.asa em qualquer idioma habilitado para script. Se vários eventos estiverem na mesma linguagem de script, eles podem ser organizados em um conjunto de tags <Script>.
O processo declarado no arquivo global.ASA só pode ser chamado de um ou mais scripts relacionados aos eventos Application_Onstart, Application_Onend, Session_Onstart e Session_Onend. Eles não estão disponíveis na página ASP de aplicativos baseados em ASP. Se você deseja compartilhar procedimentos entre os aplicativos, poderá declará-los em um arquivo separado e usar a instrução SSI Inclusão (SSI) do lado do servidor para incluir o arquivo no programa ASP que chama o procedimento. Geralmente, a extensão do arquivo contendo deve ser .inc.
Aqui está um arquivo Global.asa muito padrão:
<Idioma de script = vbscript runat = servidor>
'Session_onstart é executado quando o cliente executa pela primeira vez qualquer página no aplicativo ASP
'Session_onend é executado quando a sessão de um cliente cronometrou ou sai do aplicativo
'Application_onstart é executado quando qualquer cliente acessa pela primeira vez a página inicial do aplicativo
'Application_Onend é executado quando o servidor da web do site está inativo
< /Script>
<Idioma de script = vbscript runat = servidor>
Subpplication_onstart
VisitorCountFilename = server.mappath ( /ex2) + /visitcount.txt
Set fileObject = server.createObject (script.filesystemoBject)
Set Out = FileObject.opentExtFile (VisitorCountFileName, 1, falso, falso)
Aplicação (visitantes) = out.readline
APLICAÇÃO (VisitorCountFileName) = VisitorCountFileName
Final sub
'================================================== ================== =========
Subpplication_onend
Definir fileOutObject = server.createObject (script.filesystemoBject)
Set Out = FileOutObject.CreateTextFile (Application (VisitorCountFileName), True, False)
OUT.WriteLine (Aplicação (visitantes))
Final sub
'================================================== ================== ========== SUB SESSHENT_ONSTART
Session.timeout = 5
Aplicação (visitantes) = Aplicação (visitantes) + 1
Sessão (id) = session.sessionId
Final sub
< /Script>
Neste programa global.asa, o componente de acesso a arquivos do ASP está envolvido, que fornece métodos, propriedades e coleções para acessar o sistema de arquivos. Isso será discutido em futuros componentes ASP. Aqui, ele serve para criar novos arquivos no servidor e gravar nos arquivos. Na verdade, este é um arquivo global de um aplicativo ASP Page Access Counter. Caminho e conteúdo do arquivo em variáveis no nível do aplicativo. Quando qualquer cliente acessa qualquer página em um aplicativo ASP, a definição do processo session_onstart adiciona automaticamente o valor dos visitantes variáveis no nível do aplicativo. Dessa forma, sempre que um cliente visitar a página, os visitantes variáveis serão adicionados automaticamente à função de contar a taxa de cliques. Como o valor dos visitantes da variável é armazenado na memória do sistema, se o servidor for desligado ou reiniciado, os dados armazenados na variável serão perdidos automaticamente. O servidor é desligado ou reiniciado.
Após esse período de estudo, acredito que todos puderam usar os objetos ASP integrados que aprendemos a escrever alguns aplicativos ASP mais simples. Desenvolva alguns aplicativos ASP simples, mas práticos. Deixe -me dar a você um programa de bate -papo da Web muito simples. Você descobrirá que escrever uma sala de bate -papo é uma coisa tão fácil e fácil. Talvez os amigos tenham visto como escrever programas de bate -papo ASP em algumas revistas, mas o autor escreveu um programa mais simples aqui, usando apenas um arquivo .asp. Por favor, prenda o código a seguir no bloco de notas e salve -o como chat.asp.
< %@ Idioma = vbscript %>
< %
Response.Buffer = true 'Defina o cache de saída para exibir páginas diferentes.
No erro, retomar o próximo 'ignore a parte de erro do programa
Se request.ServerVariables (request_method) = obtenha então
'Determine como o cliente solicita a página da web
'--------------------------------------------------- -------------------------------------------------------- ------------------------------
'Interface de login do cliente
'--------------------------------------------------- -------------------------------------------------------- ------------------------------
%>
<Form Method = Post Action = Chat.asp> <p>
<Tipo de entrada = Nome do texto = Nick Tamanho = 20 Valor = Nick Style = Background-Color: RGB (192,192,192)> <BR>
<Tipo de entrada = Enviar valor = Digite o nome da sala de bate-papo = estilo B1 = cor: RGB (255,255,0);
<p> <Tipo de entrada = Nome oculto = Tamanho do log = 20 Valor = 1> <BR> </p>
</morm>
< %
Response.end 'encerre o processo do programa
Outro
Response.clear 'limpe o conteúdo no cache
conversa sombria
Se request.form (nick) <> então
'Determine se o cliente está na interface de bate -papo
Sessão (nick) = request.form (nick)
Final se
'--------------------------------------------------- -------------------------------------------------------- ------------------------------
Interface de bate -papo do cliente
'--------------------------------------------------- -------------------------------------------------------- ------------------------------
%>
<Form Method = Post Action = Chat.asp nome = form1> <p> < %= session (nick) %> fale: <tipo de entrada = nome do texto = tamanho da conversa = 50> <BR>
<Tipo de entrada = Valor de envio = Nome de envio = B1>
<Tipo de entrada = Valor de redefinição = Nome de cancelamento = B2> </p>
</morm>
<A href =/asptest/shusheng/chat.asp> deixa <//a> <br> <br>
< %
Se request.form (log) <> 1 então
Se TRIM (request.form (Talk)) = então
'Determine se o usuário não inseriu nada
conversa = sessão (nick) e silêncio é ouro.
Outro
Talk = Trim (request.form (Talk))
'Remova o espaço após o personagem
Final se
Application.lock
Aplicação (show) = <tabela borda = '0' CellPadding = '0' CellPacing = '0' width = '85%'> <tr> <td width =' 100%'bgcolor ='#c0c0c0 '> < /td > </tr> <tr> <td width = '100%'> <font color = '#0000ff'> & session (nick) & time & from & request.servervariables (remote_addr) e disse: </font> & Talk & </td> </tr> <tr> <td width = '100%' bgcolor = '#c0c0c0'> </td> < /tr> </bitle> <br> & aplicação (show)
Application.unlock
Aplicativo de Response.Write (SHOW)
Final se
Final se
%>
Vamos realizar uma análise passo a passo deste programa de sala de bate-papo.
Primeiro, como todos os clientes na sala de bate-papo devem ser capazes de compartilhar informações, é inevitável usar o aplicativo de objeto com variáveis no nível do aplicativo. -level. Podemos usar o objeto Solicitação que aprendemos para divulgar a conversa pelo cliente e salvá-lo na conversa variável e, em seguida, armazenar o valor da conversa na variável no nível do aplicativo, como segue:
< % Application (show) = Talk & Application (show) %>
A próxima coisa a considerar é como lidar com diferentes clientes quando eles operam em aplicativos de bate -papo ao mesmo tempo. Esse problema é o mesmo que dois usuários no banco de dados, escrevendo o mesmo registro ao mesmo tempo. Outro usuário desapareceu diante de quem estava presente na sessão viu. Para evitar esse tipo de problema, precisamos usar a propriedade de bloqueio do objeto do aplicativo para restringir apenas o usuário atual a editar ou adicionar propriedades do objeto de aplicativo. Desbloqueado explicitamente até então, as propriedades do objeto de aplicativos só podem ser editadas pelo usuário. Como mostrado abaixo:
Application.lock
APLICAÇÃO (SHOW) = Talk & Application (Show)
Application.unlock
Agora que você entendeu a parte central de todo o programa, considere como salvar as informações do cliente. como:
Sessão (nick) = request.form (nick)
Por fim, o que precisamos considerar é como lidar com vários eventos apenas em um arquivo .asp, como: interface de login do cliente, interface de bate -papo do cliente. Desde a primeira vez que o cliente solicita o arquivo .asp, ele usa um método simples HTTP GET, mas quando o cliente adiciona dados ao campo do formulário na página e envia o formulário para si, o arquivo .asp será solicitado novamente, mas Os dados são passados através da postagem HTTP. A maneira como o arquivo é solicitado pode ser determinado de duas maneiras. Primeiro, teste se a coleta de formas contém membros. O segundo é usar a variável Request.ServerVariables (request_method). Se o formulário for solicitado via http get, essa variável retorna Get and Post se o formulário for enviado. Como o último método é mais direto na determinação do método de solicitação de um arquivo, usamos o seguinte código para fazer um julgamento:
se request.ServerVariables (request_method) = obtenha então
Como configuramos o cache ASP, quando o programa determina que o método de solicitação de página é GET, o programa executa a resposta. END para encerrar todas as operações subsequentes. execução do programa. Dessa forma, podemos usar o mesmo arquivo .asp para exibir diferentes interfaces para os clientes de acordo com diferentes situações.
Ok, eu disse que a parte principal deste programa de bate -papo ASP. Não fale no chat, você não verá o que outros clientes dizem. Todo mundo conhece o charme de bate -papo na Internet. Melhore gradualmente o nível deste programa de bate -papo para que todos também possam passar a versão oculta da Opera. Nota: Com este programa de bate -papo, você pode usá -lo para criar um aplicativo de bate -papo no seu PWS. Através do seu computador.