15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch.

Post on 06-Apr-2016

219 views 0 download

Transcript of 15.06.2015 Guido Frisch VL Webtechnologie BA Mannheim 1 JAVA Guido Frisch.

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

???