Quando você escreve aplicativos do lado do servidor usando ASP, você deve confiar nos componentes ActiveX para as funções de aplicativos da Web poderosos, como: você precisa se conectar ao banco de dados, operar o banco de dados on-line, etc.
Nos dois artigos anteriores, o autor introduziu os métodos de uso do Rotator, acesso ao banco de dados e outros componentes.
1. Os componentes dos recursos do navegador são bem conhecidos, e nem todos os navegadores suportam todos os aspectos da tecnologia da Internet de hoje. Existem alguns recursos que alguns navegadores suportam, mas outros não, como: Controles do ActiveX, fluxos de imagem, HTML dinâmico, Flash e programas de script. Usando o componente Recursos do navegador do ASP, você pode criar páginas da Web inteligentes para apresentar conteúdo em um formato que se adapte ao desempenho do navegador. O componente Recurso do navegador é capaz de criar um objeto BrowserType que fornece scripts do usuário com descrições funcionais do navegador da web do cliente. A razão pela qual esse componente pode reconhecer a versão do navegador do cliente é principalmente porque quando o navegador do cliente envia uma solicitação de página para o servidor, ele enviará automaticamente um título HTTP do agente do usuário, que é um caractere ASCII que declara o navegador e sua versão . corda. O componente Recurso do navegador mapeia o agente do usuário para o navegador indicado no arquivo Browscap.ini e identifica o navegador do cliente através das propriedades do objeto BrowserType. Se o objeto não conseguir encontrar um item que corresponda ao título no arquivo navegador.ini, as propriedades do navegador padrão serão usadas. Se o objeto não tiver uma correspondência encontrada e as configurações padrão do navegador forem especificadas no arquivo navegador.ini, ele define cada propriedade para a string desconhecida. Por padrão, o arquivo Browser.ini é armazenado no Windows/System/Inersrv (se 95/98+PWS4) ou NT/System32/inersrv (se nt), você pode editar este arquivo de texto para adicionar modificar o arquivo por arquivo por seus próprios atributos ou com base no último arquivo de atualização de versão do navegador lançado. Consulte o seguinte processo CheckCookie (), use o atributo Cookie do objeto BrowserCap para determinar se o navegador do cliente suporta cookies e retorna informações:
< %
Sub -checkcookie ()
SET BrowserCap = Server.CreateObject (MSWC.BrowserType)
Se BrowserCap.cookie = true então
Response.Write seu navegador suporta cookies!
outro
Response.Write Desculpe, o navegador que você está usando não suporta cookies!
final se
final sub
%>
Para obter mais informações sobre o componente dos recursos do navegador, consulte o design dinâmico do site de dezoito artes marciais-asp (2).
2. Componente de acesso ao arquivo Se você tiver idade suficiente na rede, deve ter visto o livro de visitas CGI na era dos dinossauros, que é o protótipo mais antigo do livro de visitas da web. Naquela época, era muito difícil conectar-se ao banco de dados de back-end do servidor em aplicativos da Web baseados na Internet; portanto, as informações históricas no livro de visitas não foram armazenadas no banco de dados de back-end como é hoje. Então, onde esses dados estão armazenados? A resposta é um arquivo de texto. As informações do cliente podem ser salvas, mas escrever esses programas CGI é muito pesado.
#!/usr/local/bin/perl
# Perl localização um seu servidor
IMPRIMENTO DE CONTEÚDO: TEXTO/PLINCELA/N/N;
if ($ Env {'request_method'} eqpost) {
Leia (stdin, $ buffer, $ Env {'Content_length'});
} elsif ($ Env {'request_method'} eqget) {
$ buffer = $ Env {'query_stirng'};
}
@pars = split (//, $ buffer);
foreach $ par (@pairs) {
($ nome, $ valor) = dividido (/=/, $ par);
$ valor = ~ tr/+//;
$ valor = ~ s/%([AF 0-9] [AF 0-9])/pack (C, Hex ($ 1))/EG;
$ Form {$ name} = $ value;}
$ FILE_NAME = VIVERSOBOOK.TXT;#Nome do arquivo
#Conteúdo Específico
Abrir (arquivo, >> $ file_name) || Erro de matriz na abertura do arquivo;
Imprimir tempo de registro do arquivo: $ data /n /n;
Nome do arquivo de impressão: $ form {'nome'};
Unidade de arquivo de impressão: $ form {'Company'}/n;
Telefone do arquivo de impressão: $ form {'telefone'}
Endereço do arquivo de impressão: $ form {'endereço'}/n;
Código postal do arquivo de impressão: $ form {'zip'}
IMPRIMIR ENDEREÇO DE EMPRIE DO ARQUIVO: $ Form {'Email'}/n;
Imprimir Arquivo Retornar Comentário: $ Form {'Content'}
fechar (arquivo)
Você pode sentir que, em comparação com o ASP, esse tipo de programa CGI é mais pobre em legibilidade e operabilidade. Então você deve perguntar se o ASP também pode gravar arquivos diretamente no servidor? A resposta é claro que sim. Mas os amigos inteligentes podem pensar que, como a conexão entre o ASP e o banco de dados da Web é tão conveniente, por que precisamos escrever informações do cliente em arquivos de texto? De fato, para os aplicativos comuns da Web, como livros de visitas e BBs, não podemos substituir o banco de dados por escrever arquivos de texto em termos de eficiência da execução do programa ou facilidade de uso, mas em alguns aplicativos da Web que escrevem arquivos de texto no campo é um padronizado e um Método relativamente conveniente em comparação com um banco de dados. Se você estiver familiarizado com o NT, deve saber que o NT possui um mecanismo de segurança muito poderoso, que pode salvar automaticamente quase todas as operações do servidor e informações de conexão em um arquivo com o nome do sufixo .Log Pode ser usado na Web para gravar algumas informações de login do cliente. O programa a seguir usa o recurso de arquivos de texto de leitura e gravação do ASP para criar uma função que registre automaticamente os registros de fala de cada usuário em um programa BBS da Web.
< %
Set fs = createObject (script.filesystemoBject)
Freading = 1
'Abra o arquivo no modo somente leitura. Este arquivo não pode ser escrito.
Forappender = 8
'Abra o arquivo e escreva -o no final do arquivo.
TristateUsedEfault = -2
Tristatetrue = -1
Tristatefalse = 0
'--------------------------------
servermap = server.mappath (/bbs/log/)
'Caminho físico do sistema de mapeamento
Temp = ServerMap &/& Year (data) e mês (data) e//
'Obtenha o caminho físico e o tempo do sistema e use -o como o caminho físico armazenado no arquivo de log
se não fs.polderexists (temp), então
fs.createfolder (temp)
final se
'Verifique se a pasta existe, caso contrário, será criada automaticamente
Dim syslog
Dim TempName
tempname = data
syslog = temp & tempname & .log
'O nome do arquivo é e:/bbs/log/mês/mês dia.log
li = usuário && agora && request.servervariables (remote_addr) && tempfile && letra && title
'Formato de registro do arquivo de log é: nome de usuário e tempo de envio e IP do usuário e caminho do arquivo e área de mensagem e título de carta
Se FS.FileExists (syslog), então
Set ss = fs.opentExtfile (syslog, forapinging, true)
outro
set ss = fs.createTextFile (syslog, forwriting, false)
final se
'Verifique se o arquivo de log existe.
ss.writeLine (l
eu)
ss.close
'--------------------------------------------------- -------------------------------------------------------- ------------------------------
%>
Se você não entende completamente o programa acima, ouça as instruções do autor. O componente de acesso ao arquivo fornece métodos e propriedades que podem ser usados para acessar o sistema de arquivos de um computador. Podemos usar o componente de acesso ao arquivo para criar um objeto FileSystemObject. Depois que o objeto é criado, você pode acessar o arquivo através dele. Existem dois métodos mais usados para o objeto FileSystemObject, um é usado para criar arquivos e o outro é usado para abrir, ler e gravar arquivos de texto. O método CreateTextFile obtém o nome do arquivo especificado e cria o arquivo.
Definir objTextStream = filesystemobject.createTextFile (nome do arquivo, [substituição], [unicode])
O autor explicará os parâmetros do método CreateTeTextFile abaixo
1. Nome do arquivo Uma sequência que contém o nome do caminho do arquivo pode ser o nome do caminho completo do arquivo, incluindo o nome da unidade e o nome do diretório, ou pode ser apenas um nome de arquivo. no diretório raiz do site.
2 Substituir a quantidade booleana. O nome será excluído.
3. Parâmetros opcionais unicode. Os valores booleanos indicam se deve criar um arquivo no formato de arquivo Unicode ou ASCII. Este valor é verdadeiro se um arquivo for criado no formato de arquivo Unicode e false se um arquivo for criado no formato do arquivo ASCII. Se esta seção for omitida, supõe -se que um arquivo ASCII seja criado.
No programa anterior, usamos SS = fs.createTextFile (syslog, forwriting, false) para criar um arquivo e gravar um arquivo quando o arquivo de log não existir.
Ao contrário do método CreateTextFile, o método OpenTextfile é usado para obter o nome do arquivo especificado e abrir o arquivo. para que você possa operar o arquivo após a abertura. A sintaxe do método OpenTextFile é o seguinte:
Definir objTextStream = filesystemObject.opentExtFile (nome do arquivo, [iomode], [create], [formato])
Os parâmetros são os seguintes:
1. O nome do arquivo é a variável necessária, igual ao nome do arquivo do CreateTextFile
2. Constantes opcionais do Ioma, com o valor como um dos dois constantes para forrear ou forpender.
3. Crie uma quantidade booleana opcional, especificando que operação é feita se o arquivo que você deseja abrir não existir. Se false, uma mensagem de erro será gerada quando o arquivo não for encontrado.
4. Valor opcional do formato, você pode selecionar três valores Tristate para especificar o formato do arquivo, respectivamente.
Depois de abrir ou criar um arquivo de texto, você recebe um objeto Textstream, que tem um cursor, assim como um cursor em um programa de processamento de texto, indicando onde o personagem a ser digitado aparecerá e também indica a localização do personagem que você deseja para ler. Você não pode criar um objeto TextStream através do CreatObject.
As propriedades e métodos do objeto Textstream estão listados abaixo
Textstream.a
TENDOFLINE SOMENTE REATIONAÇÃO Quantidade, quando o cursor está no final da linha atual, seu valor é verdadeiro, caso contrário, é falso
Textstream.atendofstream somente leitura Quantidade booleana, se o cursor estiver no final do fluxo, seu valor será verdadeiro, caso contrário, é falso
Textstream.column somente leitura inteira, contando o número de caracteres desde o início da linha até a posição atual do cursor
TextStream.Line somente leitura inteira indicando o número da linha da linha em todo o arquivo em que o cursor está localizado
Textstream.close () fecha o fluxo e o arquivo de texto correspondente
TextStream.read (num) Especifica que um certo número de caracteres é lido no arquivo de texto, começando pela posição atual do cursor.
Textstream.readall () lê o fluxo inteiro em uma string
Textstream.readline () lê toda uma linha de caracteres em uma string
Textstream.write (text) escreva uma string no fluxo
TextStream.WriteLine () grava uma sequência de texto no fluxo
Textstream.skip (num) em um fluxo, mova a posição do cursor por um certo número de comprimentos de string
Textstream.skiplines () em um fluxo, mova o cursor para um certo número de linhas
Textstream.writeblank escreve um certo número de linhas vazias no fluxo
Linhas (NUM)
Acredito que todos podem sentir as funções poderosas do componente de acesso a ASP. Para o servidor remoto, leia o arquivo através do componente de acesso ao arquivo e gerar automaticamente uma nova página HTML, sem precisar trabalhar duro para atualizar os arquivos HTML um por um. Se você estiver interessado, pode usar o componente de acesso ao arquivo da ASP para escrever seu próprio gerador HTML totalmente automático para aproveitar completamente a sensação avançada e fácil de manter o site.