FH LU JEE Vorlesung

Werbung
FH LU JEE Vorlesung
SS 2010
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
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
Installation für Übungen zu Hause
•
•
•
•
Aktuelle Java Version (JRE)
Eclipse IDE for Java EE Developers
Apache Tomcat 6.0
Glassfish v3
7
Buchempfehlungen
• Basham, Sierra & Bates: Head First
Servlets & JSP
• Panda, Rahman & Lane: EJB 3 in Action
8
Semesterübersicht
Ralf Gitzel
[email protected]
9
(Voraussichtliche) Semester
Übersicht
Einführung, Übersicht, Installation für zu Hause
Servlets Einführung/Wiederholung
Fortgeschrittene Servlet-Techniken
JSP & Script-Freie Seiten (EL)
Servlet & JSP Übungsstunde
Enterprise Java Beans Einführung
EJB Persistenz
Fortgeschrittene EJB Techniken
Integration Servlet und EJB, Deployment
Frameworks
JEE Security Konzepte
EJB Übungsstunde und Klausurvorbereitung
10
Servlets
• Wiederholung des bisher gelernten Stoffs
• Aber: Auch Vertiefung des Themas
• Ziel: Ein vernünftiges Interface für EJBs
erstellen können
• Ggf. am Ende noch ein Web Framework
(je nach Zeit)
11
EJB Teil
• Wichtigste Aspekte der EJB Materie
• Schwerpunkt Persistenz
• Security wird Servlet/EJB übergreifend
behandelt
12
Vorlesungstermine
• Falls notwendig am Anfang Fragen zur
letzten Stunde / zur Übungsaufgabe
• 1h Theorie
• Ca. 30 Minuten Praxis
• Übungen sind zu Hause zu beenden
13
2 Übungstunden
• Ein übergreifendes Beispiel für beide
Stunden
• Idee: In einer Übung mehrere Aspekte
abdecken statt immer nur isoloierte
Teilaspekte
14
Klausur
• 50% Praxis
• 50% Theorie
• Wer in der Vorlesung darauf achtet,
welche Dinge ich betone, der wird in der
Klausur einiges wiedererkennen!
• Manche Folien sind nicht klausurrelevant,
können aber in der Klausur einen
einfacheren Weg eröffnen.
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?
• 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)
Servlet
Servlet
Class A
Servlet
Class B
Request
Object
Response
Object
Servlet
Class C
Datenstrukturen zur
Kommunikation mit
dem Client werden
erzeugt. Servlet
wird erzeugt und
bekommt einen Thread.
26
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Class A
Servlet
Class B
Request
Object
Response
Object
Servlet
Servlet
Class C
service() Methode im Servlet
wird abgearbeitet. Antwort
geht an den Container
zurück.
27
Umsetzung der Vorteile
Container
(Application Server)
Servlet
Class A
Servlet
Class B
Request
Object
Response
Object
X
X
X
Servlet
Servlet
Class C
Freigabe von Ressourcen
am Ende
(bzw. intelligentes
Management)
28
Gruppendiskussion
• Ist ein Java-Servlet ein Java-Programm?
• Ist der Container eine Virtuelle
Maschine?
• Wo ist die main()-Methode?
29
Identifikatoren für Servlets
Deployment Name
Servlet
Tatsächlicher (Klassen-)Name
Öffentlicher Name
(URL)
30
Gruppendiskussion
• Warum reicht nicht ein Name aus?
• Denkanstoß:
– Unterschiedliche Sichten auf das Servlet
– Wir sind nicht alleine im Container
31
Motivation für die 3 Namen
• Keine Änderung nach außen bei internen
Veränderung (Pfadnamen usw.)
• Sicherheit durch Verbergen
• Vermeidung von
Namensüberschneidungen
32
Elemente eines Servlets
Java Code
(Funktionalität)
Deployment
Descriptor
(z.B. Name Mapping)
33
Hello World Servlet
Ralf Gitzel
[email protected]
34
Deployment on Tomcat
Tomcat Home Directory
webapps
MyServlet
WEB-INF
classes
Html und JSP
lib
web.xml
Deployment
Descriptor
35
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
36
Development in Eclipse
Neues „Dynamic Web
Project“ anlegen
Detailarbeit wird automatisch
erledigt
Wichtig: servlet-api.jar zu den
Bibliotheken hinzufügen!
(Liegt im lib-Verzeichnis des
Tomcat)
37
Evtl. Bibliothek einbinden
Rechtsklick und mit
Kontextmenü Buildpath
ändern
38
Servlet + HTML Erzeugen
• Unter Java-Resourcen ein neues Servlet
erzeugen.
• Unter Web-Content eine neue HTML
Seite erzeugen
39
HTML Seite
!
Öffentlicher Name aus
dem Deployment
Descriptor (aber ohne /)
40
Servlet ergänzen
41
Testen
index.html auswählen
und den Start-Knopf
drücken
42
Übungsaufgabe
Ralf Gitzel
[email protected]
43
Aufgabenstellung
• Erstelle ein Hello-World Servlet
• Erstelle ein Servlet, das eine HTML Seite
zurückgibt, auf der ein Webformular ist,
mit dem man ein zweites Servlet aufrufen
kann.
44
Herunterladen