Pascal para Web com CGI - Parte I

Vamos ver como é fácil programar para Web com Pascal através de CGI. Recomendo àqueles que curtem a linguagem e nunca se viram programando para Web com ela, ou gostariam de aproveitar seu conhecimento para atuar com aplicações Web e/ou sites.

[ Hits: 48.614 ]

Por: Zendrael em 04/07/2012


Criando o primeiro CGI



Hora de iniciarmos nosso projeto! Vá em: Project -> New project

Na janela de seleção de projetos, escolha "CGI Application".
Com isso teremos em nossa tela um WebModule e o editor de códigos, juntamente com o Object Inspector que nos auxiliará a criar os eventos que nosso CGI vai receber e tratar.

Hello World para a Web

Para o nosso "Hello World" funcionar, temos que criar uma ação que será chamada em nosso CGI. Esta ação é quem vai gerar uma resposta e retornar para o servidor para que seja exibida no browser.

São alguns simples passos para que possamos, então, ver nossa primeira aplicação Web em funcionamento:

Selecione o "WebModule" e vá ao "Object Inspector". Nele, clique nos "..." que aparecem na frente do item "Actions":
Na janela que abrir, adicione uma ação clicando no botão "Add".
Com o item recém criado selecionado, volte ao Object Inspector e altere sua propriedade "Name" para "acao1". Vá na aba "Events do Object Inspector" e dê um duplo clique no item "OnRequest".

A janela de edição de código será ativada e será criado automaticamente o procedimento a seguir:

procedure TFPWebModule1.acao1Request(Sender: TObject; ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
begin
end;

Dentro deste procedimento vamos criar o retorno HTML do CGI quando a ação "acao1" for chamada. Devemos determinar qual o tipo de retorno (normalmente text/html) e o que for adicionado depois disso já será interpretado pelo navegador, desde texto comum até tags HTML, códigos CSS e JavaScript.

Vamos alterar para o seguinte:

procedure TFPWebModule1.acao1Request(Sender: TObject; ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
begin

//tipo de resposta (header)
AResponse.ContentType:= 'text/html';

//conteúdo a ser mostrado
AResponse.Content:= '<h1>Olá Web!</h1>';

//informa o CGI de que a ação foi realizada
Handled:= True;
end;

Note que utilizamos a variável "AResponse" para gerar o nosso retorno. Esta é a maneira pela qual o FPWeb trabalha. Tudo o que for alterado nesta variável será interpretado pelo navegador quando for retornado automaticamente ao final da execução da rotina.

O Handled garante que tudo foi executado e o processo pode ser concluído liberando memória no servidor.

Hora de salvar o projeto no local de sua preferência. Lembrando que o nome do projeto tem que ser diferente do nome da Unit principal. Aqui vou chamar apenas de "projeto" e a Unit principal de "main".

Feito isso, vamos compilar somente com: Run > Build.

Se houver algum problema, sugiro que volte aos passos anteriores.

Testando o CGI

Agora é hora de testar nosso CGI e verificar seu retorno. Copie o executável gerado do local onde salvou seu projeto e coloque na pasta cgi-bin do seu servidor.

Tenha certeza de que seu servidor está rodando e dê permissão 755 para o seu executável. Não se assuste com o tamanho do binário! O Lazarus salva informações de debug com ele que podem ser retiradas, depois diminuindo o tamanho.

Abra o navegador de sua preferência e acesse:
  • http://127.0.0.1/cgi-bin/projeto/acao1

Aê! Funcionou! Seu primeiro CGI com Object Pascal está funcionando!

O leitor deve ter notado que após o nome do projeto, é colocada uma "/", e em seguida o nome da ação que foi definido anteriormente.

É possível criar N ações diferentes e até N WebModules para sua aplicação ou site. Tudo dependerá da complexidade do que for fazer.

E pela variável "AResponse", podemos gerar quase qualquer tipo de conteúdo, carregar arquivos HTML, imagens etc.

Mas há também uma tal "ARequest"... O que ela faz?

Se chegou até aqui com tudo funcionando, hora dos próximos passos!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Preparando o ambiente
   3. Criando o primeiro CGI
   4. Tratando parâmetros e formulários
   5. Conclusão
Outros artigos deste autor

Introdução ao PHP-GTK

Pascal para Web com CGI - Parte II

Leitura recomendada

Pascal para Web com CGI - Parte II

Configurando o Apache para executar CGIs em Kylix

Executando sua aplicação Kylix fora do Kylix

Integrando saídas de comandos shell com sua aplicação Kylix

Criando aplicação para detectar informações do sistema em Kylix

  
Comentários
[1] Comentário enviado por rony_souza em 04/07/2012 - 20:59h

MUITO BOA DICA AMIGO!!!

BELA POSTAGEM....


[2] Comentário enviado por zendrael em 05/07/2012 - 09:21h


[1] Comentário enviado por Scyther Kazpor em 04/07/2012 - 20:59h:

MUITO BOA DICA AMIGO!!!

BELA POSTAGEM....



Obrigado Scyther!
Aguarde a segunda parte em breve!
Até +

[3] Comentário enviado por [email protected] em 03/10/2012 - 21:34h

Excelente Artigo !!

[4] Comentário enviado por ivomar em 29/01/2015 - 16:52h


Excelente artigo!

Obs: quando executo meu cgi ele tenta fazer download. Alguma dica?

[5] Comentário enviado por zendrael em 29/01/2015 - 22:16h


[4] Comentário enviado por ivomar em 29/01/2015 - 16:52h


Excelente artigo!

Obs: quando executo meu cgi ele tenta fazer download. Alguma dica?


Oi ivomar!

Confira as configurações do seu apache e do diretório cgi-bin.

Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts