44
Ralf Gitzel [email protected] 1 FH LU JEE Vorlesung SS 2010

FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

  • Upload
    vanminh

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

1

FH LU JEE Vorlesung

SS 2010

Page 2: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

2

Einführung + Organisatorisches

Page 3: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

3

Dozent

• Dr. Ralf Gitzel• Promotion an der Universität Mannheim

in Wirtschaftsinformatik• Angestellt beim ABB Forschungszentrum

in Ladenburg• Forschungsgebiete: Industrieller Service

und Reliability

Page 4: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

4

Bisherige Vorlesungen (Uni MA)

• Java I & II• Verteilte Objekte• OOA&D• Applied IT-Governance

Page 5: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

5

Mein Programmierhintergrund

• C• C++• C#• Java• ….• (Dementsprechend sieht mein Source-

Code aus!)

Page 6: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

6

Rückfragen bei Problemen

• Fragen gerne auch in der Vorlesung• Fragen per Email: [email protected]• Download der Folien: www.ralf-gitzel.info

Page 7: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

7

Installation für Übungen zu Hause

• Aktuelle Java Version (JRE)• Eclipse IDE for Java EE Developers• Apache Tomcat 6.0• Glassfish v3

Page 8: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

8

Buchempfehlungen

• Basham, Sierra & Bates: Head First Servlets & JSP

• Panda, Rahman & Lane: EJB 3 in Action

Page 9: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

9

Semesterübersicht

Page 10: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

10

(Voraussichtliche) Semester Übersicht

Enterprise Java Beans Einführung

EJB Übungsstunde und KlausurvorbereitungJEE Security KonzepteFrameworksIntegration Servlet und EJB, DeploymentFortgeschrittene EJB TechnikenEJB Persistenz

Servlet & JSP ÜbungsstundeJSP & Script-Freie Seiten (EL)Fortgeschrittene Servlet-TechnikenServlets Einführung/WiederholungEinführung, Übersicht, Installation für zu Hause

Page 11: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

11

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)

Page 12: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

12

EJB Teil

• Wichtigste Aspekte der EJB Materie• Schwerpunkt Persistenz• Security wird Servlet/EJB übergreifend

behandelt

Page 13: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

13

Vorlesungstermine

• Falls notwendig am Anfang Fragen zur letzten Stunde / zur Übungsaufgabe

• 1h Theorie• Ca. 30 Minuten Praxis• Übungen sind zu Hause zu beenden

Page 14: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

14

2 Übungstunden

• Ein übergreifendes Beispiel für beide Stunden

• Idee: In einer Übung mehrere Aspekte abdecken statt immer nur isoloierteTeilaspekte

Page 15: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

15

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.

Page 16: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

16

Grundlagen JEE

Page 17: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

17

Was ist JEE?

• Eine Java Erweiterung für:– Verteilte Anwendungen– Multi-Tier Architekturen

• Die Erweitung basiert auf:– Containerkonzept (Application Server)– Web- und Komponententechnologien

Page 18: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

18

JEE Architektur (vereinfacht)

RequestWeb Container

Servlet

Response

EJB Container

EJBDB

Per

sist

ence

Pro

vide

r

Page 19: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

19

Beispiel

Request

Response

Wieviel Geld habe ich auf dem Konto?

Keins. Null. Wie immer!

Page 20: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

20

Beispiel

RequestWeb Container

Response Anfrage-formular

Antwort-seite

EJB Container

Datenstruktur

GeschäftslogikDaten

Per

sist

ence

Pro

vide

r

Page 21: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

21

Gruppendiskussion

• Ist der Persistence Provider sinnvoll?• Ist die Trennung in 3 Elemente (Web

Container, EJB Container, PersistenceProvider) sinnvoll?

Page 22: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

22

Servlets

Page 23: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

23

Servlet Architektur

Request

Container(Application Server)

Servlet

Response

Page 24: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

24

Gruppendiskussion: Was sind die Vorteile eines Containers?

• Kommunikation• Lebenszyklusverwaltung• Multithreading• Sicherheit

Page 25: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

25

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass C

Page 26: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

26

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass CRequest

ObjectResponse

Object

Servlet

Datenstrukturen zurKommunikation mitdem Client werden

erzeugt. Servletwird erzeugt und

bekommt einen Thread.

Page 27: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

27

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass CRequest

ObjectResponse

Object

Servlet service() Methode im Servletwird abgearbeitet. Antwort

geht an den Containerzurück.

Page 28: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

28

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass CRequest

ObjectResponse

Object

Servlet Freigabe von Ressourcenam Ende

(bzw. intelligentesManagement)

X X

X

Page 29: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

29

Gruppendiskussion

• Ist ein Java-Servlet ein Java-Programm?• Ist der Container eine Virtuelle

Maschine?• Wo ist die main()-Methode?

Page 30: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

30

Tatsächlicher (Klassen-)Name

Identifikatoren für Servlets

Servlet

Öffentlicher Name(URL)

Deployment Name

Page 31: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

31

Gruppendiskussion

• Warum reicht nicht ein Name aus?• Denkanstoß:

– Unterschiedliche Sichten auf das Servlet– Wir sind nicht alleine im Container

Page 32: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

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

Page 33: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

33

Elemente eines Servlets

Java Code(Funktionalität)

DeploymentDescriptor

(z.B. Name Mapping)

Page 34: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

34

Hello World Servlet

Page 35: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

35

Deployment on Tomcat

Tomcat Home Directory

webapps

MyServlet

WEB-INF

classes lib web.xml

Html und JSP

DeploymentDescriptor

Page 36: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

36

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

Page 37: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

37

Development in EclipseNeues „Dynamic Web Project“ anlegen

Detailarbeit wird automatisch erledigt

Wichtig: servlet-api.jar zu den Bibliotheken hinzufügen! (Liegt im lib-Verzeichnis des Tomcat)

Page 38: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

38

Evtl. Bibliothek einbinden

Rechtsklick und mit Kontextmenü Buildpath

ändern

Page 39: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

39

Servlet + HTML Erzeugen

• Unter Java-Resourcen ein neues Servleterzeugen.

• Unter Web-Content eine neue HTML Seite erzeugen

Page 40: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

40

HTML Seite

Öffentlicher Name aus dem Deployment

Descriptor (aber ohne /)

!

Page 41: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

41

Servlet ergänzen

Page 42: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

42

Testen

index.html auswählen und den Start-Knopf

drücken

Page 43: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

Ralf [email protected]

43

Übungsaufgabe

Page 44: FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java Beans Einführung EJB Übungsstunde und Klausurvorbereitung JEE Security Konzepte

44

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.