Nutzung einer Datenbank mit Java-Servlets
- Art: Diplomarbeit
- Autor: Michael Wollenhaupt
- Abgabedatum: Juni 2001
- Umfang: 124 Seiten
- Dateigröße: 2,4 MB
- Note: 1,0
- Institution / Hochschule: Fachhochschule Aachen Deutschland
- ISBN (eBook): 978-3-8324-5243-8
-
ISBN (Paperback) :
978-3-8324-5243-8 P - ISBN (CD) :978-3-8324-5243-8 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Wollenhaupt, Michael Juni 2001: Nutzung einer Datenbank mit Java-Servlets, Hamburg: Diplomica Verlag
- Schlagworte: Informationssystem, Verschlüsselung, Apache, Jarkata Tomcat
In den Warenkorb
58,00 €
Diplomarbeit von Michael Wollenhaupt
Einleitung:
In jeder Organisation gibt es ein so genanntes schwarzes Brett, auf dem aktuelle Informationen ausgehangen werden. Um zu prüfen, ob neue Informationen aushängen, muss oft viel Zeit und Aufwand betrieben werden. Es wäre schön, wenn es zusätzlich zu dem schwarzen Brett noch eine Informationsseite im Internet geben würde. Auf dieser Seite könnten dann kurze Informationen veröffentlicht werden, die darauf hinweisen, dass eine Änderung am schwarzen Brett durchgeführt wurde. Es könnten auch komplette Hinweise über z.B. Terminänderungen und Fristen auf dieser Informationsseite publiziert werden.
Dadurch ist die Möglichkeit gegeben, aktuelle Informationen über das Internet abzurufen. Somit ist der Informationsweg flexibler und effizienter gestaltet. Dieses Informationssystem kann und soll das schwarze Brett nicht ersetzen, aber sinnvoll erweitern.
Mit dieser Diplomarbeit wird solch ein Informationssystem speziell für den Fachbereich Elektrotechnik und Informationstechnik der Fachhochschule Aachen realisiert.
Die in der Studie erwähnte CD ist im Lieferumfang nicht enthalten, da sie für das Verständnis der Studie nicht notwendig ist.
Inhaltsverzeichnis:
| 1. | Motivation | 1 |
| 2. | Analyse | 2 |
| 2.1 | Definition der Aufgabenstellung | 2 |
| 2.2 | Der vorhandene Webserver | 3 |
| 2.2.1 | Netzstruktur | 4 |
| 2.2.2 | Eingesetzte Software | 5 |
| 2.3 | Anforderung an das Informationssystem | 6 |
| 2.3.1 | Allgemeine Anforderungen | 7 |
| 2.3.1.1 | Sicherheit | 7 |
| 2.3.1.2 | Flexibilität | 8 |
| 2.3.1.3 | Antwortzeit | 8 |
| 2.3.1.4 | Kosten | 9 |
| 2.3.2 | Zusätzliche Anforderung an die Datenbank | 9 |
| 2.3.3 | Zusätzliche Anforderung an den Applikation-Server | 9 |
| 2.3.4 | Zusätzliche Anforderung an die Webanwendung | 10 |
| 3. | Lösungskonzepte | 13 |
| 3.1 | Auswahl der Softwarekomponenten | 13 |
| 3.1.1 | Applikation-Server – Servlet Engine | 14 |
| 3.1.2 | Datenbank Management System | 16 |
| 3.1.3 | Datenbanktreiber | 18 |
| 3.1.4 | Zusätzliche Softwarekomponenten | 20 |
| 3.1.5 | Zusammenfassung | 20 |
| 3.2 | Sicherheit | 21 |
| 3.2.1 | Verschlüsselung | 21 |
| 3.2.2 | Sicherheitsebenen | 25 |
| 3.2.3 | Sitzungsverfolgung | 26 |
| 3.2.4 | Logmechanismus | 28 |
| 3.2.5 | Abkapselung der Daten von der Webanwendung | 30 |
| 3.3 | Flexibilität | 31 |
| 3.3.1 | Nutzung von Dokumentenvorlagen | 31 |
| 3.3.2 | Konfiguration der Webanwendung | 32 |
| 3.3.3 | Hilfesystem | 33 |
| 3.4 | Antwortzeit | 34 |
| 3.4.1 | Datenbank Verbindungspool | 34 |
| 3.4.2 | Komprimierter Datenstrom | 36 |
| 3.5 | Entwurf der Datenbank | 36 |
| 3.6 | Definition der Hilfsklassen | 37 |
| 3.7 | Definition der Servletklassen | 39 |
| 3.7.1 | About | 39 |
| 3.7.2 | AutoLöschen | 40 |
| 3.7.3 | FächerVerwalten | 40 |
| 3.7.4 | Hilfe | 40 |
| 3.7.5 | Logfile | 41 |
| 3.7.6 | Login | 42 |
| 3.7.7 | LoginCheck | 42 |
| 3.7.8 | NamenÄndern | 42 |
| 3.7.9 | StartUp | 42 |
| 3.7.10 | Übersicht | 43 |
| 3.7.11 | UserVerwalten | 44 |
| 3.7.12 | VorlagenVerwalten | 45 |
| 3.7.13 | Zusammenfassung | 45 |
| 4. | Realisierung des Informationssystems | 49 |
| 4.1 | Kommunikationsschema | 49 |
| 4.2 | Erweiterung des Webservers und der Firewall | 50 |
| 4.3 | Umsetzung der Datenbank | 50 |
| 4.3.1 | Verwendete Datentypen | 51 |
| 4.3.2 | Gegebene Einschränkungen durch MySQL | 53 |
| 4.3.3 | Erstellen einer Datenbank mit autorisiertem Zugriff | 54 |
| 4.4 | Aufbau der Webanwendung | 55 |
| 4.4.1 | Benötigte Hilfsklassen | 55 |
| 4.4.1.1 | Link | 57 |
| 4.4.1.2 | Log | 57 |
| 4.4.1.3 | SchliesseVerbindungen | 59 |
| 4.4.1.4 | Utils | 59 |
| 4.4.1.5 | VerbindungsPool | 61 |
| 4.4.2 | Generelle Beschaffenheit einer Servletklasse | 64 |
| 4.4.3 | Integration der vorgestellten Konzepte | 66 |
| 4.4.3.1 | Das Sicherheitskonzept | 66 |
| 4.4.3.2 | Flexibilität | 67 |
| 4.4.3.3 | Antwortzeit | 68 |
| 4.4.4 | Interaktion der Servlets mit dem Benutzer | 69 |
| 4.4.5 | Spezialisierung der generellen Servletklassen | 70 |
| 4.4.6 | Servletklassen | 74 |
| 4.4.6.1 | About | 75 |
| 4.4.6.2 | AutoLöschen | 75 |
| 4.4.6.3 | FächerVerwalten | 75 |
| 4.4.6.4 | Hilfe | 77 |
| 4.4.6.5 | Logfile | 77 |
| 4.4.6.6 | Login | 77 |
| 4.4.6.7 | LoginCheck | 78 |
| 4.4.6.8 | NamenAendern | 80 |
| 4.4.6.9 | StartUp | 80 |
| 4.4.6.10 | Übersicht | 84 |
| 4.4.6.11 | UserVerwalten | 86 |
| 4.4.6.12 | VorlagenVerwalten | 87 |
| 5. | Erfahrung im Testbetrieb | 89 |
| 5.1 | Antwortzeit | 89 |
| 5.2 | Fehler in Tomcat | 90 |
| 5.3 | Die Java virtuelle Maschine (JVM) | 91 |
| 5.4 | Komprimierter Datenstrom | 92 |
| 6. | Bewertung und Ausblick | 93 |
| 6.1 | Bewertung | 93 |
| 6.1.1 | Informationsflusserhöhung | 93 |
| 6.1.2 | Sicherheit | 93 |
| 6.1.3 | Antwortzeit | 94 |
| 6.1.4 | Entstandene Kosten | 95 |
| 6.1.5 | Flexibilität | 95 |
| 6.1.6 | Administrations- und Wartungsaufwand | 97 |
| 6.1.7 | Einfache Nutzbarkeit | 98 |
| 6.1.8 | Darstellung der generierten Webseiten | 98 |
| 6.1.9 | Datenbankintegration | 98 |
| 6.2 | Verbesserungs- und Erweiterungsvorschläge | 99 |
| 6.3 | Ausblick | 101 |
| 7. | Anhang | 102 |
| 7.1 | Erweiterung des Apache Webservers | 102 |
| 7.2 | Installation von Tomcat | 104 |
| 7.3 | Schnittstelle zwischen Apache und Tomcat | 105 |
| 7.4 | Installation des MySQL Datenbanksystems | 106 |
| 7.5 | Installation der Webanwendung | 107 |
| 7.6 | Integrationsverweise | 109 |
| 7.7 | Inhaltsstruktur der beigelegten CD | 110 |
| 7.8 | Glossar | 111 |
| 7.9 | Abbildungsverzeichnis | 116 |
| 7.10 | Tabellenverzeichnis | 117 |
| 7.11 | Literaturverzeichnis | 117 |
Der Präfix kann auch weggelassen werden, was implizit einen leeren Präfix erzeugt. Weiter kann die Angabe der maximalen Logdateigröße als long oder als String variiert werden. Eine letzte Variation gibt die Möglichkeit, nur die Logdatei anzugeben. Daraus resultieren fünf Konstruktoren, die eine Erzeugung eines Log-Exemplars sehr flexibel gestalten lassen. Ein Objekt, das ein Log-Exemplar besitzt, kann mit der Methode "eintragen" Strings an das Exemplar abgeben, welches unter der Beachtung von Synchronisationsmechanismen den Eintrag in die Logdatei mit Datum, Uhrzeit und dem definierten Präfix vornimmt. Dabei wird die Logdatei auf Existenz, Schreibbarkeit und Unterschreitung der maximalen Größe hin geprüft. Werden die Bedingungen nicht erfüllt, wird die Logdatei neu erzeugt und evtl. die alte Logdatei gesichert. Zwei weitere Methoden ermöglichen die Ausgabe einer HTML konformen Tabelle mit den eingebetteten Logeinträgen aus der Logdatei. Dabei liefert die "anzeigen" Methode die Reihenfolge der Ereignisse so, wie sie in der Logdatei gespeichert sind (zeitlich letzter Eintrag ist letzter Eintrag in der Logdatei), wobei die Methode "reverseAnzeigen" die chronologische Anordnung der Logeinträge umkehrt. Beide Methoden nehmen eine Filter- und Suchzeichenkette entgegen. Es werden damit die Einträge hervorgehoben, die den Suchstring beinhalten, und ausgeblendet, wenn sie den Filterstring nicht beinhalten. Wird für eine Zeichenkette ein leerer String angegeben, wird die zugehörige Such- oder Filterfunktion deaktiviert. Die Log Klasse besitzt noch drei private Methoden: fileKleinerMax, filevorhanden und sichern_loeschen. Dabei liefert die boolsche fileKleinerMax-Methode ein wahr zurück, wenn die Logdatei kleiner ist als maximal erlaubt, sonst ein unwahr. Die boolsche filevorhanden-Methode prüft, ob der angebende Pfad und die zugehörige Datei existieren. Ist dies nicht der Fall, wird die Datei mitsamt des kompletten Pfades erzeugt. Die Methode gibt dann, wenn die Datei vorhanden ist, ein wahr zurück, sonst ein unwahr und eine Fehlermeldung auf STDERR. Mit der sichern_loeschen-Methode kann die Logdatei gelöscht und evtl. gesichert werden, je nach Angabe des boolschen Aufrufparameters "löschen". Es wird ein Hinweis des Löschens in die neue Logdatei geschrieben. Tritt bei der Methode ein Fehler [...]
Exemplare der Link-Klasse werden in den Servlets benutzt, um die in dem Dokumentenkopf eingebundenen Verweise erstellen zu können. Dabei benötigt ein Link-Objekt einen Namen, der ihn in der Webseitendarstellung repräsentiert, und einen Verweis, der den aufzurufenden Servletnamen und entsprechende Parameter und Anker enthält. Mit einem weiteren Attribut kann die Farbe angegeben werden, die zur Darstellung des Verweises genutzt werden kann. Das Farbattribut wird in der Webanwendung nicht genutzt und ist für den weiteren Gebrauch dieser Klasse implementiert worden. Somit ergeben sich zwei Konstruktoren, beide nehmen den Namen und den Verweis als String entgegen, wobei ein Konstruktor noch zusätzlich das Farbattribut als String benötigt. Da alle Servlets in einem Verzeichnis auf dem Webserver liegen, was wahrscheinlich nicht das Wurzelverzeichnis ist, gibt es noch eine statische Variable mit dem Namen www_pfad. Diese Variable soll den Pfad zugewiesen bekommen, über den die Servlets auf dem Webserver erreichbar sind. Dies ermöglicht nicht nur relative Aufrufe der Servlets, sondern Aufrufe mit voller Pfadangabe, wie sie von einer internen Methode benötigt wird. Die Methoden der Link-Klasse ähneln den Methoden einer Java-Bean Klasse, da sie als getColor, getName, getUrl und isPfadSet bezeichnet sind. Bis auf die letzte boolsche Methode liefern die anderen Methoden den geforderten String. Die getUrl Klasse liefert als String den definierten www_pfad als Präfix mit dem eigentlichen String, der beim Konstruktor als URL definiert wurde. Die Methode getLink übergibt alle Strings, die die anderen Methoden einzeln liefern, in einem Feld. [...]
Um die Webanwendung zu realisieren, werden erst die Hilfsklassen implementiert, damit sich die Servlets auf diese Hilfsklassen stützen können. Dabei soll das Wort Hilfsklasse nicht abwertend wirken, da z.B. die Log oder VerbindungsPool Klassen sehr aufwendig sind und mit einen Großteil der Entwicklungszeit in Anspruch genommen haben. Meist werden ein oder wenige Exemplare einer Hilfsklassen erzeugt, diese aber von mehreren konkurrierenden Servlets gleichzeitig genutzt. Deshalb muss bei der Implementierung der konkurrierende Zugriff auf Exemplare mit berücksichtigt werden. Die Klassen werden in alphabetischer Reihenfolge aufgeführt, dies steht aber in keinem Zusammenhang mit dem Grad ihrer Wichtigkeit. Damit die Übersichtlichkeit gewahrt bleibt, wird auf die Darstellung der Hilfsklassen mit ihren Methoden unter Berücksichtigung von Zugriffsrechten in Abb. 4-2 verwiesen. Es sei auch darauf hingewiesen, dass VerbindungsPool der Eigenname der Klasse ist und Verbindungspool ein Synonym für den Behälter bzw. Vektor der Datenbankverbindungen ist. Allgemein werden die Eigennamen der Klassen für ihre Beschreibung genutzt, wobei Umlaute, anders als im Quellkode, genutzt werden. [...]
In den Warenkorb
58,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832452438
Arbeit zitieren:
Wollenhaupt, Michael Juni 2001: Nutzung einer Datenbank mit Java-Servlets, Hamburg: Diplomica Verlag
Schlagworte:
Informationssystem, Verschlüsselung, Apache, Jarkata Tomcat



