Przykłady użycia

Obiektowy język definiowania dokumentów hipertekstowych i jego implementacja.

ObjectHTML

Wstęp - geneza, zastosowania
Opis podstawowych pojęć
    Internet
    IP
    TCP
    HTTP
    WWW
    HTML
    URL
    Pozostałe usługi
Definicje
Inne rozwiazania
    Wprowadzenie
    ASP
    JSP
    PHP
    Homesite
    Microsoft FrontPage
Projekt języka
    Struktura leksykalna
    Komentarze
    Typy atrybutów i zmiennych
    Podstawowe składowe programu
    Deklaracje
    Klasy
    Metody
    Atrybuty
    Grupy
        Wprowadzenie
        Definicja
    Instrukcje
        $
        [ ]
        call
        set
        append
        incr
        if
        while
        for
        currenttime
        encode
        import
        export
        grmembers
        grname
        grparent
        lastwordin
        firstwordin
        beforeword
        afterword
        query
    Wyrażenia i operatory
    file
    image
    include
    Gramatyka
Wywołanie kompilatora
Program narzędziowy makedefs
    Geneza i ogólny opis
    Uruchamianie
    Przykłady użycia ->
Opis implementacji
    Drzewo programu / kompilator
    Opis najważniejszych klas
Przykładowa aplikacja
Podsumowanie
Literatura

Przykłady użycia

Poprzednia strona: Uruchamianie
Nastepna strona: Drzewo programu / kompilator

Pliki nagłówkowe wygenerowane przy pomocy makedefs mogą być wykorzystane w projektach CGI, specjalistycznych modułach serwera HTTP lub portalach zbudowanych w technologiach ASP, PHP. Stałe zdefiniowane przez program konwertujący będą użyte do generacji dynamicznych stron HTML.

Przykładowa zawartość pliku do konwersji:

<!--MYDEF htmlbegin-->
<html>
<head>
<title>tutuł strony</title>
</head>
<body>

<!--ENDMYDEF-->
<!--MYDEF htmlend-->
</body>
</html>

<!--ENDMYDEF-->

Plik wynikowy konwersji do C++ będzie miał następującą zawartość:

const char *htmlbegin = "<html>\n<head>\n<title>tutuł strony</title>\n</head>\n<body>\n"
const char *htmlend = "</body>\n</html>\n"

Korzystanie z tak zdefiniowanych stałych jest trywialne. Najprostszy program napisany w C i korzystający z interfejsu CGI do komunikacji z serwerem WWW może mieć następującą postać:

#include <stdio.h>
#include <index.h>

int main(int argc, char *argv[])
{
	printf("Content-type: text/html\n\n");
	printf("%s",htmlbegin);
	printf("Hello world\n");
	printf("%s",htmlend);
}

Dzięki takiemu rozwiązaniu kod HTML może być oddzielony od kodu programu. Zmiany w układzie strony nie będą wymagały żadnych zmian w programie, będzie potrzebna tylko jego rekompilacja.

Takie podejście to generacji dynamicznych stron przy wykorzystaniu stałych tekstowych ma jeszcze jedną dodatkową zaletę: szybkość działania. Proszę zauważyć, że stałe są bezpośrednio wypisywane na standardowe wyjście, które jest przekierowane do serwera WWW, a następnie wysyłane do przeglądarki. Dla kontrastu proszę wyobrazić sobie powszechnie stosowane rozwiązanie korzystania ze wzorców (ang. template), gdzie wzorzec strony HTML jest zapisany w pliku. Program korzystający z takiego wzorca musi na początku wczytać taki plik, a następnie go przetworzyć. Polega to na zamianie parametrów wzorca na właściwą treść, operacja zamiany części tekstu na inny jest dosyć czasochłonna.

Listopad 2000