FH LU JEE Vorlesung - ralf-gitzel.info file10 (Voraussichtliche) Semester Übersicht Enterprise Java...

Preview:

Citation preview

Ralf Gitzelralf_gitzel@hotmail.de

1

FH LU JEE Vorlesung

SS 2010

Ralf Gitzelralf_gitzel@hotmail.de

2

Einführung + Organisatorisches

3

Dozent

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

in Wirtschaftsinformatik• Angestellt beim ABB Forschungszentrum

in Ladenburg• Forschungsgebiete: Industrieller Service

und Reliability

4

Bisherige Vorlesungen (Uni MA)

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

5

Mein Programmierhintergrund

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

Code aus!)

6

Rückfragen bei Problemen

• Fragen gerne auch in der Vorlesung• Fragen per Email: ralf_gitzel@hotmail.de• Download der Folien: www.ralf-gitzel.info

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

Ralf Gitzelralf_gitzel@hotmail.de

9

Semesterübersicht

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

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)

12

EJB Teil

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

behandelt

13

Vorlesungstermine

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

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

14

2 Übungstunden

• Ein übergreifendes Beispiel für beide Stunden

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

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.

Ralf Gitzelralf_gitzel@hotmail.de

16

Grundlagen JEE

17

Was ist JEE?

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

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

18

JEE Architektur (vereinfacht)

RequestWeb Container

Servlet

Response

EJB Container

EJBDB

Per

sist

ence

Pro

vide

r

19

Beispiel

Request

Response

Wieviel Geld habe ich auf dem Konto?

Keins. Null. Wie immer!

20

Beispiel

RequestWeb Container

Response Anfrage-formular

Antwort-seite

EJB Container

Datenstruktur

GeschäftslogikDaten

Per

sist

ence

Pro

vide

r

21

Gruppendiskussion

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

Container, EJB Container, PersistenceProvider) sinnvoll?

Ralf Gitzelralf_gitzel@hotmail.de

22

Servlets

23

Servlet Architektur

Request

Container(Application Server)

Servlet

Response

24

Gruppendiskussion: Was sind die Vorteile eines Containers?

• Kommunikation• Lebenszyklusverwaltung• Multithreading• Sicherheit

25

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass C

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.

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.

28

Umsetzung der VorteileContainer

(Application Server) ServletClass A

ServletClass B

ServletClass CRequest

ObjectResponse

Object

Servlet Freigabe von Ressourcenam Ende

(bzw. intelligentesManagement)

X X

X

29

Gruppendiskussion

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

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

30

Tatsächlicher (Klassen-)Name

Identifikatoren für Servlets

Servlet

Öffentlicher Name(URL)

Deployment Name

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)

DeploymentDescriptor

(z.B. Name Mapping)

Ralf Gitzelralf_gitzel@hotmail.de

34

Hello World Servlet

35

Deployment on Tomcat

Tomcat Home Directory

webapps

MyServlet

WEB-INF

classes lib web.xml

Html und JSP

DeploymentDescriptor

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

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)

38

Evtl. Bibliothek einbinden

Rechtsklick und mit Kontextmenü Buildpath

ändern

39

Servlet + HTML Erzeugen

• Unter Java-Resourcen ein neues Servleterzeugen.

• Unter Web-Content eine neue HTML Seite erzeugen

40

HTML Seite

Öffentlicher Name aus dem Deployment

Descriptor (aber ohne /)

!

41

Servlet ergänzen

42

Testen

index.html auswählen und den Start-Knopf

drücken

Ralf Gitzelralf_gitzel@hotmail.de

43

Übungsaufgabe

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.

Recommended