Grundlagen der Java-Technologien: Threads, Servlets, JSP und JDBC
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 5,67 KB
Was ist ein Thread?
Die Java Virtual Machine (JVM) ist multi-threaded. Das heißt, sie ist fähig zur gleichzeitigen Ausführung mehrerer Sequenzen (Programme). Die JVM kümmert sich um alle Details wie die Zuweisung von Ausführungszeiten, Prioritäten usw., ähnlich wie ein Betriebssystem mehrere Prozesse verwaltet.
Der grundlegende Unterschied zwischen einem Betriebssystemprozess und einem Thread besteht darin, dass Java-Threads innerhalb der JVM laufen (die selbst ein Prozess des Betriebssystems ist) und daher alle Ressourcen teilen, einschließlich des Speichers sowie der darin definierten Variablen und Objekte. Prozesse dieser Art, bei denen Ressourcen gemeinsam genutzt werden, werden manchmal als „leichtgewichtige Prozesse“ bezeichnet.
Threads sind nützlich, weil sie es ermöglichen, den Programmablauf in zwei oder mehr Teile zu unterteilen, die sich jeweils einer bestimmten Aufgabe widmen. Zum Beispiel kann ein Thread die Kommunikation mit dem Benutzer übernehmen, während ein anderer im Hintergrund Aufgaben wie die Übertragung einer Datei oder den Zugriff auf Systemressourcen ausführt.
Die Thread-Klasse
Der direkteste Weg, ein Multi-Thread-Programm zu erstellen, besteht darin, die Thread
-Klasse zu erweitern und die Methode run()
zu überschreiben. Diese Methode wird aufgerufen, wenn der Thread gestartet wird (durch Aufruf der start()
-Methode der Thread
-Klasse). Der Thread beginnt mit dem Aufruf der run()
-Methode und endet, wenn diese beendet ist.
- Die Klasse
Thread
befindet sich im Paketjava.lang
und muss daher nicht explizit importiert werden. - Der Konstruktor
public Thread(String str)
erhält einen Parameter, der zur Identifizierung des Threads dient. - Die
run()
-Methode enthält den Ausführungsblock des Threads. Innerhalb dieser Methode gibtgetName()
den Namen des Threads zurück (der als Argument an den Konstruktor übergeben wurde). - Die Hauptmethode erstellt typischerweise Objekte der
Thread
-Klasse und startet sie mit dem Aufruf derstart()
-Methode (welche den neuen Thread startet und dessenrun()
-Methode aufruft). - Eine typische Ausgabe zeigt zuerst die Nachricht vom Ende des Haupt-Threads. Die Implementierung von Threads ist asynchron. Nach dem Aufruf der
start()
-Methode läuft die Ausführung des neuen Threads unabhängig von den anderen Threads weiter. - In der Ausgabe sind die Einträge der verschiedenen Threads gemischt. Die virtuelle Maschine teilt jedem Thread Rechenzeit zu.
Lebenszyklus eines Threads
Technologien für dynamische Webseiten
Was ist ein Servlet?
Servlets sind Java-Klassen, die die Funktionalität eines Webservers erweitern, indem sie die Generierung dynamischer Webseiten ermöglichen. Eine Laufzeitumgebung, bekannt als Servlet-Engine, verwaltet das Laden und Entladen von Servlets. Sie arbeitet mit dem HTTP-Webserver zusammen, um Anfragen von entfernten Benutzern (Clients) an das Servlet weiterzuleiten und die Antwort an die Clients zurückzusenden.
Servlets wurden entwickelt, um die Einschränkungen von Applets zu überwinden, insbesondere:
- Begrenzung des Zugriffs auf andere Server (nicht den Host-Server des Applets).
- Beschränkung des Zugriffs auf Serverdienste.
- Sicherheitsbeschränkungen (z. B. die Möglichkeit des Reverse-Engineerings, um auf die Geschäftslogik des Systems zuzugreifen).
Merkmale von Servlets
Die Merkmale, die Servlets sehr nützlich machen, sind:
- Sie sind zu 100 % reines Java und somit plattformunabhängig.
- Sie sind objektorientiert und verfügen somit über alle daraus resultierenden Merkmale.
- Sie können alle Java-Technologien nutzen: Speicherkassen, Threads, Datenbankzugriff, Stream I/O, RMI, Netzwerkzugriff usw.
- Sie sind sicher, da sie den Java Security Manager nutzen.
- Die Kommunikation mit anderen Servlets ist einfach.
- Durch die Ausnahmebehandlung können Fehler während der Ausführung des Servlets einfach gehandhabt werden.
Was ist JSP?
Eine JSP (Java Server Page) ist eine Vorlage für eine Webseite, die Java-Code verwendet, um dynamisch ein HTML-Dokument zu erzeugen. Die JSP wird von einer Serverkomponente namens JSP Container verarbeitet, die die JSP in ein äquivalentes Java-Servlet übersetzt. Daher kann alles, was mit einer JSP getan werden kann, auch mit einem Servlet erreicht werden.
Vorteile von JSP
- Sie werden bei Bedarf automatisch erstellt.
- Ihre Platzierung im gemeinsamen Webserver-Dokumentenverzeichnis macht sie leichter auffindbar als Servlets.
- JSP-Seiten ähneln HTML, wodurch sie besser mit Webentwicklungstools (z. B. Dreamweaver, FrontPage) kompatibel sind.
JDBC-Technologie
Diese Technologie ermöglicht es uns, über Java- oder JSP-Programme Verbindungen zu einer Datenbank herzustellen und SQL-Anweisungen auszuführen, um Abfragen durchzuführen.
Die JDBC-API
Die JDBC-API ist eine Standardtechnologie von Sun (jetzt Oracle). Ihre Verwendung ermöglicht es Entwicklern von Java- und JSP-Seiten, auf eine Datenbank-Engine zuzugreifen, unabhängig von deren Typ.
Die wichtigsten Merkmale der JDBC-API sind:
- Möglichkeit zur Nutzung der Sprache SQL (Structured Query Language).
- Einfacher Zugriff auf alle Funktionen von SQL.
- Die von SQL zurückgegebenen Ergebnisse werden als Objekte behandelt, sodass etwaige Fehler als Ausnahmen behandelt werden können.