stimmt, wie sie im Duden stehen. Zur Syntax g

Werbung
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 248
1 Die Syntax der deutschen Sprache wird durch die Rechtschreibregeln bestimmt, wie sie im Duden stehen. Zur Syntax gehören sowohl die Vereinbarung über eine bestimmte Schreibweise der Worte, als auch die Vereinbarung
zur Zeichensetzung im Satzaufbau. Vereinbarungsgemäß geschriebene Worte
bezeichnen wir als korrekt geschrieben. Die Satzzeichen helfen uns beim Verständnis. Bsp.: „Zehn Finger habe ich, an jeder Hand fünf und zwanzig an
Händen und Füßen.“ Oder „Zehn Finger habe ich an jeder Hand, fünfundzwanzig an Händen und Füßen.“
Die Semantik befasst sich mit der Bedeutung der Zeichen oder Zeichenfolgen, eigentlich mit der Bedeutung der Worte in unserer Sprache. Zur Semantik gibt es kaum feste Vereinbarungen, besonders nicht in der Umgangssprache, wo sich die Bedeutung durch kulturhistorische Einflüsse verschieben
kann (Droschke oder Taxi). In der Wissenschaft versucht man die Begriffe in
ihrer Semantik durch eindeutige Definitionen festzuschreiben. In der Umgangssprache hilft meist der Kontext. (ein Bit im Computer oder ein Bit im
Glas).
2
Struktur
Möglichst im Format DIN A6. Natürlich befördert die Post auch andere
Objekte, aber meistes zu besonderen Preisen.
Inhalt
Ihre eigentlichen Urlaubsgrüße (Wetter gut, Essen gut, Freundschaft
gut) und auf der anderen Seite ein schönes Foto, damit sich ihre Eltern
vorstellen können, wie schön ihr Urlaubsort aussieht.
Gestaltung Sie ist für die ordnungsgemäße Zustellung wichtig. Links stehen der
Inhalt und rechts die Adresse. Meistens sind dafür schon Zeilen
vorgedruckt. Bei Postkarten aus dem Ausland nach Deutschland sollte
neben der Adresse auch das Zielland „Germany“ angegeben sein.
3 Wir wollen einen WebService für die Datenkommunikation mit den Niederlassungen der ACI GmbH aufbauen und dabei die Software „Tomcat“ als Server
zum Betrieb der WebServices nutzen. Zu Aufbau und Funktion von WebServices wurde im 3. Kapitel noch nichts gesagt.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
4 Als OSI-Modell (Open Systems Interconnection Model) wird das Schichtenmodell der Internationalen Standardisierungsorganisation (ISO) bezeichnet. Die
Aktivitäten zur Kommunikation zwischen Sender und Empfänger wurden dazu
auf sieben aufeinander aufbauende Schichten (layer) aufgeteilt. Für jede
Schicht existiert eine exakte Beschreibung der zu erbringenden Leistungen.
Man unterscheidet Anwendungsschicht, Darstellungsschicht, Sitzungsschicht,
Transportschicht, Vermittlungsschicht, Sicherungsschicht und Übertragungsschicht.
Beim Senden durchläuft die Nachricht die Schichten von der Anwendungsschicht bis zur Übertragungsschicht und wird dabei immer weiter ergänzt
(„verpackt“) um technische Informationen, wie sie in dem jeweils anzuwendenden Protokoll vereinbart sind. Nach der physischen Übertragung wird die
Nachricht beim Empfänger wieder Schicht für Schicht von der Übertragungsschicht bis hin zur Anwendungsschicht „ausgepackt“, von den notwendigen
technischen Details bereinigt und in einer dem Anwender verständlichen Form
bereitgestellt.
5 Die eigentliche Nachricht des Senders für den Empfänger muss für die technische Übertragung mit zusätzlichen Informationen (Art der Codierung, Adresse, Reihenfolge der Pakete, Abrechnungsdaten, Prüfsummen etc.) ergänzt
(„verpackt“) werden. Nach dem Empfang einer Nachricht muss der Empfänger
die Nachricht nach den gleichen Regeln wieder auspacken. Über diese Regeln
muss Einverständnis bestehen. Das Einverständnis basiert auf einem gemeinsamen Protokoll.
Wir versenden Briefe allgemein (laut DIN-Protokoll) auf A4-Bögen, zusammengefaltet und in Umschlägen verpackt. Deshalb wird ein Briefumschlag
nach dem Empfang auf einer Seite geöffnet. So bleibt der A4-Bogen als Inhalt
unverletzt. Würden wir Briefe auf Papierschnipsel schreiben und diese im Umschlag versenden, könnten wir nach dem Empfang den Umschlag auch irgendwie in der Mitte durchreißen. Schlimmstenfalls hätten wir ein paar
Schnipsel mehr.
6 Unbewusst sind wir uns einig, dass wir unsere Nachrichten in deutscher Sprache formulieren und sie in einer der Größe des Raumes angemessenen Lautstärke versenden, wobei der Sender den Blickkontakt zum Empfänger sucht.
Bewusst vereinbart wird das Handzeichen der Schüler. Sie melden sich und
erhalten dann durch ein Zeichen des Lehrers die „Sendeerlaubnis“.
7 „Wenn einer redet, haben die anderen zu schweigen.“ So lautet ein Kommunikationsprotokoll unserer Gesellschaft. Der Lehrer erteilt ihnen die Redeerlaubnis. Wenn das nicht eingehalten wird, reden alle durcheinander. Um seine
Nachricht zum Empfänger zu bringen (um sich Gehör zu verschaffen) redet
jeder Sender immer lauter, versucht vielleicht mit Gesten auf sich aufmerksam zu machen oder mit Gewalt andere zum Schweigen zu bringen. Und alles
versinkt schließlich im Chaos.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 263-264
1 Verwenden Sie im Menü des Browsers den Menüpunkt „Ansicht/Quelltext
anzeigen“. Aktivieren Sie gegebenenfalls im verwendeten Editor den Zeilenumbruch.
Das Ergebnis der Anzeige wird hier nicht dargestellt, da es jederzeit reproduzierbar ist.
Versuchen Sie in dem Quelltext die bekannten HTML-Strukturen <HEAD>
und <BODY> sowie das Formular <FORM> zu erkennen.
2
Text-Datei aus MS-Word è HTML aus MS-Word ç
<html xmlns:o=”urn:schemas-microsoftcom:office:office”
xmlns:w=”urn:schemas-microsoftcom:office:word”
xmlns=”http://www.w3.org/TR/REC-html40”>
<head>
<! Plus diverse meta-Tags >
<title>HTML aus MS-Word</title>
Generierter Text in
<xml>
HTML, stark gekürzt,
gekennzeichnet durch
den Hinweis: „plus
diverse…“
<! Plus diverse Parametern in XML>
</xml>
<style>
<! Plus diverse Style Definitions >
</style>
</head>
<body lang=DE style=’tab-interval:35.4pt’>
<div class=Section1>
<p class=MsoNormal>HTML aus MS-Word</p>
</div>
</body>
</html>
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
3 Ein HTML-Quelltext ist stets eingeschlossen in die <HTML>-Tags und enthält
als Hauptbestandteile den <HEAD> und den <BODY>.
<!doctype html public “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<
title>Lösung</title>
<meta name=”author” content=”Ringhand”>
<meta name=“keywords“ content=“Grundstruktur“>
</head>
<body text=”#000000” bgcolor=”#FFFFFF” link=”#FF0000”>
Anzeige
</body>
</html>
4 Das World Wide Web Consortium (abgekürzt: W3C) ist das zentrale Gremium zur Festlegung von Techniken für das World Wide Web. Beispiele für
Empfehlungen durch das W3C sind HTML, XML und CSS. Auch wenn das
W3C zahlreiche De-facto-Standards hervorgebracht hat, so ist das W3C doch
keine international öffentlich und politisch anerkannte Organisation und daher nicht berechtigt, offizielle Normen festzulegen.
5 Elemente eines HTML-Quelltextes bezeichnet man als „Tags“ und gekennzeichnet werden sie durch den Einschluss in spitze Klammern: <HTML-Tag>.
Ob die Schreibweise groß oder klein ausfällt, ist unerheblich.
6 HTML bietet zahlreiche Möglichkeiten der Textformatierung. Man kann
Schriftart, Schriftgröße, Schriftschnitt und Schriftfarbe ähnlich wie bei der
Zeichenformatierung unter Microsoft Word wählen. Auch Absätze sind definierbar und formatierbar.
7 Ein Link steht für Hyperlink, einer Verknüpfung aus einer HTML-Datei zu
einer anderen HTML-Datei oder für eine Dateiverknüpfung als Verweis auf
eine Datei.
8 HTML bietet zahlreiche Möglichkeiten zur farblichen Gestaltung. Die Schriftfarbe oder die Hintergrundfarbe können gewählt werden. Die Farbe wird
nach dem RGB-Schema als sechsstellige Hexadezimalzahl angegeben
(#FF0000 = rot), oder durch englischsprachige Konstante: red
9
<TABLE> </TABLE>
Beginn und Ende der Tabelle
<TR>
</TR>
Beginn und Ende einer Tabellenzeile (row)
<TD>
</TD>
Beginn und Ende einer Tabellenzelle innerhalb der Zeile
10 Ein Stylesheet ist eine abgegrenzte Formatdefinition. Wichtig ist die Trennung von Inhalt und Darstellung. Mit Stylesheets ist eine Arbeitsteilung bei
der Web-Entwicklung möglich. Designer legen die Formatierung fest und
Content Manager bestimmen den Inhalt. Beispiele für Stylesheet-Sprachen
sind CSS und XSL.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
11 Formulare dienen unter HTML zur Kommunikation der Webseite mit einem
Anwender. Sie vereinfachen die Erhebung von Daten <INPUT-Tag>, sorgen
für Vollständigkeit sowie Datenintegrität und schützen vor Mehrdeutigkeiten
durch Auswahllisten, die bei freier Wortwahl oder in einem formlosen Antrag
auftreten können.
Leider existiert in HTML keine Möglichkeit, Formularinhalte selber auszuwerten. Formulare in HTML können nur Inhalte sammeln und müssen diese Daten dann an andere Instanzen weiterleiten (Servlet oder PHP-Programm).
Mit einem Formular kann man eine E-Mail versenden oder die Daten zur
Auswertung an Programme auf dem Server übergeben.
12 In jedem HTML-Formular muss im Pflichtattribut „action“ angegeben werden,
an welchen Uniform Resource Identifier (URI, deutsch: einheitlicher Bezeichner für Ressourcen) die Formulardaten beim Absenden des Formulars zu
übertragen sind. Der URI wird hauptsächlich eine Referenz auf ein Programm
auf dem Server-Rechner sein, das die Formulardaten weiterverarbeitet und
damit die Aktion ausführt.
Auch die Angabe eine E-Mail-Adresse als Wert für das Attribut „action“ ist
möglich, z. B.: action=mailto:[email protected]
Die Angabe erfolgt zusammen mit den Attributen:
• method = post
• enctype = text/plain
Bei Angabe von action = “mailto: …” wird der Browser die Formulardaten
an die angegebene E-Mail-Adresse versenden.
13 Nach der Empfehlung des W3-Konsortiums ist die get-Methode dann zu wählen, wenn das auswertende Programm die Daten nur zur Ablaufsteuerung
benötigt, z. B. zur Anmeldung oder für eine Suche. Mit der post-Methode
können größere Datenmengen übermittelt werden.
Die Übertragungsmethode von Google ist aus dem Quelltext der Anzeige
nicht ablesbar. Erkennbar ist aber (siehe Aufgabe 1), dass der Browser die
Formulardaten als Parameter an die Aufrufadresse anhängt. Die Angabe der
get-Methode ist dabei nicht zwingend erforderlich, da get als Standardeinstellung vordefiniert ist.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
14
Das Herkunftsland Deutschland (hl=de), der Suchbegriff (q=Westermann) und die
Art der Anfrage (btnG=Google-Suche) werden übermittelt. Diese Anzeige ist nur
ganz kurz sichtbar nach Betätigung des Such-Buttons und vor Anzeige der Ergebnisse.
15 Auch die Angabe eine E-Mail-Adresse als Wert für das Attribut „action“ ist
möglich, z. B.: action=mailto:[email protected]
Die Angabe erfolgt zusammen mit den Attributen method = “post” und
enctype = “text/plain”. Bei Angabe von action = “mailto: …” wird der
Browser die Formulardaten an die angegebene E-Mail-Adresse versenden.
16 Es gibt drei Möglichkeiten zur Darstellung einer Auswahlliste:
1. Radio-Buttons = alternative Auswahl: Hier kann nur ein Element
ausgewählt werden.
<p><input type=“radio” name=“Ktyp”
value=“Stammkunde”> Stammkunde<br>
<input type=“radio” name=“Ktyp”
value=“Neukunde”> Neukunde<br>
<input type=“radio” name=“Ktyp”
Innerhalb eines Absatzes <p>
können mehrere Radio-Buttons
angezeigt werden. Nur ein Button
kann ausgewählt werden. Der
ausgewählte Wert (value =) wird
dem Parameter zugeordnet.
value=“Mitarbeiter”> Mitarbeiter
</p>
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
2. Checkboxes = Mehrfachauswahl. Hier können gleichzeitig mehrere
Elemente ausgewählt werden.
<p>
<input type=“checkbox”
name=“Agrup” value=“hw”> Hardware<br>
<input type=“checkbox”
name=“Agrup” value=“sw”> Software<br>
Innerhalb eines Absatzes <p>
können mehrere Auswahlfelder
angezeigt werden, wovon mehrere
ausgewählt werden können. Die
ausgewählten Werte (value =)
werden dem Parameter
zugeordnet.
<input type=“checkbox”
name=“Agrup” value=“li”> Literatur
</p>
3. Listboxes = Listenauswahl: Hier kann aus einer Liste nur ein Element
ausgewählt werden
<select name=“feld5”>
<option value=“1”>Anton</option>
<option value=“2”>Berta</option>
<option value=“3”>Caesar</option>
<option value=“4”>Dorle</option>
In einer Listbox werden die
angegebenen Werte zur Auswahl
gestellt. Nur ein Wert kann
ausgewählt werden. Der
ausgewählte Wert (value =) wird
dem Parameter zugeordnet.
</select>
17 Es wird ein <INPUT>-Tag mit dem type=”button” dazu benötigt.
<INPUT type=“button” name=“Objektname” value=“Beschriftung”
onclick=“Besondere Aktion bei Betätigung”>
18 Der eingegebene Wert wird für die Übermittlung diesem durch den Namen
identifizierten Formularelement zugeordnet und in der Form
„Elementname=Eingabewert“ übertragen.
Seite 267
1 Eine Metasprache ist eine übergeordnete Sprache, d. h. eine Sprache zur Beschreibung anderer Sprachen. Durch die Metasprache wird die Syntax der anderen Sprache formal korrekt beschrieben.
2 Die Backus-Naur-Form, kurz BNF, ist eine kompakte formale Metasprache unter Verwendung folgender Symbole: Klammern, Listentrennzeichen, Striche
und Wiederholungszeichen [ ] { } ; | ... .
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
3
4 XML steht für „Extensible Markup Language“ und ist wie HTML aus der Metasprache SGML abgeleitet. Die Sprache SGML steht für „Standard Generalized
Markup Language“ und wurde 1986 standardisiert als ISO 8879.
5 Die Gültigkeit von XML-Dokumenten nach einer Datenübertragung kann
überprüft werden, wenn das Format mittels einer Grammatik, einer Dokumenttypdefinition (DTD) oder eines XML-Schemas definiert ist. So sind Übertragungsverluste oder Verfälschungen bei der Dokumentenübermittlung erkennbar. Standardmäßig gilt ein XML-Dokument als gültig, wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format einhält.
6 Die DTD-Datei enthält eine Dokumenttypdefinition zu einer XML-Datei, aus
der die Datentypen der einzelnen Elemente ablesbar sind.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
7 Alternativ zur DTD kann auch ein so genanntes XML-Schema zur Beschreibung der Struktur eines XML-Dokuments verwendet werden. XML-Schema
wurde vom W3C als neuer Standard entwickelt, weil sich mit der DTD die
Datenstruktur oft nur unzureichend beschreiben lässt, da Angaben über Datentypen und Wertebereiche gar nicht oder nur minimal vorhanden sind.
Dies macht sich insbesondere bei der Verwendung von XML als Datenaustauschformat negativ bemerkbar, was z. B. bei vielen E-Business-Lösungen
der Fall ist.
Das XML-Schema erweitert die Sprachmöglichkeiten von DTDs erheblich und
gestattet die Definition von eigenen Datentypen, das Ableiten neuer Datentypen aus vorhandenen, die Wiederverwendung von Datentypen aus anderen Schemata sowie die eindeutige Spezifizierung der Dokumentstrukturen.
Ein weiterer Vorteil von XML-Schema gegenüber DTDs besteht darin, dass
ein XML-Schema selbst in der XML-Syntax verfasst wird.
8 Für die Schaffung wohlgeformter XML-Dokumente gibt es einige Regeln:
•
Jedes Dokument besitzt genau ein Wurzelelement.
•
Alle Elemente mit Inhalt haben eine Beginn- und eine End-Kennung
(tags).
•
Leere Elemente ohne Inhalt können auch nur aus einer Kennung (tag)
bestehen, die jedoch mit einem Slash am Ende ( /> ) abschließt.
•
Beginn- und End-Kennungen (tags) sind immer paarig und können ineinander geschachtelt sein.
•
Ein Element darf nicht mehrere Attribute mit gleichem Namen besitzen.
9 Das „Verstehen“ einer XML-Datei im menschlichen Sinne ist eigentlich nicht
notwendig, denn XML-Dateien dienen allein der Kommunikation von Computer zu Computer. Für die formal korrekte Interpretation der XML-Dateiinhalte
sind im Computer entweder die Dokumententypdefinition (DTD) oder ein
XML-Schema notwendig.
10 Bei der Benutzung von XML gilt es zu beachten, dass XML nicht allein verwendet werden kann, sondern auf einen Parser angewiesen ist, vergleichbar
einem Interpreter bei prozeduralen Programmiersprachen. Bei XML ist ein
Parser diejenige Software, die XML-Strukturen ausliest, analysiert und nachgeschalteter Software zur Verfügung stellt. Ein XML-fähiger Browser besitzt
beispielsweise ein eigenes Softwaremodul, das den Parser darstellt. Im Parser wird die Baumstruktur der XML-Daten analysiert. Ein erfolgreiches Analysieren dieser Struktur ist die Voraussetzung für eine korrekte Darstellung
bzw. Wiedergabe der Daten.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
11 Einer XML-Datei fehlen Angaben darüber, wie die Daten darzustellen sind.
Die Daten sind völlig unabhängig vom Ausgabemedium (Bildschirm, Display,
Lautsprecher, Drucker), sie enthalten keinerlei Angaben zur Formatierung
(Schriftart, Schriftgröße, Farben usw.). Der Browser besitzt im Gegensatz zu
HTML-Daten, für deren Darstellung angegebene Formatwerte existieren, bei
XML-Daten keine Anhaltspunkte zu deren Darstellung.
Bevor XML-Daten präsentiert werden können, müssen mit Hilfe einer StyleSprache Festlegungen zur Formatierung dieser Daten getroffen werden. Dazu stehen heute zwei Formatsprachen zur Verfügung: CSS und XSL.
CSS (Cascading Style Sheets), auch für HTML eingesetzt, ist dabei die Standardsprache. Sie genügt, um einem Webbrowser mitzuteilen, wie er die
Elemente einer XML-Datei darstellen soll. XSL (Extensible Stylesheet Language) ist dagegen wesentlich mächtiger und enger an den Konzepten von
XML orientiert.
12 Mit Hilfe von XSLT kann man XML-Daten in HTML transformieren – und zwar
serverseitig, also bevor der Webbrowser in die Darstellung überhaupt einbezogen ist. Das hat den Vorteil, dass XML in Verbindung mit XSL auch mit älteren Webbrowsern funktioniert, die gar kein XML kennen. Der Webserver
muss eine entsprechende Schnittstelle besitzen, die das Einbinden eines
XSL/XSLT-verarbeitenden Softwaremoduls erlaubt.
Seite 271
1 Die Eingabe der Artikelnummer führt im Anwendungssystem zu den Daten
des Artikels, die Artikelnummer identifiziert den Artikel.
Die Artikelnummer besteht aber aus 13 Zahlen, bei deren Eingabe leicht
Fehler auftreten können. Der Mensch macht im Durchschnitt auf 100 Zeichen Eingabe einen oder mehr Fehler. Auch Eingabegeräte, wie z. B. Barcodeleser, können Eingabefehler verursachen.
Eine fehlerhafte Artikelnummer kann zu zwei Wirkungen führen: Entweder
es wird der falsche Artikel angesprochen oder das System weist die Artikelnummer ab. Scheinbar gibt es den Artikel nicht, obwohl er im Sortiment ist
und nur die eingegebene Artikelnummer falsch war. Letztere Wirkung eines
Fehlers erscheint sogar schlimmer als die erste Wirkung zu sein. Deshalb
wird die Eingabe einer Artikelnummer immer zuerst formal geprüft, und nur
zulässige Artikelnummern gehen zur Suche weiter an das Anwendungssystem.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
2
PLZ
Postleitzahl, ohne Prüfziffer
BLZ
Bankleitzahl, ohne Prüfziffer
ISBN
Internationale Standard-Buchnummer, mit Prüfziffer
ISSN
Internationale Standardnummer für Zeitschriften,
mit Prüfziffer
Deutsche
Personalausweisnummern
mit Prüfziffer
IBAN
Internationaler Standard für Kontonummer, mit
Prüfziffer
Deutsche
mit Prüfziffer
Rentenversicherungsnummer
ISIN
Internationaler Standard zur Identifikation von
Wertpapieren, mit Prüfziffer
3 JavaScript ist eine Programmiersprache für einfache, in HTML eingebundene
Anwendungen, die clientseitig ausgeführt werden (z. B. Reaktion auf einen
Mausklick des Benutzers).
JavaScript wird mit dem Tag
<SCRIPT language=“JavaScript”>Quelltext</SCRIPT>
in den Kopfbereich
<HEAD> ... </HEAD>
der HTML-Dokumente eingefügt.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
4 Hierzu findet man z.B. in der Hilfe zu den Mozilla-Firefox-Einstellungen folgende Hinweise:
JavaScript aktivieren
JavaScript ist eine Skriptsprache, die häufig dazu verwendet wird, um Webseiten interaktiv zu gestalten. Jedoch kann JavaScript auch einige „nervige“
Verhaltensweisen von Webseiten begünstigen. Um JavaScript zu deaktivieren, wählen Sie diese Einstellung ab. Beachten Sie jedoch, dass das Deaktivieren von JavaScript dazu führen kann, dass einige Webseiten nicht mehr
korrekt funktionieren. Um detailliert zu regeln, was JavaScript können und
nicht können soll, klicken Sie auf „Erweitert“.
Erweiterte JavaScript-Einstellungen
•
Existierende Fenster verschieben oder deren Größe ändern: Wählen Sie
diese Einstellung ab, um das Verschieben oder die Größenänderung von
Fenstern durch Skripte zu verbieten.
•
Fenster vor oder hinter andere Fenster legen: Wählen Sie diese Einstellung ab, um sicher zu gehen, dass Skripte keine Fenster vor oder hinter
andere Fenster legen können.
•
Das Kontextmenü deaktivieren oder ersetzen: Wählen Sie diese Einstellung ab, um zu verhindern, dass Webseiten das Firefox-Kontextmenü deaktivieren oder verändern können.
•
Statusleiste ausblenden: Wählen Sie diese Einstellung ab, um zu erzwingen, dass die Statusleiste in Pop-up-Fenstern immer angezeigt wird.
•
Statusleistentext ändern: Wählen Sie diese Einstellung ab, um Änderungen am Statusleistentext zu deaktivieren, wie z. B. das Anzeigen von
Lauftext oder das Verstecken von Linkadressen, während der Cursor über
einem Link ist (Quelle: Mozilla Firefox Hilfe).
5 Der Inhalt der Skript-Datei ist in diesem Fall durch den Empfänger nicht einsehbar. Der Empfänger kann so nicht ermitteln, was Sie mit der Skript-Datei
vorhaben, wodurch eher das Vertrauen des Empfängers erschüttert werden
kann. Ein Sicherheitsvorteil wird nicht erreicht, da auch die im HTML einsehbare Script-Datei durch den Empfänger nicht verändert werden kann.
6 Der Begriff „Sandkasten“ bedeutet hier, dass für das JavaScript eine besondere Laufzeitumgebung geschaffen wird. Das JavaScript wird vom Rest des
Systems abgeschirmt, quasi in den Sandkasten gesetzt, in dem es einerseits
keinen Schaden anrichten kann und andererseits seine Wirkungen aufgezeichnet werden können.
Leider bietet JavaScript auch breiten Raum für Missbrauch. Deshalb werden
die JavaScript-Anwendungen in den „Sandkasten“ verbannt, aus dem heraus
sie möglichst wenig Zugriff auf kritische Ressourcen haben. So erhält JavaScript standardmäßig nur Zugriff auf die Objekte des Browsers und kann
nicht auf das Dateisystem zugreifen, d. h. keine Dateien lesen oder schreiben. JavaScript kann auch keine Grundeinstellungen des Browsers beeinflussen. Besondere Aktionen, wie das Schließen des Browserfensters, erfordern
die explizite Erlaubnis des Benutzers.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
7 JavaScript ist eine moderne, dynamisch typisierte, objektorientierte aber
klassenlose Skriptsprache. Obwohl JavaScript im Grunde eine funktionale
Sprache ist, lässt sich mit ihr sowohl prozedural als auch objektorientiert
programmieren.
JavaScript wurde ursprünglich von Sun Microsystems und Netscape in Kooperation entwickelt. JavaScript ist grundlegend verschieden von der Programmiersprache Java, die ebenfalls von Sun Microsystems stammt. Die
Namensgleichheit erklärt sich aus Marketinggründen. Man wollte eine Verbindung mit den damals sehr populären Java-Applets herstellen. Die Syntax
von JavaScript wurde aus diesem Grund weitgehend der von Java angeglichen.
8 Eine JavaScript-Funktion ruft man mit ihrem Funktionsnamen auf. Dahinter
folgt immer ein Paar aus öffnender und schließender runder Klammer. Wenn
die Funktion keine Parameter erwartet, folgt nach der öffnenden Klammer
gleich die schließende Klammer. Beispiel:
<form name=“Formular” action=“” method=“post” onsubmit=“JSFunktion(
)”>
</form>
9 Parameter werden als Objekte verstanden, durch ihren Namen identifiziert
und als deren Methode angesprochen. Werden mehrere Parameter übergeben, trennt man diese durch Kommata. Beispiel:
<form name="Formular" action="">
<p>Geben Sie einen Wert ein: </p>
<input type="text" name="Eingabe">
<input type="button" value="testen" onclick="JSFunktion(document.Formular.Eingabe.value)">
</form>
10 HTML kennt keine Variablen. Man kann daher aus JavaScript auch keine
Werte an HTML zurückgeben. Mit der doument.write(...)-Anweisung kann
man aber aus einem JavaScript direkt in den Ausgabebildschirm schreiben.
Innerhalb eines Formulars kann der Rückgabewert einer Funktion in einem
eigens für diesen Zweck eingerichteten Eingabefeld durch den value=“JSFunktion()“ Parameter angezeigt, aber dann auch überschrieben werden.
Allgemein kann aber eine JavaScript-Funktion in einer anderen JavaScriptFunktion aufgerufen werden. Die Funktion muss ihr errechnetes Ergebnis an
die aufrufende Instanz zurückgeben. Dazu wird allgemein in der aufrufenden
Funktion eine Variable definiert, die diesen Rückgabewert speichert.
11 Ein alert ist ein „Alarm“. Die alert-Methode zum Windows-Objekt zeigt einen
Text in einem eigenen Meldungsfenster an. Beispiel:
window.alert("Hello World");
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 276
1 Die Verwendung von Applets (applet = application snippet = Anwendungsschnipsel) muss nicht gesondert vereinbart werden. Sie liegen als vorübersetzte Byte-Code-Dateien auf dem Server bereit. Applets werden (ähnlich
wie Bilder oder andere Objekte) mit einem speziellen Tag <APPLET Attribute></APPLET> in HTML-Dokumente eingefügt.
In HTML 4.0 wird dies verallgemeinert und statt des <APPLET>-Elements
das <OBJECT>-Element vorgeschrieben: <OBJECT Attribute> </OBJECT>
2 Das Applet wird als vorübersetzter Byte-Code übertragen und auf dem Client-Rechner durch die Java-Virtual-Maschine (JVM) ausgeführt.
3 Applets werden mit dem Tag <APPLET Attribute></APPLET> in HTMLDokumente eingefügt. In HTML 4.0 wird dies verallgemeinert und statt des
<APPLET>-Elements das <OBJECT>-Element vorgeschrieben:
<OBJECT Attribute> </OBJECT>
4 Das Applet kann eine eigene Benutzeroberfläche innerhalb der in HTML beschriebenen Umgebung erstellen. Die Größe dieses Arbeitsbereiches für die
Benutzeroberfläche wird durch die Parameter (Attribute) widht=“xxxx“ und
height=“yyyy“ angegeben. Zur Programmierung des Applets gehören für die
Gestaltung der Benutzeroberfläche daher auch eigene Textfelder zur Eingabe
und Ausgabe sowie Schaltflächen
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
5
Attribut zu
<APPLET>
Bedeutung
code
Das Attribut code=“aaa“ benennt das auszuführende Java-Applet,
das normalerweise die Dateinamenerweiterung .class hat. In diesem
Attribut wird nur der Dateinamen angegeben, auch, wenn sich das
Applet in einem anderen Verzeichnis oder auf einem anderen Server
befindet.
Codebase
Das Attribut codebase=“bbb“ benennt die Herkunft des Applets, falls
es sich in einem anderen Verzeichnis als die einbindende HTMLDatei oder auf einem anderen Server befindet. Mit codebase=“../“
adressieren man das Verzeichnis oberhalb des aktuellen
Verzeichnisses.
Alt
Falls das Java-Applet beim Anwender nicht ausführbar ist, kann mit
der Angabe alt=“ttt“ einen Alternativtext definiert werden. Der Text
muss in Anführungszeichen stehen. Er wird nur dann angezeigt,
wenn das Applet nicht anzeigbar ist.
Width, high
Mit width bestimmt man die Anzeigebreite des Java-Applets, mit
height die Höhe. Angegebene Prozentwerte beziehen sich auf die
Breite bzw. Höhe der zur Verfügung stehenden Anzeigefläche.
Parm
Zwischen dem einleitenden <APPLET>-Tag und dem abschließenden
</APPLET> stehen eventuell notwendige Parameter, die dem Applet
beim Aufruf übergeben werden. Jeder Parameter wird namentlich
zugeordnet und durch <PARM name=“abc“ value=“xxx“>
angegeben.
Beispiel zu
<APPLET>
<H1>Ein Applet wird gerufen</H1>
<P>Beschreibung der Funktionsweise</P>
<P>
<APPLET code=”APFunktion.class” width=”640” height=”200”
alt=“Java-Applet kann nicht starten!“>
<PARAMname=“Eingangswert“ value=“100“>
</APPLET>
</P>
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
5
Attribut zu
<OBJECT>
Bedeutung
classid
Das Attribut classid=“cccc“ benennt die erzeugte Klasse des
JavaApplets (classid = class identifier = Klassenbezeichner). Die
Wertzuweisung besteht aus der festen Zeichenfolge java: - gefolgt
von dem vollständigen Namen der .class-Datei, also auch verbunden
mit der Typenbezeichnung .class.
Bei Java-Applets, die aus mehreren class-Dateien bestehen, müssen
Sie die Datei angeben, die den Programmstart enthält.
Codebase
Wenn sich die Applet-Datei in einem anderen Verzeichnis befindet
als die HTML-Datei, in der sie referenziert wird, oder auf einem
anderen Internet-Server, dann muss über codebase=“vvvv“ der
Pfad bzw. die Adresse des Server-Rechners und das Verzeichnis
angeben werden, wo sich die Programmdatei befindet. Achtung:
Anzugeben ist nur das Verzeichnis, nicht mehr der Namen der
Programmdatei.
Codetype
Ähnlich wie für Datendateien sind auch für ausführbare
Programmdateien Typenangaben notwendig. Bei Java-Applets ist
die Angabe: codetype=“application/java“ vorzunehmen.
Beispiel zu
<OBJECT>
<H1>Ein Applet wird gerufen</H1>
<P>Beschreibung der Funktionsweise</P>
<P>
<OBJECT classid=”java:APFunktion.class”
codetype=“application/java“
alt=“Java-Applet kann nicht starten!“>
<PARAM name=“Eingangswert“ value=“100“>
</OBJECT>
</P>
6 HTML kennt keine Variablen. Man kann daher aus einem Applet auch keine
Werte an HTML zurückgeben.
Das Applet kann aber eine eigene Benutzeroberfläche erstellen innerhalb der
in HTML beschriebenen Umgebung. Die Größe dieses Arbeitsbereiches für die
Benutzeroberfläche wird durch die Parameter (Attribute) widht=“xxxx“ und
height=“yyyy“ .
Zur Programmierung des Applets gehören für die Gestaltung der Benutzeroberfläche daher auch eigene Textfelder zur Eingabe und Ausgabe sowie
Schaltflächen.
7 Das Grid Control ist ein Steuerelement zur Anordnung von Objekten auf der
Windows-Oberfläche. Es kann zur Windows-Programmierung genutzt werden. Mit Hilfe des Grid Controls können mehrspaltige und mehrzeilige Layouts erstellt werden. Für die einzelnen Zellen im Raster des Netzes (Grid)
kann man zwischen relativer, absoluter bzw. automatischer Größe umschalten.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
8 Der Begriff „Sandkasten“ bedeutet hier, dass für das Java-Applet eine besondere Laufzeitumgebung geschaffen wird. Das Java-Applet wird vom Rest
des Systems abgeschirmt, quasi in den Sandkasten gesetzt, in dem es einerseits keinen Schaden anrichten kann und andererseits seine Wirkungen
aufgezeichnet werden können.
Leider bieten Java-Applets breiten Raum für Missbrauch. Deshalb werden die
Java-Applet-Anwendungen in den „Sandkasten“ verbannt, aus dem heraus
sie möglichst wenig Zugriff auf kritische Ressourcen haben. So erhält ein
Java-Applet standardmäßig keinen Zugriff auf die Objekte des Browsers und
kann auch nicht auf das Dateisystem zugreifen. Das Applet muss daher mit
einer eigenen Benutzeroberfläche arbeiten.
9 Alle Java-Applets werden von der Java-Klasse java.applet.Applet abgeleitet.
Sie arbeiten ereignisorientiert, wobei die sonst bei Java-Anwendungen verlangte Methode main( ) nicht verwendet wird. Applets nutzen und überschreiben standardmäßig die folgenden Methoden:
•
init( ) – wird genau einmal aufgerufen, wenn das Applet erstmals in den
Browser geladen wird. Das Initialisieren von Applets kann beispielsweise
das Einlesen von Parametern, das Erstellen anderer Objekte oder das
Setzen von Voreinstellungen für das Ausgabefenster beinhalten.
•
start ( ) – wird jedes Mal aufgerufen, sobald das Applet sichtbar wird.
Während die Initialisierung nur einmal stattfindet, kann ein Applet während einer Sitzung mehrmals gestartet werden. Es bleibt deshalb auch im
Arbeitsspeicher des Browsers aktiv.
•
paint( ) – Zeichenmethode für die Anzeigefunktionen des Applets
•
repaint( ) – aktualisiert die Ausgabe von paint( )
•
stop( ) – wird jedes Mal aufgerufen, sobald der Benutzer die Seite mit
dem Applet verlässt, z. B. weil das Browser-Fenster von einem anderen
Fenster überdeckt wird. Standardmäßig werden aber alle vom Applet gestarteten Threads (Steuerfluss) weiter ausgeführt.
•
destroy( ) – wird aufgerufen, wenn das Applet aus dem Hauptspeicher
entladen werden soll. Durch das Zerstören hinterlässt das Applet einen
„aufgeräumten“ Arbeitsspeicher, so dass alle laufenden Threads oder erzeugten Objekte freigegeben werden.
10 Applets brauchen eine eigene Benutzeroberfläche. Deshalb überschreiben sie
die üblichen Methoden zur Darstellung der Objekte unter Windows (siehe
Frage 9) und die Methoden zur Ereignisbehandlung. Ausgangspunkt hierfür
ist unter Java die Klasse: java.awt.event.*, die hierzu importiert werden
muss.
11 Der Java Abstract Windowing Toolkit (java.awt.*) bietet für die JavaProgrammierung die notwendigen Klassen zur Erzeugung der WindowsObjekte und der Abstract Windowing Toolkit Eventhandler (java.awt.event.*)
bietet die notwendigen Klassen zur Erzeugung und zur Behandlung der
Windows-Ereignisse (Mausklick etc.)
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 283
1 Der HTTP-Server verwaltet statische Dokumente (HTML-Dateien, Dateien mit
Applet-Klassen oder Multimediadaten), die er dem Client auf dessen Anfrage
ordentlich verpackt und adressiert nach den Vorschriften des HTTPProtokolls zur Verfügung stellt.
2 Der HTTP-Server ist standardmäßig mit dem Port 8080 verbunden. Über diesen Port spricht ihn der Client mit seinem Request (Anforderung) an.
3
Anbieter
Produkt
Lizenz
Apache
Apache
kommerziell
Apache
Tomcat
Apache Software Foundation; freie Software
Microsoft
IIS
kommerziell
Google
GWS
kommerziell
lighttpd
lighttpd
BSD-Lizenz
Sun
Java System Web
Sun Microsystems
Server
4 Der Austausch von Daten zwischen dem HTTP-Server und dem Webserver
erfolgt entsprechend der sogenannten CGI-Spezifikation. CGI steht für
Common Gateway Interface und ist ein Standard für den Server. CGI regelt,
wie die Eingaben aus der HTML-Seite an die Anwendungsprogramme übergeben werden.
5 CGI-Skripte sind Programme, die direkt auf dem Webserver laufen. Ein
Webserver, der CGI unterstützt, stellt eine Laufzeitumgebung mit Umgebungsvariablen und den Ein- und Ausgabekanälen zur Verfügung.
Der Vorteil besteht darin, dass es mit CGI-Skripten möglich ist, HTMLSeiten dynamisch zu erzeugen. Diese müssen zum Zeitpunkt der Anfrage
(Request) noch nicht auf dem Server existieren, sondern werden jetzt erst
auf der Basis aktueller Daten von dem CGI-Programm erzeugt.
Der Nachteil der CGI-Ausführung ist ihre relativ geringe Geschwindigkeit,
da für jeden CGI-Aufruf ein neuer Prozess gestartet wird.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
6 Die spezielle Laufzeitumgebung für die serverseitige Programmierung bietet
der eigentliche Webserver als so genannten Web-Container an, worin die
serverseitigen Anwendungsprogramme laufen. Diese Container haben Bestand, solange eine Web-Anwendung läuft, was für die Performance wichtig
ist. So bleibt beispielsweise die Anmeldung eines Kunden einschließlich seiner eingegebenen Daten so lange in einem Web-Container bestehen, solange die Sitzung läuft, also bis zur Abmeldung durch den Kunden. Die Anwendung muss nicht für jeden Kommunikationsschritt neu geladen werden, was
zu einer beschleunigten Verarbeitung beiträgt.
7 PHP und Perl sind Skriptsprachen, die zur Erstellung von dynamischen Webseiten oder Web-Anwendungen verwendet werden. PHP ist eine OpenSource-Software.
PHP zeichnet sich besonders durch die leichte Erlernbarkeit und die gute Datenbankunterstützung aus. PHP-Code wird serverseitig verarbeitet, der
Quelltext wird im Gegensatz zu JavaScript nicht an den Browser übermittelt,
sondern an einen Interpreter auf dem Webserver. Erst die Ergebnisse des
PHP-Interpreters, üblicherweise ein als Ausgabe erzeugter HTML-Text, wird
an den Browser geschickt. Um eine PHP-Datei im Rahmen einer WebAnwendung ausführen zu können, benötigt man serverseitig einen PHP Interpreter. Dieser wird allgemein aktiv, sobald von Server eine Datei mit der
Typenbezeichnung *.php abgerufen wird. Anstelle dieser Datei werden die
Ergebnisse der PHP-Programmabarbeitung an den Client übermittelt.
8 Ihr lokaler Rechner arbeitet wahrscheinlich mit einem Windows- oder LINUXBetriebssystem. Beide Betriebssysteme sind Multitasking-Systeme, können
also mehrere Programme gleichzeitig aktiv halten. Sie nutzen diese Fähigkeiten beispielsweise, wenn Sie aufgerufene Computerspiele hinter OfficeAnwendungen verbergen. Natürlich kann man in dieser Umgebung auch ein
Programm als Webserver starten und mit diesem Programm kommunizieren.
9 Der lokale Webserver wird als „localhost“ angesprochen. Die Funktionsfähigkeit des lokalen Webservers kann überprüft werden, indem man den Server
am lokalen Rechner über den Standardport 8080 anspricht. Dazu muss im
Browser die Adresse http://localhost:8080 eingegeben werden, worauf
sich z. B. der Tomcat-Server mit seinem Begrüßungsbildschirm meldet.
10 Um auf einem Rechner auch ohne Internetverbindung die Kommunikation
zwischen Client und Server simulieren zu können wird der Tomcat-Server
installiert. Beim Ansprechen des lokalen Servers schaltet sich normalerweise
auch die auf diesem Rechner installierte Firewall ein. Sie soll schließlich kontrollieren, was alles von dem lokalen Rechner nach außen geht. Dieses „nach
außen gehen“ ist auch bei der lokal simulierten Kommunikation zwischen
Server und Client durch die Firewall zu erkennen. Die Firewall analysiert die
Verbindungsdaten und stoppt diesen Prozess eventuell. Vor Beginn der weiteren Arbeit muss die Firewall daher informiert werden, welche Transfers
zulässig sind, während ein Abschalten der Firewall nicht empfehlenswert ist.
11 Durch die Einbindung des Tomcat-Servers in die Eclipse-Umgebung kann auf
einem Rechner auch ohne Internetverbindung die Kommunikation zwischen
Client und Server simulieren werden.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 288
1 Das Applet wird auf dem Client-Rechner, das Servlet auf dem Server ausgeführt. Servlets sind das serverseitige Gegenstück zu den Applets.
Als Servlet bezeichnet man Java-Klassen, deren Instanzen innerhalb eines
Webservers Anfragen von Clients entgegennehmen und beantworten. Die
Schnittstelle javax.servlet.Servlet muss durch diese Klassen implementiert
werden.
2 Die Verwendung von einem Servlet im HTML-Text ist nicht besonders spektakulär und aufwendig. Wichtig sind jedoch die folgenden Elemente:
•
Der Rahmen mit den Tags html, head, title und body entspricht den
Standardkonventionen.
•
Der form-Tag schafft den Rahmen für den Aufruf des Servlets.
•
Die Zeile Action=“SLFunktion“ bewirkt, dass beim Anklicken des submit-Buttons das Programm “SLFunktion.class“ im Servlet-Container gestartet wird.
•
Der input-Tag stellt den Button vom Type “submit“ (übermitteln) bereit.
Der HTML-Quelltext zur Bearbeitung eines Servlets sieht dann wie folgt aus:
<HTML>
<HEAD>
<TITLE> Aufruf eines Servlets </TITLE>
</HEAD>
<BODY>
<H1>Beispiel eines Servlets </H1>
<FORM action=“SLFunktion”> Rufen Sie hier bitte das Servlet vom Server ab!
<INPUT type=“submit” value=“Aufruf”>
</FORM>
</BODY>
</HTML>
3 Innerhalb der form-Tags bewirkt die Zeile Action=“SLFunktion“, dass beim
Anklicken des submit-Buttons das Programm “SLFunktion.class“ im Servlet-Container gestartet wird.
4 Das Servlet muss sich die Parameter aus dem Request-String auslesen. Dazu gibt es beispielsweise die Methode getParameterValues(), wobei der
Rückgabewert ein String ist und als Aufrufparameter wird der Name des
auszulesenden Parameters übergeben.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
5 HTML kennt keine Variablen. Man kann daher aus einem Servlet auch keine
Werte an HTML zurückgeben.
Ähnlich wie bei PHP oder Perl kann das Servlet jedoch einen Ausgabestream
erstellen, der dann an den aufrufenden Client gesandt wird und dort durch
den Browser dargestellt werden kann. (vergleiche Beispiel auf Seite 286)
6 In unserem Beispiel wird die doGet( )-Methode überschrieben und mit den
Parametern „anfrage“ und „antwort“ neu programmiert, wobei der Parameter „anfrage“ ungenutzt bleibt, da beim Aufruf keine Werte übertragen werden.
Der Parameter „antwort“ wird jedoch als html/text typisiert und dann aus
dem Ausgabestream durch die getWriter( )-Methode gefüllt. In den Ausgabestream „out“ wird eine einfache Textkette gesetzt, die als Beschreibung
einer Webseite in HTML zu erkennen ist.
7 Nach dem Aufruf des Servlets erscheint das Bild wie im Buch auf Seite 290.
Den entsprechenden Aufruf finden Sie im Buch auf Seite 286.
8 Das Herkunftsland Deutschland (hl=de), der Suchbegriff (q=Westermann)
und die Art der Anfrage (btnG=Google-Suche) werden übermittelt. Diese
Anzeige ist nur ganz kurz sichtbar nach Betätigung des Such-Buttons und
vor Anzeige der Ergebnisse.
9 Mit den Methoden doGet( ) oder doPost( ) können jeweils die RequestDaten der beiden HTTP-Methoden GET und POST verarbeitet werden.
10 Als Entwickler muss man im Rahmen einer entsprechenden EclipseUmgebung in jedem Fall die doGet( )- und die doPost( )-Methoden implementieren, während der Rest automatisch hinzugefügt werden kann. Bei
Verwendung der Servlet-Spezifikation und einer entsprechenden WebContainer-Umgebung (z. B. Apache Tomcat) wird eine vom
javax.servlet.http.HttpServlet abgeleitete Klasse erstellt.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 304
1 Der PHP-Interpreter läuft auf dem Server, also weit entfernt von all den
möglichen Clients, die Web-Dokumente abrufen und dabei den PHPInterpreter aktivieren. Der PHP-Interpreter kennt den Browser des Nutzers
nicht. Man sollte die PHP-Programme daher möglichst browserunabhängig
schreiben.
Zum Abruf eines Web-Dokumentes vom Server ist jedoch eine Anforderung
(Request) des Dokumentes notwendig, die üblicherweise von einem Browser
kommt. Diese Anfrage wird vom Server bearbeitet. In der Anfrage (Request)
muss der Absender angegeben sein, an den das Web-Dokument
zurückzusenden ist. Aus der Absenderinformation kann der PHP-Interpreter
den vom Absender verwendeten Browser mit der Auswertung der ServerVariable $_SERVER['HTTP_USER_AGENT'] auslesen.
Mit der Funktion get_browser() kann Name und Version des aufrufenden
Browsers ermittelt werden. Die Funktion get_browser() kann den Wert von
"$HTTP_USER_AGENT" auslesen, den Browser ermitteln und dann einen
entsprechenden Eintrag in der eventuell auf dem Server installierten
"browscap.ini"-Datei suchen. Ist die Browser-Version in der Datei
„browscap.ini“ vermerkt, werden alle Besonderheiten des Browsers
ermittelt. Es wird dabei nicht berücksichtigt, ob der Nutzer in seinem
Browser einzelne Arbeitsmöglichkeiten deaktiviert hat, sondern nur
aufgezeigt, welche prinzipiellen Möglichkeiten der Browser unterstützt.
Quelle: http://www.selfphp.de/funktionsreferenz/sonstige_funktionen/
get_browser.php)
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
2 Der PHP-Interpreter kennt den Bildschirm des Nutzers nicht. Man sollte die
PHP-Programme daher möglichst so gestalten, dass sich die Ausgaben
prozentual zur Bildschirmgröße verteilt anordnen oder an einem
Minimalstandard orientieren.
Als Lösung kann hier nur die kombinierte Anwendung von JavaScript mit
PHP gesehen werden. Das folgende Beispiel zeigt die Verwendung eines
geeigneten JavaScript-Programmes. Hier wird das JavaScript zuerst zum
Client gesandt, wo die Bildschirmgröße ermittelt wird, und dann wieder zum
PHP-Interpreter zurückgesendet. Das dauert einen Moment, aber beim
zweiten Versuch kann PHP nun auf die Größenwerte zur Breite und Höhe
zugreifen.
<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
// Ausgabe der beiden Größenangaben
echo "Die Breite ist: ". $_GET['width'] ."<br />\n";
echo "Die Höhe ist: ". $_GET['height'] ."<br />\n";
} else {
// Übergabe der Größenangaben
// (der ursprüngliche 'QUERY_STRING' wird beibehalten;
// POST-Variablen müssen anders behandelt werden)
echo "<script language='javascript'>\n";
echo "
location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&width=\" + screen.width + \"&height=\" + screen.height;\n";
echo "</script>\n";
exit();
?>
3 Der PHP-Interpreter läuft auf dem Server, er kann somit relativ einfach auf
die umfangreichen Parameter der Serverumgebung zurückgreifen. Alle
Parameter sind über die vordefinierte Variable $_SERVER[ ] erreichbar.
$_SERVER[ ] ist ein assoziatives Array aus Variablen, die dem aktuellen
Skript vom jeweiligen HTTP-Server bereitgestellt werden. Die Werte aus
dem assoziativen Array sind durch die Angabe des Parameternamens
innerhalb der eckigen Klammern abrufbar. $_SERVER ist ein Array, das
Informationen enthält, wie Header, Pfade und die verschiedenen Wege, um
das Skript anzusprechen,. Es gibt keine Garantie dafür, dass der jeweilige
Webserver alle möglichen Einträge in die vordefinierte Variable schreibt,
denn Server können einzelne Werte weglassen oder andere Einträge
unterstützen, die in der Referenz nicht aufgeführt sind.
(Quelle: http://php.net/manual/de/reserved.variables.server.php)
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
4 Der der PHP-Interpreter kennt auch das Verhalten des Nutzers am Browser
nicht. Der Nutzer kann eine Verbindung zum Webserver aufbauen, diese
ruhen lassen und auf anderen Webseiten weiter surfen. Beim Nutzer bleiben
gleichzeitig mehrere Verbindungen offen, d. h., er kann auch dieselbe Seite
mehrfach öffnen, während auf dem Server gleichzeitig viele verschiedene
Anfragen unterschiedlicher Nutzer eintreffen können. Die jeweils
bestehenden Verbindungen vom Nutzer zum Server werden als Sitzungen
(Session) bezeichnet.
Die Merkmale der Sitzung werden in der vordefinierten Variablen
$_SESSION[ ] verwaltet. $_SESSION[ ] ist ein assoziatives Array aus
Session-Variablen, die vom aktuellen Skript auf dem Server gespeichert
werden. Die Werte aus dem assoziativen Array sind durch die Angabe des
Parameternamens innerhalb der eckigen Klammern abrufbar. Durch die
Funktion „session_start()“ wird die Sitzung gestartet und die vordefinierte
Variable $_SESSION[ ] angelegt. Diese Variable, worin beliebige Vermerke
gespeichert werden können, bleibt während der gesamten Sitzung bestehen.
Dem Array $_SESSION[ ] neu hinzugefügte Variablen mit Werten werden
automatisch als Session-Variable registriert und gespeichert.
(Quelle: http://www.php.net/manual/de/reserved.variables.session.php)
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
Seite 314
1 Die Datei web.xml enthält Parameter zur Sprache und Codierung
(display-name xml:lang="de">…), den Dateinamen des Servlets
(servlet-class>DabaSL.DabaSL …) und den Aliasnamen
(url-pattern>/DBAlias…) für den Aufruf des Servlets.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/j2ee
app_2_4.xsd">
http://java.sun.com/xml/ns/j2ee/web-
<display-name xml:lang="de">DabaSL</display-name>
<servlet>
<display-name xml:lang="de">DabaSL</display-name>
<servlet-name>DabaSL</servlet-name>
<servlet-class>DabaSL.DabaSL</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DabaSL</servlet-name>
<url-pattern>/DBAlias</url-pattern>
</servlet-mapping>
</web-app>
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
2 Erklärung: Die Verwendung einer Datenbank auf dem Server durch ein
Servlet bedingt die Einbindung eines Datenbanktreibers. Die Aktivierung des
Datenbanktreibers ist bei Servlets aber eine komplizierte Angelegenheit,
denn das Servlet läuft auf einem Einsatzsystem, das sich vom Entwicklungssystem völlig unterscheiden kann. Eigentlich kennen wir bei der Entwicklung
das Einsatzsystem mit all seinen Softwarekomponenten nicht. Wir kennen
das Betriebssystem nicht, wir kennen die Verzeichnisstruktur nicht und wir
kennen die konkret installierten Softwarekomponenten nicht. Das klingt
schlimm, ist aber Realität bei der „Softwareentwicklung im Großen“. Wir
kennen aber die Architektur des Serversystems. Wir wissen nicht, was konkret vorhanden ist, aber wir wissen welche Komponenten prinzipiell vorhanden sein müssen. Und diese Tatsache betrifft möglicherweise auch die Datenbanksysteme.
Dieser Ansatz klingt kompliziert, ermöglicht aber eine gewaltige Flexibilität.
Der Betreiber des Servers kann Komponenten austauschen (updaten) oder
wir wechseln mit unserer Anwendung einfach zu einem anderen Anbieter für
den Server-Dienst. Alle konkreten Parameter müssen daher in strukturmäßig
(Architektur!) vereinbarten Dateien gespeichert werden.
Entwickelt und getestet wurde im vorliegenden Beispiel mit Microsoft Access,
während auf dem produktiven Server von Sun „PointBase“ als Datenbanksystem bereitgestellt wird. In der Zielstellung von ACI wird hingegen MySQL
als Datenbanksystem favorisiert, womit in der Beispielsituation letztlich
schon drei verschiedene Datenbanksysteme zur Auswahl stehen. Der Datenbanktreiber wird daher nicht fest in das Programm integriert, d. h., er darf
nicht mit kompiliert werden. Man müsste ansonsten bei jeder Veränderung
in der Entwicklungs- oder Einsatzumgebung die Programme im Quelltext
verändern und neu kompilieren sowie anschließend per Deployment erneut
zum Server übertragen.
Im professionellen Umfeld werden die erforderlichen Parameter daher über
Parameterdateien vermittelt. build.xml ist so eine strukturmäßig zu verwendende Parameterdatei. Die Abbildung auf S. 295 zeigt, dass build.xml
einige Eigenschaften <property> zum Projekt vermittelt und dabei die Datei
common.xml einbindet mit <include>, welche wiederum in den
“common.properties“ und den “database.properties“ genau den JDBCDatenbanktreiber benennt. Im vorliegenden Fall der Abbildung ist es der
JDBC-Universaltreiber aus dem pointbase-Verzeichnis.
In den Parameterdateien können diese Werte editiert werden, ohne dass ein
kompletter Entwicklungsschritt (Compiler und Deployment) durchgeführt
werden muss. Beim Wechsel auf ein neues Server-System oder Datenbankmanagementsystem muss nur hier etwas verändert werden.
Antwort: Die Parameterdatei build.xml sorgt für die Einbindung der Datei
common.xml (siehe Seite 295 des Buches)
3 Erklärung: siehe Erklärung zu Frage 2!
Antwort: Die Parameterdatei common.xml verweist auf die
“database.properties“ und benennt damit für den dynamischen Methodenaufruf den JDBC-Datenbanktreiber (siehe Seite 295 des Buches). Im vorliegenden Fall der Abbildung ist es der JDBC-Universaltreiber aus dem
pointbase-Verzeichnis.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
4 Erklärung: Eigentlich kennen wir bei der Entwicklung von Client-ServerProjekten das Einsatzsystem mit all seinen Softwarekomponenten nicht. Wir
kennen das Betriebssystem nicht, wir kennen die Verzeichnisstruktur nicht
und wir kennen die konkret installierten Softwarekomponenten nicht.
Java bietet für diesen Fall den dynamischen Methodenaufruf an. Damit lässt
sich zur Laufzeit eine im Programm definierte Methode aufrufen, wenn ihr
Name als Zeichenkette vorliegt. Dieser Name wird dann in einer strukturmäßigen Parameterdatei abgelegt.
Antwort: Zunächst geht man von einem Class-Objekt aus, das die Klasse
des Objekts beschreibt und wofür eine Objektmethode aufgerufen werden
soll. Über die forName( )-Methode wird diesem Objekt der Name der zu aktivierenden Methode bekannt gegeben, der aus den besprochenen Parameterdateien stammt. Auf diesem Weg wird zur Laufzeit der jeweilige Datenbanktreiber aktiviert, der die JDBC-Schnittstelle zur Datenbank herstellt.
Quelltext auf Seite 295:
try {
// Class.forName(driverName).newInstance( );
// “new.Instance( )” zur Umgehung von abgebrochenen Zugriffen
Class.forName(driverName);
// dynamischer Methodenaufruf
dbconn =DriverManager.getConnection(url, user, passwd);
} // try
5 Java Server Pages (JSP) sind eine spezielle Technologie, um statische HTMLSeiten mit dynamisch generiertem HTML-Code zu mischen. Dazu werden die
konventionellen HTML-Texte um spezielle JSP-Tags ergänzt. Der Webserver
wandelt die JSP zunächst in ein Servlet um. Danach arbeitet die JSP wie ein
normales Servlet. Diese Umwandlung übernimmt die JSP-Engine, wodurch
das Servlet maschinell erstellt wird.
JSP-Tags werden direkt in den HTML-Code eingebunden und sind zu kennzeichnen mit: <% … %>
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
6 Java Beans sind normale Java-Klassen, die innerhalb ihrer Programmierung
jedoch bestimmte Konventionen einhalten müssen, um sie so zu standardisieren, dass sie auch von anderen Entwicklern in ihre Applikationen eingebunden werden können. Im Rahmen dieser Konventionen gibt es neue Begriffe zu beachten:
•
Ein Java Bean ist eine normale Klasse mit Eigenschaften und Methoden.
•
Statt des Begriffs Eigenschaften verwendet man hier den Begriff Properties, um deutlich zu machen, dass diese Eigenschaften durch relativ
strenge Vorschriften geschützt sind.
•
Zu jeder Property gibt es Setter- und Getter-Methoden zum Schreiben
und Lesen der Property. Diese Methoden beginnen jeweils mit set oder
get, müssen public sein (also für alle zugänglich) und die Eigenschaften
vor Fehlbelegungen absichern.
•
Events werden als neuer Begriff eingeführt. Java Beans sollen mit anderen Komponenten kommunizieren, was durch die Erzeugung von Events
geschieht. (Im Beispiel zu den Applets wurden bereits Events genutzt.)
•
Die Events werden nach der Reihenfolge ihres Eintretens bearbeitet. Dazu
müssen sie ihrerseits durch so genannte Listener verwaltet werden.
•
Java Beans müssen serialisierbar sein (“implements serializable“), d. h.,
die Abarbeitungsfolge muss zur Laufzeit dynamisch zu bestimmen sein.
7 Enterprise Java Beans (EJB) basieren auf einer noch schärferen Spezifikation. Sie werden entwickelt als “server-side“-Komponenten und müssen extrem parametrisierbar sein, um leicht an verschiedene Installationsbedingungen der Server anpassbar zu sein. Eine derartige Arbeitsweise funktioniert
wie bei der Herstellung einer Verbindung zur Datenbank. Die Parameter
kommen aus der Properties-Datei und werden über die Dateien
COMMON.XML und BUILD.XML ausgelesen und weitergegeben.
Bei der Implementierung von EJB muss man beachten, dass EJB und Clients
getrennt voneinander auf unterschiedlichen Computern und damit auf verschiedenen JVMs laufen, also keinerlei Möglichkeiten zur „internen“ Kommunikation besitzen.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
8 Erklärung: Durch Betätigung einer Schaltfläche „Aufruf“ vom Typ “submit“
wird die im Formular vereinbarte Aktion “action=verarbeiten“ aufgerufen.
Dieser Request gelangt zum Server. Dort wurde bereits durch den Aufruf der
HTML-Seite das Servlet „verarbeiten“ (vgl. Quelltext auf S. 286) gestartet.
Das Java-Programm führt seine Aktionen aus und generiert eine HTML-Seite,
deren anschließende Interpretation durch den Browser beim aufrufenden
Client erfolgt.
Bei einem echten WebService kommuniziert clientseitig nicht mehr das spezielle Programm „Browser“ mit dem Server. WebServices wurden für die
Kommunikation von Programm zu Programm konzipiert. Damit entfallen
aber alle Standardleistungen des Browsers: Request und Response müssen
selbst verwaltet werden. Die Methoden doGet( ) und doPost( ) stehen in gewohnter Art nicht zur Verfügung, sie müssen überschrieben werden.
Antwort: Quelltext Seite 300:
publicvoid doGet( HttpServletRequest anfrage, HttpServletResponse antwort)
throws ServletException, IOException {
// Hauptteil verarbeitet Browsereingaben
// usw.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
9 Das Servlet generiert im Beispiel einen einfachen HTML-Quelltext aus den
Ergebnissen der Datenbankabfrage im Objekt antwort:
Antwort: Quelltext Seite 300:
publicvoid doGet( HttpServletRequest anfrage, HttpServletResponse antwort)
throws ServletException, IOException {
// ...
antwort.setContentType(“text/html“);
PrintWriter out =antwort.getWriter( );
try {
// Zugriff auf Datenbank ueber die JDBC-ODBC-Bruecke
// ...
Ergebnis =Lesen(Daba, Anw);
if (Ergebnis.next( ))
{ out.println(HTMLtext(true, EAN, Ergebnis.getString(2))); }
else
{ Bezeichnung=anfrage.getParameter(“bezeichnung”);
if(Bezeichnung.length( )==0) {
out.println(HTMLtext(false, EAN, “unbekannt”)); }
else {
Anw =“INSERT INTO Artikel2(EAN, Bezeichnung) ”+
“VALUES(“ + ” ‘“ + EAN + ”‘, ’“ + Bezeichnung +
”‘);”;
int Zahl =Einfuegen(Daba, Anw);
out.println(HTMLtext(true, EAN, Bezeichnung));
}
}
Ergebnis.close( );
// usw.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Lösung zu 978-3-8045-5384-2 Entwickeln und Bereitstellen von Anwendungssystemen - IT-Buchreihe Band 3
10 Eine Vorbereitung auf mögliche Fehler sowie das Entwickeln einer Fehlerbehandlung ist in komplizierten Strukturen (Client, Server, Datenbank) unbedingt notwendig. Java verlangt daher ein „Exception-Handling“, der Compiler
selbst akzeptiert keine Anweisungen ohne Ausnahmebehandlung. Deshalb
werden die kritischen Anweisungen des Datenbankzugriffes mittels “try“
gekapselt und gegebenenfalls mit “catch“ abgefangen.
Als Ausnahmen werden behandelt:
Ausnahmesituation
Bemerkung
ClassNotFoundException
Der gewünschte Treiber kann beim dynamischen
Methodenaufruf nicht gefunden werden. Hier ist
eventuell der CLASSPATH-Wert anzupassen.
IOException
Bei der Ein- oder Ausgabe tritt ein Fehler auf, was hier
durch die allgemeine Arbeit mit Zeichenketten kaum
passieren kann.
NullPointerException
Im Objekt vom Type ResultSet bewegt sich der Zeiger
in unvorgesehene Regionen.
SQLException
Die SQL-Anweisung ist falsch und kann daher nicht
ausgeführt werden, meistens durch einen Syntaxfehler
in SQL verursacht.
Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH
Herunterladen