+ All Categories
Home > Documents > 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

Date post: 06-Apr-2016
Category:
Upload: hansl-karl-tiedeman
View: 219 times
Download: 3 times
Share this document with a friend
27
1 JavaServer Pages Stephan Baldes 07.01.2008
Transcript
Page 1: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

1

JavaServer Pages

Stephan Baldes07.01.2008

Page 2: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

2

JavaServer Pages

Einführung07.01.2008

Page 3: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

3

Was sind JavaServer Pages ?HTML: begruessung.html

Page 4: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

4

Was sind JavaServer Pages ?Servlet: Begruessung.java

Page 5: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

5

Was sind JavaServer Pages ?JSP: begruessung.jsp

Page 6: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

6

ArchitekturJSP

Page 7: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

7

JSP versus Servlet

• Trennung zwischen Darstellung (HTML) und Logik (Java).

• HTML-Code wie gewohnt verwenden. Verwendung von HTML-Editor, CSS, ... möglich

• Übersetzung in ein Servlet beim ersten Aufruf der Seite durch den Servlet-Container. Änderungen der JSP Seite durch den Entwickler werden automatisch übersetzt.

• Keine Trennung von Darstellung und Logik.

• HTML-Code wird im Java-Code generiert: out.println("<h1>hello</h2>");

• Klassen müssen vom Entwickler compiliert und auf dem Server deployed werden.

JSP Servlet

Page 8: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

8

JSP/Servlet versus Applet

• JSP/Servlet– Ausführung auf dem

Server– Ergebnis: HTML Seite

• Applet– Ausführung auf dem

Client – Ergebnis: interaktives

Programm

Page 9: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

9

JSP SyntaxBeispiel

Page 10: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

10

JSP SyntaxBeispiel Ausgabe

Page 11: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

11

JSP Syntax

• Direktive– <%@ ... %>: Eigenschaften und Includes.

• Einstellung seitenbezogener Optionen

• Externe Datei einfügen

Page 12: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

12

JSP Syntax• Skriptelemente

– <%! ... %>: Deklarationen• Variablen- und Methodendeklarationen

– <% ... %>: Skriptlet• Beliebiger Quelltext

– <%= ... %>: Ausdrücke• Ausdruck wird in einen String konvertiert und in den

Seitentext eingefügt.• Beispiele: <%=i%>, <%=new Date()%>, <%=methode()

%>• Achtung, kein abschließendes Semikolon.

– <%-- ... --%>: Kommentare

Page 13: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

13

JSP Syntax• Aktionselemente

– <jsp:useBean>: JavaBean-Komponente verfügbar machen.

– <jsp:getProperty>: Wert einer JavaBean-Eigenschaft abfragen.

– <jsp:setProperty>: Wert von JavaBean-Eigenschaften festlegen.

– <jsp:include>: Einfügen einer anderen JSP-Seite.– <jsp:forward>: Kontrolle an eine andere JSP-Seite

weitergeben.– <jsp:param>: Parameterwerte an durch <jsp:include>

oder <jsp:forward> verwendete Seiten weitergeben.

Page 14: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

14

JSP SyntaxBemerkungen

• Skriptelemente in XML– <jsp:declaration> ... <jsp:declaration> ↔ <%! ... %>– <jsp:expression> ... <jsp:expression> ↔ <%= ... %>– <jsp:scriptlet> ... <jsp:scriptlet> ↔ <% ... %>

Aber JSP und XML Syntax darf auf einer Seite nicht gemischt werden.

• Folien: http://courses.coreservlets.com/Course-Materials/csajsp2.html

• Freies Online-Buch: http://pdf.coreservlets.com

Page 15: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

15

JSP SyntaxSpezielle Variablen

• request (javax.servlet.http.HttpRequest)• response (javax.servlet.http.HttpResponse)• out (javax.servlet.jsp.JspWriter)• config (javax.servlet.ServletConfig)• session (javax.servlet.http.HttpSession)• application (javax.servlet.ServletContext)• exception (java.lang.Throwable)

Page 16: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

16

JavaServer Pages

Session-Objekt14.01.2008

Page 17: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

17

JSPs und Tomcatc:\tomcat\webapps\meinProjekt\meineJSP.jsp

http://localhost:8080/meinProjekt/meineJSP.jsp

c:\tomcat\webapps\ROOT\meineJSP.jsphttp://localhost:8080/meineJSP.jsp

Page 18: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

18

Session Tracking• HTML ist 'stateless'• Ausweg

– Cookies– Werte in URL speichern– Hidden Fields

• Servlets/JSP:– session (javax.servlet.http.HttpSession)

• Verwendet Cookies: Hashmap mit Attribut/Werte-Paare• session.setAttribute("accessCount", new Integer(0));• session.getAttribute("accessCount");• … (siehe Java-Doc für javax.servlet.http.HttpSession)

Page 19: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

19

JSP SyntaxSpezielle Variablen

• request (javax.servlet.http.HttpRequest)• response (javax.servlet.http.HttpResponse)• out (javax.servlet.jsp.JspWriter)• config (javax.servlet.ServletConfig)• session (javax.servlet.http.HttpSession)• application (javax.servlet.ServletContext)• exception (java.lang.Throwable)

Page 20: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

20

Beispiel: Seitenaufrufe zählen

Page 21: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

21

Session-Variable in Netbeans untersuchen

Page 22: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

22

Beispiel: Einkaufsliste

Page 23: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

23

JavaServer Pages

JavaBeans21.01.2008

Page 24: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

24

Was sind JavaBeans?

• Java-Objekte die zur Datenhaltung dienen.• Sie besitzen private Felder und öffentliche

Getter- und Setter-Methoden.– Interne Änderungen möglich ohne das öffentliche

Interface zu verändern.– Programmieren von Seiteneffekten möglich

• Berechnungsfunktionen werden in den Beans implementiert.

• JavaBeans != Enterprise JavaBeans

Page 25: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

25

Getters und Setters mit Netbeans generieren

• Lege in der Java-Klasse nur die Felder fest.

• Re.Maus > Insert Code … > Getters and Setters

Page 26: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

26

JavaBeans und XMLIdee

• Idee: Werfe Java-Code aus den JSP raus: – Beans-Zugriffe über XML-Konstrukte:

• <jsp:useBean id="name" class="package.Class" />• <jsp:getProperty name="beanName“ property="propertyName" />• Oder ab JSP 1.2: ${beanName.propertyName}

– Kontrollstrukturen über Standard Tag Library (STL): • <c:if test="${datum.time mod 2 == 0}">

Gerade Anzahl Millisekunden. </c:if>

• <c:forEach var="col" begin="0" end="255"> <span style="color:rgb(${col},${col},${col})">${col}</span> </c:forEach>

Page 27: 1 JavaServer Pages Stephan Baldes 07.01.2008. 2 JavaServer Pages Einführung 07.01.2008.

27

JavaBeans und XMLSyntax

• jsp:useBean– <jsp:useBean id="beanName" class="package.Class" />– Entspricht

<% package.Class beanName = new package.Class(); %>

• jsp:getProperty– <jsp:getProperty name=“beanName" property="property" />– Entspricht: <%= beanName.getProperty() %>

• jsp:setProperty– <jsp:setProperty name=“beanName“ property="property“

value="value" />– Entspricht: <% beanName.setProperty(“value”); %>


Recommended