Programmierung mit Servlets und Applets in Java
Am Beispiel der grafischen Darstellung von Prozessdaten
- Art: Diplomarbeit
- Autor: Alexander Ziegler
- Abgabedatum: Januar 2001
- Umfang: 144 Seiten
- Dateigröße: 1,3 MB
- Note: 1,3
- Institution / Hochschule: Fachhochschule Reutlingen Deutschland
- ISBN (eBook): 978-3-8324-5241-4
-
ISBN (Paperback) :
978-3-8324-5241-4 P - ISBN (CD) :978-3-8324-5241-4 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Ziegler, Alexander Januar 2001: Programmierung mit Servlets und Applets in Java, Hamburg: Diplomica Verlag
- Schlagworte: Servlets, JDPL, Applets- und Applications, OOP
In den Warenkorb
58,00 €
Diplomarbeit von Alexander Ziegler
Zusammenfassung:
Ziel dieser Studienarbeit war es, Erfahrungen im Umgang mit der Programmiersprache im Umfeld des Internets zu sammeln. Im Besonderen wollten wir dabei auf die Bereiche Applets, Servlets und Datenbankanbindungen mit der JDBC-API eingehen. Dabei wurden folgende Themenbereiche intensiv bearbeitet:
- Darstellung von grafischen Elementen in Applets.
- Kommunikation zwischen Applets und Servlets.
- Aufruf von Servlets über einen Webserver.
- Funktionen einen Webservers.
- Aufbau von Datenbankverbindungen.
- Auslesen von Daten aus einer Datenbank.
- Schreiben von Daten in eine Datenbank.
Außerdem konnten wir Erfahrung in der Projektplanung sammeln, was für zukünftige Arbeit an der Hochschule und auch im Praxissemester sehr wichtig ist. Es war das erste Mal während des Studiums, dass wir ein Projekt dieser Größenordnung bearbeiten konnten. Deswegen gestaltete sich die zeitliche Planung und die Abschätzung des Aufwands etwas schwierig. Gäbe es die Möglichkeit, bereits in früheren Semestern Softwareprojekte durchzuführen, wären uns einige Schwierigkeiten erspart geblieben. Allerdings muss sich unsere Studienarbeit am Ergebnis messen lassen und das ist für ein Einsteigerprojekt meiner Meinung nach mehr als ausreichend.
Inhaltsverzeichnis:
| 1. | ZIEL DER STUDIENARBEIT | 8 |
| 2. | JAVA - DIE PROGRAMMIERSPRACHE | 8 |
| 2.1 | Geschichte von Java | 8 |
| 2.2 | Merkmale der Programmiersprache | 9 |
| 2.2.1 | Portabilität | 9 |
| 2.2.2 | Objektorientierung | 9 |
| 2.2.3 | Multithreading | 9 |
| 2.2.4 | Verteilte Programmierung | 9 |
| 2.2.5 | Robustheit | 9 |
| 2.2.6 | Sicherheit | 9 |
| 2.2.7 | Garbage Collector | 10 |
| 2.2.8 | Unterschiede zu C++ | 10 |
| 2.3 | Das objektorientierte Konzept | 10 |
| 2.3.1 | Einführung | 10 |
| 2.3.2 | Das Konzept | 11 |
| 2.3.3 | Abstraktion | 11 |
| 2.3.4 | Botschaften | 12 |
| 2.3.5 | Kapselung | 12 |
| 2.3.6 | Klassen und Exemplare | 12 |
| 2.3.7 | Vererbung und Taxonomie | 12 |
| 2.3.8 | Polymorphie | 12 |
| 2.3.9 | Überladung | 13 |
| 2.4 | Objektorientierte Programmierung mit Java | 13 |
| 2.4.1 | Die Java Virtual Machine (JVM) | 13 |
| 2.4.2 | Der Unicode-Zeichensatz | 13 |
| 2.4.3 | Klassen | 14 |
| 2.4.3.1 | Definition | 14 |
| 2.4.3.2 | Zugriffsrechte | 14 |
| 2.4.3.3 | Modifier | 14 |
| 2.4.4 | Exemplare | 15 |
| 2.4.4.1 | Instanzierung | 15 |
| 2.4.4.2 | Konstruktoren | 15 |
| 2.4.4.3 | Vererbung | 16 |
| 2.4.5 | Interfaces | 17 |
| 2.4.5.1 | Allgemeines | 17 |
| 2.4.5.2 | Beschreibung | 17 |
| 2.4.5.3 | Modifier | 18 |
| 2.4.6 | Datenelemente | 18 |
| 2.4.6.1 | Beschreibung | 18 |
| 2.4.6.2 | Zugriffsrechte | 19 |
| 2.4.6.3 | Modifier | 19 |
| 2.4.7 | Methoden | 20 |
| 2.4.7.1 | Methodenkopf und -rumpf | 20 |
| 2.4.7.2 | Lokale Variablen | 21 |
| 2.4.7.3 | Methodenaufruf | 21 |
| 2.4.7.4 | Methodenüberladung | 22 |
| 2.4.7.5 | Zugriffsrechte | 23 |
| 2.4.7.6 | Modifier | 23 |
| 2.4.8 | Pakete | 24 |
| 2.4.8.1 | Allgemeines | 24 |
| 2.4.8.2 | Importieren von Paketen und Klassen | 25 |
| 2.4.9 | Archive | 25 |
| 2.4.9.1 | Beschreibung | 25 |
| 2.4.9.2 | Archivarten | 25 |
| 3. | JAVA DATABASE CONNECTIVITY (JDBC) | 27 |
| 3.1 | JDBC - Allgemeines | 27 |
| 3.2 | Die Struktur von JDBC | 27 |
| 3.3 | Treiber | 27 |
| 3.3.1 | Der Treibermanager | 27 |
| 3.3.2 | Treiberarten | 28 |
| 3.3.3 | Aufgaben des Treibers | 28 |
| 3.3.4 | Laden eines Treibers | 29 |
| 3.4 | Die Datenbankverbindung | 30 |
| 3.4.1 | Das Connection-Objekt | 30 |
| 3.4.2 | Der JDBC-URL | 30 |
| 3.4.3 | Schließen einer Verbindung | 31 |
| 3.4.4 | Die SchnittstellePooledConnection | 32 |
| 3.5 | Escape-Klauseln | 33 |
| 3.6 | SQL-Anweisungen | 34 |
| 3.6.1 | Das Statement-Objekt | 34 |
| 3.6.2 | Die execute-Methoden | 34 |
| 3.6.3 | Ergebnisse von Anfragen | 35 |
| 3.6.3.1 | Die Schnittstelle Statement | 35 |
| 3.6.3.2 | Die Schnittstelle PreparedStatement | 36 |
| 3.6.3.3 | Die Schnittstelle CallableStatement | 37 |
| 3.6.4 | Abfragen mit den Methoden der Schnittstelle ResulSet | 38 |
| 3.6.5 | Abbildung von SQL-Typen | 39 |
| 3.6.5.1 | Typabbildungen | 39 |
| 3.6.5.2 | getXXX-Methoden | 41 |
| 3.6.5.3 | setXXX()-Methoden | 43 |
| 3.7 | Transaktionen in JDBC | 44 |
| 3.8 | Unterschiede der JDBC-Versionen | 45 |
| 4. | APPLETS UND APPLIKATIONEN | 46 |
| 4.1 | Beispiel einer Applikation: ApplicationTest.class | 47 |
| 4.2 | Java-Applets erstellen | 47 |
| 4.3 | Sicherheit bei Applets | 48 |
| 4.4 | Der Lebenszyklus eines Applets | 49 |
| 4.4.1 | Init() | 49 |
| 4.4.2 | Start() | 49 |
| 4.4.3 | Stop() | 49 |
| 4.4.4 | Destroy() | 49 |
| 4.5 | Das Vererbungsdiagramm der Klasse Applet | 51 |
| 4.6 | Aufruf eines Applets aus der HTML-Seite | 52 |
| 4.6.1 | Informationen an Applets übergeben | 53 |
| 4.6.2 | Weitere Applet-Attribute | 55 |
| 4.7 | Grafikprogrammierung | 55 |
| 4.7.1 | Striche zeichnen | 56 |
| 4.7.2 | Figuren | 56 |
| 4.7.3 | Füllfiguren | 56 |
| 4.7.4 | 3D-Figuren | 56 |
| 4.7.5 | Text zeichnen (Zeichensätze definieren) | 56 |
| 4.8 | Benutzeroberfläche des Applets | 57 |
| 4.8.1 | Die gebräuchlichsten AWT-Komponenten | 57 |
| 4.8.2 | Swing-Komponenten (Jcomponent) | 59 |
| 4.8.3 | Container | 59 |
| 4.8.4 | Layout-Manager | 60 |
| 4.9 | Multimedia mit Applets | 60 |
| 4.10 | Der Applet-Kontext | 61 |
| 4.11 | Kommunikation zwischen verschiedenen Applets | 61 |
| 4.12 | Objekte im Browser anzeigen | 61 |
| 4.13 | Zugriff auf JavaScript | 62 |
| 4.14 | Auftretende Probleme bei der Entwicklung und Ausführung von Applets | 63 |
| 4.15 | Doppelnutzung als Applet und Applikation | 64 |
| 4.16 | Signierte Applets / JAR-Dateien signieren | 65 |
| 4.16.1 | Signierte Intranet-Applets | 65 |
| 4.16.2 | Signierte Internet-Applets | 67 |
| 4.17 | Kommunikation über einen URL (Netzwerkverbindungen) | 67 |
| 4.17.1 | Grundbegriffe der Netzwerkprogrammierung | 67 |
| 4.17.1.1 | IP-Adresse | 67 |
| 4.17.1.2 | Hostname | 67 |
| 4.17.1.3 | Client | 67 |
| 4.17.1.4 | Server | 67 |
| 4.17.1.5 | Domain | 67 |
| 4.18 | Die Streams | 69 |
| 4.19 | Die URLConnection | 70 |
| 5. | SERVLETS IN JAVA | 72 |
| 5.1 | CGI - Skripte und Servlets | 72 |
| 5.2 | Aufgaben von Servlets | 72 |
| 5.3 | Vorteile von Servlets gegenüber den herkömmlichen CGI-Skripten | 73 |
| 5.4 | Der Kommunikationsprozess im WWW | 74 |
| 5.5 | Die Servlet - Engine | 74 |
| 5.6 | Der Lebenszyklus von Servlets | 74 |
| 5.6.1 | Die init()-Methode | 74 |
| 5.6.2 | Die service()-Methode | 75 |
| 5.6.3 | Das SingleThreadModel | 75 |
| 5.6.4 | Die destroy()-Methode | 75 |
| 5.7 | Datenflussbei Applet - Server - Servlet - Kommunikation | 77 |
| 5.8 | Interaktion zwischen dem Server und dem Client | 77 |
| 5.8.1 | Aus der Sicht des Clients | 77 |
| 5.8.2 | Aus der Sicht des Servers | 77 |
| 5.9 | Grundstruktur der Servlets | 78 |
| 5.9.1 | Der Aufruf aus der HTML-Datei | 79 |
| 5.9.2 | Client-Anfragen bearbeiten - Formulardaten | 79 |
| 5.9.3 | Formulardaten aus einem Servlet lesen | 80 |
| 5.9.4 | Server Antwort generieren | 80 |
| 5.10 | Cookies | 83 |
| 5.10.1 | Vorteile von Cookies | 83 |
| 5.10.2 | Probleme mit Cookies | 83 |
| 5.10.3 | Cookies vom Client lesen | 84 |
| 5.10.4 | Cookies mit einem angegebenen Namen finden | 85 |
| 5.11 | Sessions | 85 |
| 5.11.1 | HttpSession-Objekt zur akt. Anfrage nachschauen | 85 |
| 5.11.2 | Informationen zu einer Sitzung nachschauen | 85 |
| 5.12 | Applets als Frontend für Servlets | 87 |
| 5.12.1 | Daten mit GET senden und Ergebnisse direkt verarbeiten (HTTP-Tunneling) | 87 |
| 5.12.2 | Serialisierte Datenstrukturen lesen | 89 |
| 5.12.3 | Daten mit POST senden und Ergebnisse direkt verarbeiten | 89 |
| 5.13 | JDBC (Java Database Connectivity) | 91 |
| 5.13.1 | Datenbanktreiber laden | 91 |
| 5.13.2 | Die Verbindungs-URL definieren | 91 |
| 5.13.3 | Die Verbindung herstellen mit getConnection() | 91 |
| 5.13.4 | Anweisungen erzeugen | 91 |
| 5.13.5 | Abfrage ausführen | 92 |
| 5.13.6 | Ergebnisse verarbeiten | 92 |
| 5.13.7 | Verbindung schliessen | 92 |
| 5.14 | Threads | 93 |
| 5.14.1 | Was sind Threads | 93 |
| 5.14.2 | Zustände von Threads | 93 |
| 5.14.3 | Ausführen und starten des Threads | 95 |
| 5.14.4 | Verwendung von Threads in Applets | 95 |
| 5.14.5 | Synchronisierung von Threads | 95 |
| 5.14.6 | Deadlocks | 97 |
| 6. | PROJEKTBESCHREIBUNG | 98 |
| 6.1 | Randbedingungen für die einzutragenden Werte | 98 |
| 6.2 | Das ER-Model | 100 |
| 6.3 | Darstellung mit Hilfe des Applet auf der Client-Seite | 101 |
| 6.3.1 | Daten eingeben und absenden | 102 |
| 6.3.2 | Ergebnisse in graphischer Form darstellen | 104 |
| 6.3.3 | Datenfluss der Applet - Server - Servlet-Kommunikation des Projektbeispiels | 106 |
| 6.3.3.1 | Aufruf der Datei AppletCon.class aus der HTML-Datei | 107 |
| 6.3.4 | Realisierung des Applet | 108 |
| 6.3.4.1 | Eingabedaten des Clients übernehmen und URL-Verbindung aufbauen | 110 |
| 6.3.4.2 | Ergebnisdaten einlesen | 110 |
| 6.3.4.3 | Maximalen Wasserstand ermitteln | 112 |
| 6.3.4.4 | Zeichnen der X-Achse | 113 |
| 6.3.4.5 | Zeichnen der Y-Achse | 113 |
| 6.3.4.6 | Zeichnung der XY-Werte bzw. Zeichnung des Graphen | 114 |
| 6.3.4.7 | Ablaufplan des Exchange-Sort-Verfahren ermitteln | 115 |
| 6.4 | Beschreibung der Serverseite bzw. der Servletverarbeitung | 116 |
| 6.4.1 | Datenbanktreiber laden und Datenbankverbindung herstellen | 116 |
| 6.4.2 | Parameterwerte aus der Umgebungsvariablen einlesen | 117 |
| 6.4.3 | Datenbankabfrage ausführen | 117 |
| 6.4.4 | Abfrageergebnis einlesen und Daten an das Applet senden | 118 |
| 7. | REALISIERUNG DES SERVLETS (ZUFALLSWERTE ERZEUGEN) | 119 |
| 7.1 | Aufgabendefinition | 119 |
| 7.2 | Programmablauf | 119 |
| 7.3 | Klassenbeschreibung | 122 |
| 7.3.1 | Allgemeines | 122 |
| 7.3.2 | servlet WerteErzeugen | 122 |
| 7.3.3 | Klasse Verarbeitung | 128 |
| 7.3.4 | Klasse Wasserstand | 132 |
| 7.3.5 | Klasse Zufallszahlen | 133 |
| 7.3.6 | Klasse DatumZeit | 136 |
| 8. | INSTALLATION UND INBETRIEBNAHME | 138 |
| 9. | GLOSSAR | 139 |
| 10. | LITERATURHINWEISE | 142 |
ALIGN Mit diesem Attribut wird die Ausrichtung des Applets spezifiziert. LEFT Plaziert das Applet am linken Rand der Seite. Der Text auf dieser Seite erscheint in dem Raum rechts vom Applet. RIGHT Plaziert das Applet am rechten Rand der Seite. Der Text auf dieser Seite erscheint in dem Raum links vom Applet. BOTTOM Plaziert den unteren Rand des Applets zum unteren Rand des Textes in der akt. Zeile. Das CODE-Attribut Dieses Attribut gibt den Namen der Klasse an. Der Name bezieht sich relativ zum Standort der aktuellen Seite. Dies kann entweder ein lokales Verzeichnis oder einen URL im Netz sein. Absolute Pfadnamen sind mit diesem Attribut nicht erlaubt. CODEBASE Dieses Attribut teilt dem Browser mit, dass sich die Klassendatei unterhalb des im CODEBASE-Tag angegebenen Verzeichnis befindet. ARCHIVE Listet die Java-Archivdateien auf, die Klassen und andere Ressourcen für das Applet enthalten, wobei die Dateien vom Webserver vor dem Laden des Applets durch den Browser geholt werden. OBJECT Das OBJECT-Tag gehört zum Standard HTML 4.0 und wird anstelle des APPLET-Tags empfohlen. Für OBJECT stehen 35 diverse Attribute zur Verfügung. Mit Hilfe von OBJECT kann man unterschiedliche Arten von Objekten laden, z.B. Applets oder ActiveXKomponenten. NAME Es gibt die Möglichkeit dem Applet einen Namen zu geben, mit dem man sich aus einem Skript aus auf das Applet beziehen kann. Netscape und der Internet Explorer erlauben den Aufruf von Methoden eines Applets auf einer Seite über JavaScript. [...]
Die Parameterübernahme aus der HTML-Datei realisiert man über das HTML-Tag PARAM zusammen mit Attributen, die man selbst definiert. In dem Applet ‚Appletbeisp1‘ hat jeder Parameter einen Namen, damit man jeden einzelnen davon mit Hilfe des Applets ansprechen kann (<PARAM NAME=wert1 VALUETYPE=DATA VALUE=100>). Dieser Parameter trägt den Namen wert1 und enthält den Wert 100. Um nun die Parameter an das Applet zu übergeben, wird im Appletcode die Methode getParameter() verwendet, wobei diese Methode nur in der init()-Methode aufgerufen werden kann. Die in der HTML-Seite eingebetteten Parameter werden immer als Strings übergeben, d.h. dass man z.B. bei Berechnungen eine Typenumwandlung durchführen muss. Das erledigt man bei der Umwandlung in einen Integer mit der passenden Methode parseInt() der Klasse Integer. Würde man in meinem Beispiel eine Zahl umwandeln wollen, um später eine Berechnung durchzuführen, würde die Anweisung wie folgt aussehen: [...]
Auf die grundlegenden HTML-Befehle will ich hier nicht eingehen, da dies zu weit führen würde. Wer dennoch keine Erfahrung mit HTML hat, kann sich unter www.selfhtml.com informieren. Wichtig für das Applet sind die <APPLET>-Tags und ihre Attribute. Um nun die Java-Klassendatei aufzurufen wird das Attribut code verwendet, das hier die Datei Appletbeisp1.class lädt. Um nur das Applet im Browser darzustellen, benötigt man mindestens den Tag <applet code=“Appletbeisp1.class“ width=500 height=300></applet> Die beiden Tags WIDTH und HEIGHT legen die Größe des Fensters in Pixeln fest, das für das Applet vorgesehen ist. Mit dem </applet> kennzeichnet man das Ende des HTMLAbschnittes des Applets. [...]
In den Warenkorb
58,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832452414
Arbeit zitieren:
Ziegler, Alexander Januar 2001: Programmierung mit Servlets und Applets in Java, Hamburg: Diplomica Verlag
Schlagworte:
Servlets, JDPL, Applets- und Applications, OOP



