Einführung in Java EE 5 - Informatik 11 - Friedrich

Werbung
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Einführung in Java Enterprise Edition 5
(Java EE 5)
Dirk Wischermann
Marc Spisländer
Friedrich-Alexander-Universität Erlangen-Nürnberg
30. April 2007
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Gliederung
1
Einführung
2
Web-Anwendungen mit Java EE
Servlets
Java ServerPages
3
Enterprise JavaBeans
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java EE
Java EE 5 beschreibt eine Infrastruktur bzw. ein Framework, die
folgendes erleichtern soll:
Entwicklung von mehrschichtigen Anwendungen
Kommunikation zwischen verteilten Objekten (d.h.
zwischen Objekten aus verschiedenen Adressräumen)
Objektpersistenz
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java EE
Literatur
http:
//java.sun.com/javaee/5/docs/tutorial/doc/
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java-EE-Anwendungen
Eine Java EE Anwendung besteht aus einer Menge von clientund serverseitigen Komponenten:
Serverseitig:
Enterprise JavaBeans
Servlets und Java ServerPages
Clientseitig:
Hypertextformulare
Java-Applets
Standard-Java-Anwendungen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java-EE-Anwendungen
Eine Java EE Anwendung besteht aus einer Menge von clientund serverseitigen Komponenten:
Serverseitig:
Enterprise JavaBeans
Servlets und Java ServerPages
Clientseitig:
Hypertextformulare
Java-Applets
Standard-Java-Anwendungen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java EE Containers
Containers sind Umgebungen, in denen die Java=ËEKomponenten ausgeführt werden.
Sie steuern den Lebenszyklus der Komponenten.
Sie übernehmen Low-Level-Aufgaben, wie z. B. die
Kommunikation zwischen Komponenten über Netzwerken,
Verwaltung von Zugriffsrechten oder die Realisierung der
Objektpersistenz.
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java EE 5
Konzeptionelle Sicht
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Erstellung von Java-EE-Anwendungen
Arbeitsschritte
1
Java-EE-Server starten
2
Programmierung der EE-Komponenten in geeigneten
Entwicklungsumgebungen
3
Komponenten als Archiv komprimieren
4
Archiv auf Server aufspielen (Deployment)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Erstellung von Java-EE-Anwendungen
Arbeitsschritte
1
Java-EE-Server starten
2
Programmierung der EE-Komponenten in geeigneten
Entwicklungsumgebungen
3
Komponenten als Archiv komprimieren
4
Archiv auf Server aufspielen (Deployment)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Erstellung von Java-EE-Anwendungen
Arbeitsschritte
1
Java-EE-Server starten
2
Programmierung der EE-Komponenten in geeigneten
Entwicklungsumgebungen
3
Komponenten als Archiv komprimieren
4
Archiv auf Server aufspielen (Deployment)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Erstellung von Java-EE-Anwendungen
Arbeitsschritte
1
Java-EE-Server starten
2
Programmierung der EE-Komponenten in geeigneten
Entwicklungsumgebungen
3
Komponenten als Archiv komprimieren
4
Archiv auf Server aufspielen (Deployment)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Web-Anwendungen mit Java EE
Eine Web-Anwendung ist eine Anwendung, die ihre
Eingabe als HTTP-Request erwartet und die Ausgabe
(typischerweise) als HTML generiert.
Realisierung mit Java EE mittels Servlets oder JavaServer
Pages
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Ein Servlet ist eine Komponente, die aus einer Java-Klasse
und einer XML-Beschreibung besteht.
Die Java-Klasse erweitert javax.servlet.http.HttpServlet.
Wichtigste Methoden:
doGet(HttpServletRequest r, HttpServletResponse a)
doPost(HttpServletRequest r, HttpServletResponse a)
Sie werden von dem Application-Server bei einer
HTTP-GET- bzw. HTTP-POST-Anfrage aufgerufen
a kapselt die HTTP-Anfrage
r kapselt die HTTP-Antwort
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
HTML-Seite für die Eingabe auf der Clientseite erstellen
2
Servlet erstellen, um die Eingabe auf der Serverseite zu
lesen und die Antwort zu generieren
3
HTML-Seite und Servlet als Archiv komprimieren
4
Deployment des Archivs
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
HTML-Seite für die Eingabe auf der Clientseite erstellen
2
Servlet erstellen, um die Eingabe auf der Serverseite zu
lesen und die Antwort zu generieren
3
HTML-Seite und Servlet als Archiv komprimieren
4
Deployment des Archivs
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
HTML-Seite für die Eingabe auf der Clientseite erstellen
2
Servlet erstellen, um die Eingabe auf der Serverseite zu
lesen und die Antwort zu generieren
3
HTML-Seite und Servlet als Archiv komprimieren
4
Deployment des Archivs
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
HTML-Seite für die Eingabe auf der Clientseite erstellen
2
Servlet erstellen, um die Eingabe auf der Serverseite zu
lesen und die Antwort zu generieren
3
HTML-Seite und Servlet als Archiv komprimieren
4
Deployment des Archivs
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
HTML-Eingabeseite erstellen
...
<body>
<h1>L&ouml ; sen von q u a d r a t i s c h e n Gleichungen< / h1>
<p>a&middot ; x&sup2 ; + b&middot ; x + c = 0< / p>
<form action = " S o l v e r S e r v l e t " >
<p>a = <input name= " a " type= " t e x t " s i z e = " 3 " / >< / p>
<p>b = <input name= " b " type= " t e x t " s i z e = " 3 " / >< / p>
<p>c = <input name= " c " type= " t e x t " s i z e = " 3 " / >< / p>
<p>c = <input type= " submit " / >< / p>
< / form>
< / body>
...
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
HTML-Eingabeseite erstellen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Servlet-Klasse erstellen
public class Q u a d r a t i c E q u a t i o n S o l v e r extends H t t p S e r v l e t {
...
public void doGet ( H t t p S e r v l e t R e q u e s t request , HttpServletResponse response )
throws S e r v l e t E x c e p t i o n , IOException {
/ / Parameter lesen (Ohne Behandlung der NumberFormatException)
double a
= Double . parseDouble ( request.getParameter(" a") ) ;
double b
= Double . parseDouble ( request.getParameter("b") ) ;
double c
= Double . parseDouble ( request.getParameter("c") ) ;
double d i s c r = b∗b − 4.0∗a∗c ;
S t r i n g msg = " x & i s i n ; { " ;
i f ( d i s c r >= 0 . 0 && a ! = 0 . 0 ) {
double x1 = (− b + Math . s q r t ( d i s c r ) ) / (2∗a ) ;
double x2 = (− b − Math . s q r t ( d i s c r ) ) / (2∗a ) ;
i f ( x1 == x2 )
msg += Double . t o S t r i n g ( x1 ) + " } " ;
else
msg += Double . t o S t r i n g ( x1 ) + " , " + Double . t o S t r i n g ( x2 ) + " } " ;
}
else
msg = " Gleichung " + ( ( a = = 0 . 0 ) ? " i s t n i c h t q u a d r a t i s c h . " : " h a t k e i n e L&ouml ; sung . " ) ;
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Servlet-Klasse erstellen (Fortsetzung)
/ / HTML−A n t w o r t g e n e r i e r e n
response . setContentType ( " t e x t / h t m l " ) ;
P r i n t W r i t e r o u t = response . g e t W r i t e r ( ) ;
o u t . p r i n t l n ( " <html ><head> " ) ;
o u t . p r i n t l n ( " < t i t l e > Quadratische Gleichungen l &ouml ; sen < / t i t l e > " ) ;
o u t . p r i n t l n ( " </ head> " ) ;
o u t . p r i n t l n ( " <body> " ) ;
o u t . p r i n t l n ( " <h1>L&ouml ; sen von q u a d r a t i s c h e n Gleichungen < / h1> " ) ;
o u t . p r i n t l n ( " <p> " +a+ "&middot ; x&sup2 ; + " +b+ "&middot ; x+ " +c+ " = 0 </p> " ) ;
o u t . p r i n t l n ( " <p> " + msg + " </p> " ) ;
o u t . p r i n t l n ( " </ body > </ html > " ) ;
out . close ( ) ;
}
}
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Servlet-Beschreibung erstellen (web.xml)
<?xml version= " 1 . 0 " encoding= "UTF−8" ?>
<web−app version= " 2 . 5 "
xmlns= " h t t p : / / j a v a . sun . com / xml / ns / javaee "
x m l n s : x s i = " h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema−i n s t a n c e "
x s i : s c h e m a L o c a t i o n = " h t t p : / / j a v a . sun . com / xml / ns / javaee h t t p : / / j a v a . sun . com / xml / ns / javaee / we
<distributable />
<servlet>
< d i s p l a y −name> Q u a d r a t i c Equation S o l v e r < / d i s p l a y −name>
< s e r v l e t −name> Q u a d r a t i c E q u a t i o n S o l v e r < / s e r v l e t −name>
< s e r v l e t −c l a s s > j a v a e e i n t r o d u c t i o n . Q u a d r a t i c E q u a t i o n S o l v e r < / s e r v l e t −c l a s s >
</ servlet>
< s e r v l e t −mapping>
< s e r v l e t −name> Q u a d r a t i c E q u a t i o n S o l v e r < / s e r v l e t −name>
< u r l −p a t t e r n > / S o l v e r S e r v l e t < / u r l −p a t t e r n >
< / s e r v l e t −mapping>
< / web−app>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Web-Archiv erstellen (WAR-Archiv)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Application-Archiv erstellen (EAR-Archiv)
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Applikation aufspielen (Deployment)
Deployment abhängig von Serverimplementierung
Im Fall von Glassfish oder JBoss: Kopie des EAR-Archives
in einem besonderen Verzeichnis speichern
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlet-Beispiel
Applikation aufspielen (Deployment)
Deployment abhängig von Serverimplementierung
Im Fall von Glassfish oder JBoss: Kopie des EAR-Archives
in einem besonderen Verzeichnis speichern
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Weiterführende Möglichkeiten
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Servlets
Servlets
Literatur
http:
//jcp.org/aboutJava/communityprocess/final/jsr154/index.html
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JavaServer Pages (JSP)
JavaServer Pages sind eine bequeme Alternative zu
Servlets.
web.xml nicht notwendig
Eine JSP-Seite beschreibt gleichzeitig den statischen und
dynamischen Inhalt eines Textdokumentes.
Vergleichbar mit PHP
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JavaServer Pages (JSP)
JavaServer Pages sind eine bequeme Alternative zu
Servlets.
web.xml nicht notwendig
Eine JSP-Seite beschreibt gleichzeitig den statischen und
dynamischen Inhalt eines Textdokumentes.
Vergleichbar mit PHP
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JavaServer Pages (JSP)
JavaServer Pages sind eine bequeme Alternative zu
Servlets.
web.xml nicht notwendig
Eine JSP-Seite beschreibt gleichzeitig den statischen und
dynamischen Inhalt eines Textdokumentes.
Vergleichbar mit PHP
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JavaServer Pages (JSP)
JavaServer Pages sind eine bequeme Alternative zu
Servlets.
web.xml nicht notwendig
Eine JSP-Seite beschreibt gleichzeitig den statischen und
dynamischen Inhalt eines Textdokumentes.
Vergleichbar mit PHP
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
Servlet aus vorherigem Beispiel durch JSP-Seite ersetzen
2
HTML-Seite für die Clientseite anpassen
3
WAR-Archiv erstellen
4
EAR-Archiv analog zu den Servlets erstellen und auf
Server aufspielen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
Servlet aus vorherigem Beispiel durch JSP-Seite ersetzen
2
HTML-Seite für die Clientseite anpassen
3
WAR-Archiv erstellen
4
EAR-Archiv analog zu den Servlets erstellen und auf
Server aufspielen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
Servlet aus vorherigem Beispiel durch JSP-Seite ersetzen
2
HTML-Seite für die Clientseite anpassen
3
WAR-Archiv erstellen
4
EAR-Archiv analog zu den Servlets erstellen und auf
Server aufspielen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
Quadratische Gleichungen lösen
Arbeitsschritte
1
Servlet aus vorherigem Beispiel durch JSP-Seite ersetzen
2
HTML-Seite für die Clientseite anpassen
3
WAR-Archiv erstellen
4
EAR-Archiv analog zu den Servlets erstellen und auf
Server aufspielen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
JSP-Seite erstellen (result.jsp)
<%@ page contentType= " t e x t / h t m l ; c h a r s e t =UTF−8" %>
<%!
p u b l i c S t r i n g getMessage ( ) {
/ / Parameter l e s e n ( Ohne Behandlung der NumberFormatException )
double a
= Double . parseDouble ( r e q u e s t . getParameter ( " a " ) ) ;
double b
= Double . parseDouble ( r e q u e s t . getParameter ( " b " ) ) ;
double c
= Double . parseDouble ( r e q u e s t . getParameter ( " c " ) ) ;
double d i s c r = b∗b − 4.0∗a∗c ;
S t r i n g msg = " x & i s i n ; { " ;
i f ( d i s c r >= 0 . 0 && a ! = 0 . 0 ) {
double x1 = (− b + Math . s q r t ( d i s c r ) ) / (2∗a ) ;
double x2 = (− b − Math . s q r t ( d i s c r ) ) / (2∗a ) ;
i f ( x1 == x2 )
msg += Double . t o S t r i n g ( x1 ) + " } " ;
else
msg += Double . t o S t r i n g ( x1 ) + " , " + Double . t o S t r i n g ( x2 ) + " } " ;
}
else
msg = " Gleichung " + ( ( a = = 0 . 0 ) ? " i s t n i c h t q u a d r a t i s c h . " : " h a t k e i n e L&ouml ; sung . " ) ;
r e t u r n msg ;
}
%>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
JSP-Seite erstellen (Fortsetzung)
< h t m l xmlns= " h t t p : / / www. w3 . org / 1 9 9 9 / x h t m l " >
<head>
< t i t l e > Quadratische Gleichungen l &ouml ; sen< / t i t l e >
< / head>
<body>
<h1>L&ouml ; sen von q u a d r a t i s c h e n Gleichungen< / h1>
<p><%= r e q u e s t . getParameter ( " a " ) %>&middot ; x&sup2 ; +
<%= r e q u e s t . getParameter ( " b " ) %>&middot ; x +
<%= r e q u e s t . getParameter ( " c " ) %> = 0
< / p>
<p><%= getMessage ( r e q u e s t ) %>< / p>
< / body>
< / html>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
HTML-Seite anpassen
...
<body>
<h1>L&ouml ; sen von q u a d r a t i s c h e n Gleichungen< / h1>
<p>a&middot ; x&sup2 ; + b&middot ; x + c = 0< / p>
<form a c t i o n = " result.jsp " >
<p>a =
<p>b =
<p>c =
<p>c =
< / form>
< / body>
...
<input
<input
<input
<input
name= " a " t y p e = " t e x t " s i z e = " 3 " / >< / p>
name= " b " t y p e = " t e x t " s i z e = " 3 " / >< / p>
name= " c " t y p e = " t e x t " s i z e = " 3 " / >< / p>
t y p e = " submit " / >< / p>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel
WAR-Archiv erstellen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
JSP-Beispiel bietet keine wesentlichen Vorteile im
Vergleich zum Servlet-Beispiel.
Verbesserung durch Trennung der HTML-Generierung von
der algorithmischen Berechnung des Problems
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
JSP-Beispiel bietet keine wesentlichen Vorteile im
Vergleich zum Servlet-Beispiel.
Verbesserung durch Trennung der HTML-Generierung von
der algorithmischen Berechnung des Problems
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
Schritt 1: JavaBean für die Berechnung erstellen
p u b l i c c l a s s Q ua dr at icE qS ol v e r {
p r i v a t e double a , b , c ;
public
public
public
public
public
public
double
void
double
void
double
void
getA ( )
{ return
setA ( double a ) { t h i s . a
getB ( )
{ return
setB ( double b ) { t h i s . b
getC ( )
{ return
setC ( double c ) { t h i s . c
a; }
= a; }
b; }
= b; }
c; }
= c; }
p u b l i c Set<Double> g e t S o l u t i o n s ( ) {
Set<Double> r e s u l t = new HashSet<Double> ( ) ;
double
d i s c r = b∗b − 4.0∗a∗c ;
i f ( d i s c r >= 0 . 0 && a ! = 0 . 0 ) {
double x1 = (− b + Math . s q r t ( d i s c r ) ) / (2∗a ) ;
double x2 = (− b − Math . s q r t ( d i s c r ) ) / (2∗a ) ;
r e s u l t . add ( x1 ) ;
r e s u l t . add ( x2 ) ;
}
return result ;
}
}
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
Schritt 2: JSP-Seite von Java-Code bereinigen
<?xml version= " 1 . 0 " encoding= "UTF−8" ?>
<%@ page language= " j a v a " contentType= " t e x t / h t m l ; c h a r s e t =UTF−8" pageEncoding= "UTF−8"%>
<%@ t a g l i b u r i = " h t t p : / / j a v a . sun . com / j s p / j s t l / core " p r e f i x = " c " %>
<jsp:useBean i d = " s o l v e r " c l a s s = " Qu ad ra ti cEq So lv er " / >
< j s p : s e t P r o p e r t y name= " s o l v e r " p r o p e r t y = " ∗ " / >
< h t m l xmlns= " h t t p : / / www. w3 . org / 1 9 9 9 / x h t m l " >
<head>
< t i t l e > Quadratische Gleichungen l &ouml ; sen< / t i t l e >
< / head>
<body>
<h1>L&ouml ; sen von
<p>
<jsp:getProperty
<jsp:getProperty
<jsp:getProperty
< / p>
< / body>
q u a d r a t i s c h e n Gleichungen< / h1>
name= " s o l v e r " p r o p e r t y = " a " / >&middot ; x&sup2 ; +
name= " s o l v e r " p r o p e r t y = " b " / >&middot ; x +
name= " s o l v e r " p r o p e r t y = " c " / > = 0
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
Schritt 2: JSP-Seite von Java-Code bereinigen (Fortsetzung)
<p>
<c:choose>
<c:when t e s t = " $ { s o l v e r . a == 0 } " >
Gleichung i s t n i c h t q u a d r a t i s c h .
< / c:when>
<c:otherwise>
<c:choose>
<c:when t e s t = " $ { empty s o l v e r . s o l u t i o n s } " >
Gleichung h a t k e i n e L&auml ; sung !
< / c:when>
<c:otherwise>
x &isin ; {
<c:forEach items=" ${ s o l v e r . s o l u t i o n s } " var=" s o l u t i o n " varStatus=" i t e r S t a t u s " >
${ s o l u t i o n } < c : i f t e s t =" ${ not i t e r S t a t u s . l a s t } " > , < / c : i f >
< / c:forEach>
}
</ c:otherwise>
< / c:choose>
</ c:otherwise>
< / c:choose>
< / p>
< / body>
< / html>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Beispiel verbessern
Schritt 3: Bean-Klasse in WAR-Archiv aufnehmen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Text
Direktiven
Aktionen
Scripting-Elemente
Deklarationen
Scriptlets
Ausdrücke
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Text
Direktiven
Aktionen
Scripting-Elemente
Deklarationen
Scriptlets
Ausdrücke
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Text
Direktiven
Aktionen
Scripting-Elemente
Deklarationen
Scriptlets
Ausdrücke
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Text
Direktiven
Aktionen
Scripting-Elemente
Deklarationen
Scriptlets
Ausdrücke
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Direktiven
Legen Eigenschaften der JSP-Seite fest, die unabhängig
von Benutzeranfragen (Requests) sind.
Syntax: <%@ name ... %>
Beispiele:
<%@ page language="java"contentType="text/html; charset=UTF−8"%>
<%@ taglib uri="http: // java.sun.com/jsp/ jstl /core" prefix ="c" %>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Direktiven
Legen Eigenschaften der JSP-Seite fest, die unabhängig
von Benutzeranfragen (Requests) sind.
Syntax: <%@ name ... %>
Beispiele:
<%@ page language="java"contentType="text/html; charset=UTF−8"%>
<%@ taglib uri="http: // java.sun.com/jsp/ jstl /core" prefix ="c" %>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Direktiven
Legen Eigenschaften der JSP-Seite fest, die unabhängig
von Benutzeranfragen (Requests) sind.
Syntax: <%@ name ... %>
Beispiele:
<%@ page language="java"contentType="text/html; charset=UTF−8"%>
<%@ taglib uri="http: // java.sun.com/jsp/ jstl /core" prefix ="c" %>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Aktionen
Semantik der Aktionen sind abhängig von Requests.
XML-Syntax (Tag, Abschlusstag, Attribute)
Es gibt Standard-Aktionen und benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen über taglib-Direktiven
importieren
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Aktionen
Semantik der Aktionen sind abhängig von Requests.
XML-Syntax (Tag, Abschlusstag, Attribute)
Es gibt Standard-Aktionen und benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen über taglib-Direktiven
importieren
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Aktionen
Semantik der Aktionen sind abhängig von Requests.
XML-Syntax (Tag, Abschlusstag, Attribute)
Es gibt Standard-Aktionen und benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen über taglib-Direktiven
importieren
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Aktionen
Semantik der Aktionen sind abhängig von Requests.
XML-Syntax (Tag, Abschlusstag, Attribute)
Es gibt Standard-Aktionen und benutzerdefinierte Aktionen
Benutzerdefinierte Aktionen über taglib-Direktiven
importieren
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Beispiele für Aktionen
Standardaktionen:
<jsp:useBean id="solver" class="QuadraticEqSolver"/>
<jsp:forward page="handler.jsp" />
Benutzerdefinierte Aktionen:
<c:forEach items=" ${ s o l v e r . s o l u t i o n s } "
var=" s o l u t i o n " varStatus=" i t e r S t a t u s ">
${ s o l u t i o n } < c : i f t e s t =" ${ not i t e r S t a t u s . l a s t } " > , < / c : i f >
< / c:forEach>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Beispiele für Aktionen
Standardaktionen:
<jsp:useBean id="solver" class="QuadraticEqSolver"/>
<jsp:forward page="handler.jsp" />
Benutzerdefinierte Aktionen:
<c:forEach items=" ${ s o l v e r . s o l u t i o n s } "
var=" s o l u t i o n " varStatus=" i t e r S t a t u s ">
${ s o l u t i o n } < c : i f t e s t =" ${ not i t e r S t a t u s . l a s t } " > , < / c : i f >
< / c:forEach>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Deklarationen
Betten Deklarationen und Definitionen der
Programmiersprache ein, die durch die page-Direktive
festgelegt wurde (üblicherweise Java)
Syntax: <%! Deklarationen, Definitionen, ... %>
Werden immer »zu Beginn« ausgewertet, unabhängig von
ihrer Position in der JSP-Seite
Beispiel:
<%!
p u b l i c i n t getMax ( i n t a , i n t b ) { r e t u r n a < b ? b : a ; }
p u b l i c f i n a l S t r i n g pageAuthor = " Wischermann " ;
%>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Deklarationen
Betten Deklarationen und Definitionen der
Programmiersprache ein, die durch die page-Direktive
festgelegt wurde (üblicherweise Java)
Syntax: <%! Deklarationen, Definitionen, ... %>
Werden immer »zu Beginn« ausgewertet, unabhängig von
ihrer Position in der JSP-Seite
Beispiel:
<%!
p u b l i c i n t getMax ( i n t a , i n t b ) { r e t u r n a < b ? b : a ; }
p u b l i c f i n a l S t r i n g pageAuthor = " Wischermann " ;
%>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Deklarationen
Betten Deklarationen und Definitionen der
Programmiersprache ein, die durch die page-Direktive
festgelegt wurde (üblicherweise Java)
Syntax: <%! Deklarationen, Definitionen, ... %>
Werden immer »zu Beginn« ausgewertet, unabhängig von
ihrer Position in der JSP-Seite
Beispiel:
<%!
p u b l i c i n t getMax ( i n t a , i n t b ) { r e t u r n a < b ? b : a ; }
p u b l i c f i n a l S t r i n g pageAuthor = " Wischermann " ;
%>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Deklarationen
Betten Deklarationen und Definitionen der
Programmiersprache ein, die durch die page-Direktive
festgelegt wurde (üblicherweise Java)
Syntax: <%! Deklarationen, Definitionen, ... %>
Werden immer »zu Beginn« ausgewertet, unabhängig von
ihrer Position in der JSP-Seite
Beispiel:
<%!
p u b l i c i n t getMax ( i n t a , i n t b ) { r e t u r n a < b ? b : a ; }
p u b l i c f i n a l S t r i n g pageAuthor = " Wischermann " ;
%>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Ausdrücke
Erlauben Auswertung von Skript-Ausdrücken (meistens
Java-Ausdrücke)
Das Ergebnis der Auswertung wird nach String konvertiert
Syntax: <%= Ausdruck %>
Beispiele:
<%= 3 + 4 %>
<p>Ihr Name ist <%= kunde.getName() %>.</p>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Ausdrücke
Erlauben Auswertung von Skript-Ausdrücken (meistens
Java-Ausdrücke)
Das Ergebnis der Auswertung wird nach String konvertiert
Syntax: <%= Ausdruck %>
Beispiele:
<%= 3 + 4 %>
<p>Ihr Name ist <%= kunde.getName() %>.</p>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Ausdrücke
Erlauben Auswertung von Skript-Ausdrücken (meistens
Java-Ausdrücke)
Das Ergebnis der Auswertung wird nach String konvertiert
Syntax: <%= Ausdruck %>
Beispiele:
<%= 3 + 4 %>
<p>Ihr Name ist <%= kunde.getName() %>.</p>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Ausdrücke
Erlauben Auswertung von Skript-Ausdrücken (meistens
Java-Ausdrücke)
Das Ergebnis der Auswertung wird nach String konvertiert
Syntax: <%= Ausdruck %>
Beispiele:
<%= 3 + 4 %>
<p>Ihr Name ist <%= kunde.getName() %>.</p>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Scriptlets
Erlauben Mischung von Textelementen und
Skriptelementen
Dadurch kann der Kontrollfluss beeinflusst werden.
Syntax: <% Skriptkonstrukt %>
Beispiel:
<ul>
<% f o r ( i n t i = 0 ; i < s t u d e n t e n . getAnzahl ( ) ; i ++ { %>
< i >Name: <%= s t u d e n t e n . g e t ( i ) . getName ( ) %>< / i >
<% } %>
</ ul>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Scriptlets
Erlauben Mischung von Textelementen und
Skriptelementen
Dadurch kann der Kontrollfluss beeinflusst werden.
Syntax: <% Skriptkonstrukt %>
Beispiel:
<ul>
<% f o r ( i n t i = 0 ; i < s t u d e n t e n . getAnzahl ( ) ; i ++ { %>
< i >Name: <%= s t u d e n t e n . g e t ( i ) . getName ( ) %>< / i >
<% } %>
</ ul>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Scriptlets
Erlauben Mischung von Textelementen und
Skriptelementen
Dadurch kann der Kontrollfluss beeinflusst werden.
Syntax: <% Skriptkonstrukt %>
Beispiel:
<ul>
<% f o r ( i n t i = 0 ; i < s t u d e n t e n . getAnzahl ( ) ; i ++ { %>
< i >Name: <%= s t u d e n t e n . g e t ( i ) . getName ( ) %>< / i >
<% } %>
</ ul>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP-Konstrukte
Scriptlets
Erlauben Mischung von Textelementen und
Skriptelementen
Dadurch kann der Kontrollfluss beeinflusst werden.
Syntax: <% Skriptkonstrukt %>
Beispiel:
<ul>
<% f o r ( i n t i = 0 ; i < s t u d e n t e n . getAnzahl ( ) ; i ++ { %>
< i >Name: <%= s t u d e n t e n . g e t ( i ) . getName ( ) %>< / i >
<% } %>
</ ul>
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Java ServerPages
JSP
Weiterführende Konzepte
Implizite Objekte
Code-Wiederverwendung über include-Aktionen oder die
include-Direktive
Weiterleitung von Request über forward-Aktionen
Unified Expression Language
Literatur: http://java.sun.com/javaee/5/docs/
tutorial/doc/JSPIntro.html
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Enterprise JavaBeans (EJB)
Nicht mit JavaBeans verwechseln!
EJBs stellen serverseitige Komponenten dar.
Sie übernehmen in einer Enterprise-Anwendung die
Geschäftslogik.
Zwei Arten:
Session Beans
Stateless Session Beans
Statefull Session Beans
Message-Driven Beans
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Einführung am Beispiel
Für Session Beans müssen eine Schnittstelle und eine
implementierende Klasse (Bean-Klasse) definiert werden.
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Session-Bean-Beispiel
Die Bean-Schnittstelle
i m p o r t j a v a x . e j b . Remote ;
@Remote
p u b l i c i n t e r f a c e QuadraticEqSolver {
p u b l i c Set<Double> g e t S o l u t i o n s ( double a , double b , double c ) ;
}
Die Remote-Annotation gibt an, dass das Bean von verteilten Clients benutzt
wird.
Zur Performance-Steigerung gibt es die Local-Annotation; sie gibt an, dass das
Bean ausschließlich von Clients benutzt wird, die sich in der gleichen virtuellen
Maschine wie das Bean befinden.
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Session-Bean-Beispiel
Die Bean-Klasse
import javax . ejb . Stateless ;
@Stateless
p u b l i c c l a s s QuadraticEqSolverBean implements Q u a d r a t ic E q S o l v e r {
/ / H i e r d i e Loesung berechnen . ( Analog zum JSP " = B e i s p i e l . )
....
}
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Session-Bean-Beispiel
Deployment-Archiv erstellen
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Einführung
Web-Anwendungen mit Java EE
Enterprise JavaBeans
Session-Bean-Beispiel
Client-Zugriff
i m p o r t j a v a x . naming . I n i t i a l C o n t e x t ;
p u b l i c class EJBClient {
p u b l i c s t a t i c v o i d main ( S t r i n g args [ ] ) {
try {
I n i t i a l C o n t e x t i c = new I n i t i a l C o n t e x t ( ) ;
Q u a d r a t i c E q S o l v e r s o l v e r = i c . lookup ( " Q u a d r a t i c E q S o l v e r " ) ;
System . o u t . p r i n t l n ( s o l v e r . g e t S o l u t i o n s ( 1 , 0 , − 1));
}
catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
}
Dirk Wischermann, Marc Spisländer
Einführung in Java Enterprise Edition 5 (Java EE 5)
Friedrich-Alexander-Universität Erlangen-Nürnberg
Herunterladen