FH LU JEE Vorlesung

Werbung
FH LU JEE Vorlesung
SS 2011
Ralf Gitzel
[email protected]
1
Einführung +
Organisatorisches
Ralf Gitzel
[email protected]
2
Dozent
• Dr. Ralf Gitzel
• Promotion an der Universität Mannheim
in Wirtschaftsinformatik
• Angestellt beim ABB Forschungszentrum
in Ladenburg
• Forschungsgebiete: Industrieller Service
und Reliability
3
Bisherige Vorlesungen (Uni MA)
•
•
•
•
•
Java I & II
Verteilte Objekte
OOA&D
Applied IT-Governance
JEE
4
Mein Programmierhintergrund
•
•
•
•
•
•
C
C++
C#
Java
….
(Dementsprechend sieht mein SourceCode aus!)
5
Rückfragen bei Problemen
• Fragen gerne auch in der Vorlesung
• Fragen per Email: [email protected]
• Download der Folien: www.ralf-gitzel.info
6
Folien Download
• Folien werden i.d.R. am
Sonntag vor der Vorlesung im
Netz stehen
• Ebenfalls als Download:
– Lösungen zu den Übungen
– Klausurtipps
– Alte Folien (nicht relevant)
7
Installation für Übungen zu Hause
•
•
•
•
Aktuelle Java Version (JRE)
Eclipse IDE for Java EE Developers
Apache Tomcat 6.0
Glassfish v3
8
Buchempfehlungen
• Basham, Sierra & Bates: Head First
Servlets & JSP
• Panda, Rahman & Lane: EJB 3 in Action
9
Semesterübersicht
Ralf Gitzel
[email protected]
10
(Voraussichtliche) Semester
Übersicht
14.3
Einführung und Übersicht
21.3
Einführung Servlets
28.3
Fortgeschrittene Servlet-Techniken
4.3
Servlet Sessions
11.3
JSP Basics
18.3 + 25.3
Entfällt (Dienstreise bzw. Ostern)
2.5.
JSP Vertiefung
??
Servlet & JSP Übungsstunde
9.5.
Enterprise Java Beans Einführung
16.5.
Verwendung von Servlets als Web-Interface für EJBs
23.5.
Grundlagen von Session Beans
30.5.
Gesamtübersicht JEE + Übungstunde
6.6.
Klausurvorbereitung, Fragen, Wiederholungen
11
Terminanmerkung
• Ein Termin entfällt wegen einer
Dienstreise
• Termin wird nachgeholt:
– Option 1: Doppelstunde
– Option 2: Samstagstermin
• Stoff kann sich terminlich ggf.
verschieben
12
Vorlesungskonzept
• Ca. 50 Minuten Stoff
• Ca. 40 Minuten Übung am Ende der
Stunde
• Unterstützung durch Dozenten beim
Lösen der Aufgaben (Hinweisfolien +
aktive Hilfe am Rechner)
• Musterlösungen im Netz
• 3 Termine zur Klärung offener Probleme,
Besprechung von Aufgaben etc.
13
2 Übungstunden
• Idee: Wiederholung des jeweiligen
Blocks
• „Freie Übung“:
– Fortgeschrittene können die neuen Übungen
machen
– Einsteiger können die Zeit nutzen, die
Aufgaben aus den Vorlesungen zu
vervollständigen, Fragen zu stellen etc.
14
Klausur
• 3 Aufgaben, z.B.:
– Theoriefragen
– Programm vervollständigen
– Fehler in Programm finden
–…
• Schwerpunkt liegt auf Teil 1 der
Vorlesung
15
Grundlagen JEE
Ralf Gitzel
[email protected]
16
Was ist JEE?
• Eine Java Erweiterung für:
– Verteilte Anwendungen
– Multi-Tier Architekturen
• Die Erweitung basiert auf:
– Containerkonzept (Application Server)
– Web- und Komponententechnologien
17
JEE Architektur (vereinfacht)
Request
Web Container
Response
Servlet
DB
Persistence
Provider
EJB Container
EJB
18
Beispiel
Wieviel Geld
habe ich auf
dem Konto?
Request
Response
Keins. Null. Wie
immer!
19
Beispiel
Request
Response
Web Container
Anfrageformular
Antwortseite
Daten
Persistence
Provider
EJB Container
Geschäftslogik
Datenstruktur
20
Gruppendiskussion
• Ist der Persistence Provider sinnvoll?
(Man könnte doch direkt auf die DB
zugreifen…)
• Ist die Trennung in 3 Elemente (Web
Container, EJB Container, Persistence
Provider) sinnvoll?
21
Servlets
Ralf Gitzel
[email protected]
22
Servlet Architektur
Request
Response
Container
(Application Server)
Servlet
23
Gruppendiskussion: Was sind die
Vorteile eines Containers?
•
•
•
•
Kommunikation
Lebenszyklusverwaltung
Multithreading
Sicherheit
24
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Class A
Servlet
Class B
Servlet
Class C
25
Umsetzung der Vorteile
Container
(Application Server)
Passwortabfrage etc.
wird automatisch durch den
Container „eingefügt“
it
e
h
r
e
Sich
Servlet
Class A
Servlet
Class B
Servlet
Class C
26
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Servlet
Class A
Servlet
Class B
Request
Object
Response
Object
ing
d
a
e
tithr
l
u
M
on
i
t
a
unik
m
K om
Servlet
Class C
Datenstrukturen zur
Kommunikation mit
dem Client werden
erzeugt. Servlet
wird erzeugt und
bekommt einen Thread.
27
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Class A
Servlet
Class B
Request
Object
Response
Object
Servlet
Class C
t i on
a
k
i
un
m
K om
Servlet
service() Methode im Servlet
wird abgearbeitet. Antwort
geht an den Container
zurück.
28
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Class A
Servlet
Class B
Request
Object
Servlet
Class C
Response
Object
X
X
e
Leb
X
Servlet
lus
k
y
nsz
Freigabe von Ressourcen
am Ende
(bzw. intelligentes
Management)
29
Gruppendiskussion
• Ist ein Java-Servlet ein Java-Programm?
• Ist der Container eine Virtuelle
Maschine?
• Wo ist die main()-Methode?
30
Identifikatoren für Servlets
Deployment Name
Servlet
Tatsächlicher (Klassen-)Name
Öffentlicher Name
(URL)
31
Gruppendiskussion
• Warum reicht nicht ein Name aus?
• Denkanstoß:
– Unterschiedliche Sichten auf das Servlet
– Wir sind nicht alleine im Container
32
Motivation für die 3 Namen
• Keine Änderung nach außen bei internen
Veränderung (Pfadnamen usw.)
• Sicherheit durch Verbergen
• Vermeidung von
Namensüberschneidungen
33
Elemente eines Servlets
Java Code
(Funktionalität)
Deployment
Descriptor
(z.B. Name Mapping)
34
Geführte Übungsaufgabe:
Hello World Servlet
Ralf Gitzel
[email protected]
35
Eclipse Übersicht
Quelltext der aktuell
offenen Dateien
Project
Explorer
Fehlermeldungen etc.
36
Anlegen eines neuen Projekts
Kontextmenü im
Project Explorer
37
Details beim Anlegen
Name (frei
wählbar)
Auswählen oder
neu anlegen
Version bitte auf
2.5 setzen!
38
Target Runtime Unterdialog: New
Server Runtime Environment
39
Target Runtime Unterdialog: New
Server Runtime Environment
Individueller
Installationspfad
40
Development in Eclipse
„Dynamic Web Project“
Detailarbeit wird automatisch
erledigt
Wichtig: servlet-api.jar zu den
Bibliotheken hinzufügen!
(Liegt im lib-Verzeichnis des
Tomcat)
41
Evtl. Bibliothek einbinden
Rechtsklick und mit
Kontextmenü Buildpath
ändern
42
Evtl. Bibliothek einbinden
43
Bibliotheken einbinden
Evtl.
44
Beginn der Softwareentwicklung
Java Dateien
Deployment
Descriptor
HTML Dateien
45
Servlet + HTML Erzeugen
• Unter Java-Resourcen ein neues Servlet
erzeugen.
• Unter Web-Content eine neue HTML
Seite erzeugen
46
Servlet erzeugen
Java Dateien
47
Servlet erzeugen
48
Servlet ergänzen
49
HTML Seite erzeugen
• Ähnlich wie Servlet, allerdings in Web
Content
• Name z.B. „index.html“
50
HTML Seite
!
Öffentlicher Name aus dem
Deployment Descriptor (aber ohne /)
Anm: In unserem Beispiel ist das der
Klassenname
51
Testen
index.html auswählen
und den Start-Knopf
drücken
52
Zusatzinformationen (1. Start)
Server auswählen
53
Debug Sicht
54
URL des Servlets
• Webseiten in der Web Applikation:
http://localhost:8080/MyServlet/index.html
• Servlet (verwendet URL-Pattern aus dem
Deployment Descriptor, s. später):
http://localhost:8080/MyServlet/url-pattern
55
Lernziele
Ralf Gitzel
[email protected]
56
Lernziele
• Grundprinzipien JEE und Servlets
• Ein Dynamic Web Project anlegen und
testen können
57
Herunterladen