Übungsblatt 1, Scanner für Mini-HTML Ergänzen Sie die JLex-Spezifikation aus der Vorlesung so, dass folgende HTML Lexemklassen <html>, </html>, <head>, </head>, <title>, </title>, <body>, </body>, <h1>, </h1>, <h2>, </h2>, <h3>, </h3>, <b>, </b>, <center>, </center>, <em>, </em>, <p> und </p> erkannt werden. Beachten Sie dabei, dass HTML gemischte Groß- und Kleinschreibung in Tags erlaubt (z.b. <CenTer>). Geben Sie als Action Anweisung zunächst jeweils einen Printaufruf an, der das gelesene Lexem wieder rausschreibt.
Übungsblatt 2, Parser für Mini-HTML 1. Vervollständigen Sie die jay Spezifikation aus der Vorlesung für Mini-HTML. 2. Erweitern Sie die JLex-Spezifikation so, dass die Aufrufe von yylex() das jeweilige durch jay Spezifikation bestimmte Token zurückgeben. 3. Erweitern Sie das Makefile aus der Vorlesung so, dass Sie damit den kompletten Parser compilieren können. 4. Testen Sie Ihr Programm für einige Mini-HTML Beispiele.
Übungsblatt 3, DOM Implementieren Sie das DOM für die Sprache Mini-HTML. Als Tags soll Mini-HTML <html>, </html>, <head>, </head>, <title>, </title>, <body>, </body>, <h1>, </h1>, <h2>, </h2>, <h3>, </h3>, <b>, </b>, <center>, </center> <em>, </em>, <p> und </p> umfassen. Implementieren Sie für jeden Tag jeweils eine Klasse als Subklasse der Klasse HTMLElement aus der Vorlesung. Geben Sie jeweils eine Klasse für die Interfaces CharacterData, Text und Comment an. Die Klassen sollen jeweils Subklassen von HTMLElement sein. (optional) Implementieren Sie die Interfaces NamedNodeMap und Attr. Implementieren Sie für jede Klasse analog zu den Klassen aus der Vorlesung eine Methode void print() die den zur Datenstruktur gehörigen Mini-HTML Code ausgibt. Testen Sie ihre Implementierung, indem Sie folgendes Beispiel analog zum Beispiel der Vorlesung (Klasse Main) als DOM aufbauen und die print Methode der Klasse HTML aufrufen. <html> <head> <title>bsp</title> </head> <body> <h1>1. Headline</h1> <h2>2. Headline</h2> <h3>3. Headline</h3> <center>centered</center> <em>emphasized</em> <b>bold</b> </body> </html>
Übungsblatt 4, Mini-HTML Browser (Testat), Abgabetermin: 9. Novemer 2004 Programmieren Sie einen HTML Browser, der als Tags <html>, </html>, <head>, </head>, <title>, </title>, <body>, </body>, <h1>, </h1>, <h2>, </h2>, <h3>, </h3>, <b>, </b>, <center>, </center> <em>, </em>, <p> und und und </p> akzeptiert. Beachten Sie dabei, dass HTML gemischte Groß- und Kleinschreibung in Tags erlaubt (z.b. <CenTer>). Hiweise: Ergänzen Sie die Action Anweisungen der jay Spezifikation von Blatt 2 um Kontruktorund Methodenaufrufe, die die jeweiligen DOM Objekte (vgl. Blatt 3), des eingelesenen Mini-HTML Files aufbauen. Ergänzen Sie die DOM Klassen um Layoutmethoden, die das gespeicherte Mini- HTML File grafisch darstellen. Optional: Erweitern Sie das Mini-HTML um das Tag <a>, wobei <a> grundsätzlich das Argument href hat. Bei der Bildschirmdarstellung soll das Tag als Button mit einem Actionlistener dargestellt werden. Wenn der Button angeklickt wird, soll ein neues Fenster geöffnet werden, in dem die durch href definierte Datei dargestellt wird.
Übungsblatt 5, Erste Schritte in php 5.1 Arrays Schreiben Sie ein php Skript, das zunächst für die Zahlen 1 bis 10 die Zahlen 1! bis 10! in ein array schreibt. Geben Sie danach alle Inhaltes des Arrays auf dem Browser aus. 5.2 Objekte Programmieren Sie eine HTML/php Seite, die eine Notenübersicht über alle im System befindlichen BA Studenten ausgibt. 1. Erweitern Sie dazu die in der Vorlesung kennengelernte Datenstruktur des BAStudenten, um eine Zuordnung von Fächern und Noten als Array. 2. Schreiben Sie eine Initialisierungsfunktion, die einige BAStudenten in das System einpflegt. 3. Drucken Sie die Namen und die zugeordneten Noten auf dem Bildschirm aus. 4. Geben Sie auf der Seite jeweils das aktuelle Datum als Stand aus.
Übungsblatt 6, Coockies Programmieren Sie eine Web Seite mit beliebigen geschützten Inhalten. Zusätzlich soll es eine Seite geben, die das Password abfragt. Wenn der Benutzer das Password korrekt eingegeben hat, soll er auf die geschützte Seite gelangen. Die geschützte Seite soll einen Link auf sich selber haben. Dieser soll die Seite wiederum anzeigen, ohne dass das Passwort erneut eingegeben werden muss. Realisieren Sie den Seitenschutz mit Hilfe eines Cookies. Hinweise: Auf der Startseite soll ein zufälliger Cookie (Zufallsgenerator mt rand(min, max)) gesetzt werden. Merken Sie sich den Wert des Cookies in einer Variablen. Übergeben Sie jeweils beim Aufruf der geschützten Seite die Variable und vergleichen Sie den Variableninhalt mit dem Cookieinhalt. Nur wenn beide Werte übereinstimmen, zeigen Sie den Inhalt der geschützten Seite an. Experimentieren Sie mit zeitlich begrenzten Cookies.