Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
Páginas estáticas com o WebBroker
A idéia deste artigo surgiu de uma necessidade pessoal: tenho uma página sobre Delphi na Internet (www.revolution.com.br/delphistop/indexp.html) que contém diversos links. Estes links estão organizados por páginas (pessoais, comerciais, Borland, etc) e, por sua vez, ordenados em ordem alfabética. |
Cada página tem sua correspondente em inglês, com os mesmos links da página em português. Com a mobilidade da Internet é relativamente freqüente a inclusão, exclusão ou alteração de links. Para poder alterar ou inserir um link na página, deve-se localizar em que página o link irá ficar, encontrar sua posição alfabética e inseri-lo. Deve-se, então, fazer a mesma coisa com a página em inglês.
Quando as páginas não contêm muitos links, essa é uma tarefa simples, mas quando o número de links começa a se avolumar, passa a ser um processo mais demorado. Assim, inserir
Alternativas
A primeira idéia que apareceu foi usar os componentes do Delphi para gerar páginas dinâmicas, numa aplicação CGI ou DLL ISAPI, mas esta idéia logo foi descartada pelos seguintes motivos:
• Os dados não se alteram com freqüência – atualizações feitas uma vez por semana são suficientes.
• O programa geraria sempre os mesmos dados.
• O programa seria ativado cada vez que uma página fosse necessária (no caso de CGI).
• O provedor poderia estar usando Windows, mas não aceitar programas CGI ou ISAPI.
• O provedor poderia não aceitar a instalação da BDE.
• O banco de dados deveria ficar no servidor, exigindo manutenção remota.
O uso de páginas estáticas evita esses problemas e, como não é necessária a atualização freqüente, poderíamos gerar as páginas localmente, enviando-as ao servidor via FTP. A segunda idéia é criar um programa que gere as páginas manualmente, gerando um arquivo HTML. A geração de páginas HTML via programação é uma tarefa relativamente simples, mas o programa poderia tornar-se um pouco difícil de ser mantido, especialmente com o aumento das páginas a serem geradas.
A idéia seguinte foi o uso dos componentes WebBroker do Delphi para gerar as páginas estáticas. Dessa maneira, temos a facilidade e flexibilidade de criação de páginas possibilitada pelo Delphi, além de gerarmos as páginas localmente. Outra vantagem é que o WebBroker é compatível com o Kylix, viabilizando a obtenção das páginas também no Linux.
WebBroker
Os componentes WebBroker localizam-se na guia Internet da paleta de componentes, mostrada na Figura 1.
Figura 1. Guia Internet da paleta de componentes
Para se criar uma nova aplicação para a Internet, usa-se o componente TWebModule, um componente semelhante ao TDataModule, mas capaz de responder a requisições HTTP. Esta característica também pode ser obtida colocando-se um componente TWebDispatcher num DataModule. A partir daí, colocamos os outros componentes para a geração de páginas, como o TPageProducer, o TDatasetPageProducer ou o TDatasetTableProducer.
TPageProducer
O TPageProducer é um componente que, a partir de um modelo que pode estar num arquivo ou ser digitado na sua propriedade HTMLDoc, substitui partes do conteúdo, gerando uma página HTML. Para que o texto seja substituído, o modelo deve conter rótulos especiais. Estes rótulos deverão estar cercados por < e > e o primeiro caractere deve ser a cerquilha (#), seguida pelo nome do rótulo. Um exemplo de rótulo válido é <#DATA>.
Quando o componente TPageProducer encontra um rótulo, ele ativa o evento OnHtmlTag. Criando um manipulador para este evento, você pode substituir os dados conforme sua necessidade. Por exemplo, se a propriedade HTMLDoc estiver preenchida com:
<HTML>
<HEAD>
<TITLE>Páginas estáticas com WebBroker</TITLE>
</HEAD>
<BODY>
A data atual é : <#DATA>
</BODY>
...