26.04.23Guido Frisch VL Webtechnologie BA Mannheim 1
JAVA
Guido Frisch
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 2
Inhalt• Java-Plattform • Java-Applets • Java Sprachumfang / Unterschiede zu JavaScript, sofern
vorhanden... – Datentypen – Operatoren – Kontrollstrukturen – Klassen
• Aufbau eines Java Programms • JavaBeans • JavaServlets • Java Server Pages (JSP) • Vor- / Nachteile von Java und Java-Applets
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 3
Java Plattform• Computer-Plattform allgemein: System
bestehend aus Kombination bestimmter Hardware-Architektur mit darauf ablaufendem Betriebssystem (Intel-Prozessor / Linux)
• Software muss für jede Computer-Plattform neu kompiliert werden
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 4
Java Plattform• Java-Anwendungen funktionieren auf jeder
beliebigen Computer-Plattform• Voraussetzung: Computer-Plattform
spezifische Java-Laufzeitumgebung (Java Base Plattform)
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 5
Java Plattform• Komponenten:
– Java Virtual Machine (JVM) – Überwacht Ausführung– Java Application Programming Interface (Java API) –
Sammlung von Standard-Klassenbibliotheken regeln Zugriff auf Ressourcen der Computer-Plattform
– Java Interpreter – interpretiert den kompilierten Byte-Code
– JIT-Compiler (Just in Time) – übersetzt kurze Programmabschnitte in Binärcode
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 6
Java Virtual Machine
Java PlattformJava Compilation Environment
.java
Java-Compiler
.class
Class LoaderByte-Code
VerifierJavaKlassen-Bibliothek
Java JIT -Compiler
Laufzeit-Umgebung
Betriebssystem
Hardware
JavaInterpreter
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 7
Java Plattform• Java 2.0 in drei unterschiedlichen
Editionen– Java 2 Standard Edition (J2SE)– Java 2 Micro Edition (J2ME):
Unterhaltungselektronik, Embedded-Systems (PDA, Mobile…)
– Java 2 Enterprise Edition (J2EE): Highend-Systeme, verteilte Business-Applikationen (Multi-Tier Architecture)
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 8
Java-Applets
• WWW als Motor für Java (Interaktion zwischen unterschiedlichster Hardware)
• Java wird zur 1. Programmiersprache des WWW• Auf Servern werden Java-Programme (Applets)
zur Verfügung gestellt• Applets werden unter der Kontrolle des
Browsers ausgeführt (Sandbox)• http://java.sun.com/applets/
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 9
Java-Applets• Einbindung in HTML:
<APPLET CODE=“HelloWorld.class“CODEBASE=‘http://WWW. inf.uni-jena.de/sack/java/“WIDTH=300HEIGHT=500><PARAM Name=“Parameter1“ VALUE=“1“></APPLET>
• Im Gegensatz zu JavaScript nicht zwangsläufig an HTML-Dokument gebunden
• Code nicht sichtbar
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 10
Datentypen• Einfache:• char: 16 Bit Integerwert, der ein Unicode-Zeichen repräsentiert.• Ganzzahlige Datentypen werden stets als vorzeichenbehaftetes
Zweierkomplement kodiert:– byte: 8 Bit– short: 16 Bit– int: 32 Bit– long: 64 Bit
• Java unterscheidet zwei Fließkomma Datentypen:– float: 32 Bit gemäß IEEE 154– double 64 Bit
• boolean: logischer Wert, entweder true oder false• Variablendeklarationen für einfache Datentypen entsprechen der
C/C++ Syntax: int a = 123;
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 11
Operatoren
Rang Operator Operation
1 ++ einwertiges Pre- oder Postinkrement
-- einwertiges Pre- oder Postdekrement
+,- einwertige Addition, Subtraktion
~ einwertiges bitweises Komplement
(type) Umwandlungsoperator (cast)
2 *‚ /, % Multiplikation, Division, Modulo
3 +, - Addition (und Stringverkettung), Subtraktion
4 <<, >>, >>> Shift-Operatoren (links, rechts, rechts mit 0-Erweiterung)
5 <, <=, >, >= Vergleichsoperatoren
instanceof Typvergleich
6 ==, != Test auf (Un-)Gleichheit
7 & bitweise logische UND-Verknüpfung
8 ^ bitweise logische EXOR-Verknüpfung
9 | bitweise logische ODER-Verknüpfung
10 && bedingtes logisches UND
11 || bedingtes logisches ODER
12 ?: dreiwertige konditionale Zuweisung
13 = Zuweisung
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 12
KontrollstrukturenDie Kontrollstrukturen in Java sind äquivalent zu denen in C/C++, d. h. es existieren folgende Konstrukte:
– if (bedingung) then {anweisungen} else {anweisungen}– while (bedingung) {anweisungen}– do {anweisungen} while (bedingung)– for (start; bedingung; iteration) {anweisungen}– switch: konditionale Mehrfachverzweigung– break: Abbruch der Ausführung des aktuellen
Anweisungsblocks und Fortsetzung im umgebenden Anweisungsblock,
– continue: Abbruch der Verarbeitung und Fortsetzung bei Folgeiteration
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 13
Klassen• Sammlung von Attributen und Methoden• Attribute und Methoden definieren Inhalt und
Funktionalität eines Objektspublic class Kreis {
private float Radius;…public float Kreisflaeche( {
returns 3,l415*Radius*Radius;}
…}
• Klasse Kreis wird über das Attribut Radius beschrieben und verfügt über die Methode Kreisflaeche
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 14
Klassen• Allen Klassen ist die Basisklasse object gemeinsam• object stellt gemeinsame Methoden und Operatoren
bereit– equals(): Vergleich von Objekten,– clone(): erzeugt Kopie eines Objekts,– getclass(): dient der lnformationsgewinnung über die Klasse
einer bestimmten Objektinstanz, – hashcode(): generiert Hashcode zum Speichern eines Objekts in
der HashTable Klasse,– toString(): ermöglicht Textausgabe eines Objekts– Instance0f(): ergibt true wenn Objekt auf der linken Seite eine
Instanz der auf der rechten Seite angegebenen Klasse ist.
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 15
Aufbau eines Java-Programms
• Besteht aus einer Menge von Klassendefinitionen <className>.java
• Eine ausgezeichnete Klasse muss die Methode main() enthalten = Beginn des Programms
• Es gibt in Java keine globalen Variablen• Variablen werden über
<className>.<methodName> angesprochen
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 16
Speicherverwaltung
• Anforderung von Speicherbereich für eine Objektinstanz erfolgt über das Schlüsselwort: new
• Unterschied zu C und C++: Garbage Collection verhindert explizite Speicherfreigabe
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 17
Exception Handling• Vordefinierte Unterklassen
– java.lang.Error: Fehlerbehandlung– Java.lang.Exception: Behandlung von Ausnahmen
• Vergleichbar mit C++• Kontrollstrukturen für die Ausnahmebehandlung:
– try: schließt den Anweisungsblock ein, in dem die Ausnahme auftreten
– catch: folgt der try-Anweisung und spezifiziert die Behandlung eines bestimmten Ausnahmefalls,
– finally folgt allen catch-Klauseln eines try-Blocks und gibt die Default-Ausnahmebehandlung an, die durchgeführt wird, wenn keine der catch-Klauseln zutrifft.
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 18
Ereignisbehandlung• Ereignisse = Benutzereingaben
(Mausoperationen, Tastatureingaben, Schließen von Fenstern etc.)
• Ereignisse sind in java.awt (Java Abstract Windowing Toolkit) spezifiziert
• Ereignisse rufen assoziierte Methode auf• Arten des Ereignisempfangs:
– Version 1.02: handleEvent() leitet an konkrete Verarbeitungsmethoden weiter
– Version 1.1: Ereignis/Listener-Konzept z.B. MouseListener oder KeyboardListener
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 19
JavaBeans• Infrastruktur zur Entwicklung wieder verwendbarer
Komponentenbasierter Software• JavaBean-Komponente muss eine Reihe von
Bedingungen erfüllen um in unterschiedlichen Anwendungsarten wieder verwendet werden zu können
• JavaBean-API defniert ein Softwarekomponentenmodell für Java, mit dem unabhängig von einander implementierte JavaBeans zu einer neuen Anwendung zusammengesetzt werden können.
• Enterprise JavaBeans: Serverseitiger Einsatz von JavaBeans
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 20
Java Servlets• = Serverseitige Ausführung von Java-Applets• Besonders wichtig bei datenbankgenerierten Web-Seiten• Nachteil von CGI: Jede Anfrage erzeugt einen neuen
Prozess• Java Servlets werden nur einmal aktiviert und erzeugen
bei erneuter Anfrage lediglich einen neuen Thread• Zugriff auf Umgebungsvariablen des WWW-Servers
möglich• Neben WWW-Server wird noch eine Servlet-Engine
benötigt
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 21
Java Server Pages (JSP)• Direkte Einbindung von Java-Code in HTML• Java-basierte Erweiterung von Server Side Includes• Vergleichbar mit PHP• Ablauf Client-Server-Interaktion:
– WWW-Client stellt Anfrage nach JSP-Dokument an WWW-Server
– Server wandelt JSP-Dokument mit JSP-Processor in Java Servlet um
– Java Servlet wird in Byte-Code konvertiert => ein neues HTML-Dokument wird erzeugt
– WWW-Server liefert neues HTML-Dokument an WWW-Client
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 22
WWW-Client WWW-Server JSP-Processor
t t t
JSP-Dokument
.jsp
.class
Umwandlung in
Java Byte-Code
.html
Servlet-Container
.class.java
Java Servlet
Umwandlung
+
.html
Verarbeitung
Ausführung
Anfrage
Verarbeitung
Antwort
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 23
Java Server Pages (JSP)• Einbindung eines Scriptlets in HTML:
<% … Java Code …%>
• Einbindung in XML-Dokument:
<jsp:scriptlet>... Java Code …</jsp:scriptlet>
26.04.23Guido Frisch VL Webtechnologie BA Mannheim 24
Vor- / Nachteile von Java und Java-Applets
???
Top Related