21
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer Seite 1 /20

Java Server Pages

Embed Size (px)

DESCRIPTION

Seite 1 /20. Java Server Pages. Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets. Blockseminar Wintersemester 2001/2002. Jochen Pfeiffer. Seite 2 /20. Inhalt. dynamisches HTML Webseiten generieren mit Java Java Servlets Java Server Pages - PowerPoint PPT Presentation

Citation preview

Page 1: Java Server Pages

Java Server Pages

Technologie zur Erzeugung dynamischer

Webseiten basierend auf Java-Servlets

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 1/20

Page 2: Java Server Pages

Inhalt

1. dynamisches HTML

2. Webseiten generieren mit Java

• Java Servlets

• Java Server Pages

3. Java Server Pages anwenden

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 2/20

Page 3: Java Server Pages

1. dynamisches HTML Warum dynamisches HTML ?

Statische HTML-Seiten reichen nicht aus, um größere Web-Anwendungen zu realisieren.

Anforderungen an dynamisches HTML

einfache Programmierung unkomplizierte Anbindung an Datenbanken Sitzungs-Management schnelle Ausführungsgeschwindigkeit Trennung von Design und Programmierung

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 3/20

Page 4: Java Server Pages

1. dynamisches HTML

Häufig benutzte Methoden:

CGI (z.B. mit Perl, C, ...) Webserver-API‘s

(NSAPI, ISAPI, Apache-API, ...) Server Side Includes (SSI) Server-seitige Skripte (z.B. PHP)

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 4/20

Page 5: Java Server Pages

1. dynamisches HTML

Problem:Trennung zwischen Design und Code

Beispiel CGI:HTML-Dokument in ‘print‘-Anweisungen des CGI-Quellcodes.

Beispiel Serverseitige Skripte:Programmcode im HTML-Dokument

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 5/20

Page 6: Java Server Pages

2. Webseiten generieren mit Java

Java Servlets:Programmierschnittstelle, um HTML-Seiten mit Java zu generieren.

Java Server Pages:Konzept, um Webseiten zu generieren, das intern auf die Servlet-API aufbaut.

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 6/20

Page 7: Java Server Pages

2. Java Servlets

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 7/20

Servle t

Servle t

Servle t

Servle t-C onta inerDatenbank

Web-Server

Page 8: Java Server Pages

2. Java Servlets Was sind Servlets ?

Java-Klassen, die das Interface javax.servlet.Servlet implementieren.

meistens Subklassen von javax.servlet.http.HttpServlet

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 8/20

Page 9: Java Server Pages

2. Java Servlets Der Lebenszyklus eines Servlets:

Der Browser schickt eine Anfrage an den Webserver

Ist das Servlet noch nicht geladen (instanziiert), so wird es vom Servlet-Container geladen, der darauf die Methode init(...) aufruft.

Die Methode service(...) wird aufgerufen, in der das Servlet den HTML-Code erzeugt.

Der Servlet-Container beendet das Servlet eventuell mit destroy().

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 9/20

Page 10: Java Server Pages

2. Was sind Java Server Pages

„Java Server Pages sind eine Möglichkeit, Serverseitig

dynamische Webseiten analog der Methoden CGI und

Servlets zu generieren. Die Besonderheit der Java Server

Pages liegt in der Trennung des Oberflächendesigns der

zu erzeugenden HTML-Seite und des programmier-

technischen Aufwandes“ [1]

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 10/20

Page 11: Java Server Pages

2. Java Server Pages Wie funktionierts ?

Bei der ersten Anfrage eines Clients (Webbrowser) wird die JSP in eine Servlet-Klasse umgeschrieben und compiliert.

Ab diesem Zeitpunkt wird sie genau wie ein Servlet behandelt.

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 11/20

Page 12: Java Server Pages

2. Java Server Pages Merkmale von JSP‘s:

Der komplette Umfang der Sprache Java steht bereit (JavaBeans, JDBC, ...)

Sehr einfaches Sitzungs-Konzept Durch selbst-definierte Tags einfach in

HTML zu integrieren Dadurch ist eine komfortable Trennung

zwischen HTML und Programm möglich

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 12/20

Page 13: Java Server Pages

3. Java Server Pages anwenden

JSP – „Skripte“

JSP – „Aktionen“

Einbindung von JavaBeans

Benutzerdefinierte Tags

Ein kleines Beispiel

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 13/20

Page 14: Java Server Pages

3. JSP – „Skripte“ Java Code-Abschnitte werden durch

das Tag <% ... %> in HTML eingefügt.

Werte von Ausdrücken werden mit <%= ... %> direkt eingesetzt.

Deklarationen sehen so aus: <%! ...%>

<%- dies ist ein Kommentar ! -%>

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 14/20

Page 15: Java Server Pages

3. JSP – „Aktionen“ Aktionen, um den Ablauf einer JSP

zu verändern: (Standardaktionen)

<jsp:include page=„URL“ ... />

<jsp:forward page=„URL“ ... />

<jsp:plugin ... />

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 15/20

Page 16: Java Server Pages

3. Einbindung von JavaBeans Deklaration innerhalb der JSP mit der

Aktion ‚useBean‘:<jsp:useBean id=„Name“ class=„BeanKlasse“

scope=„Gültigkeitsbereich“ ... />

Das Setzen einer Eigenschaft:<jsp:setProperty name=„BeanName“ property=„propertyName“ value=„Wert“ />

Das abrufen einer Eigenschaft:<jsp:getProperty name=„BeanName“ property=„propertyName“ />

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 16/20

Page 17: Java Server Pages

3. Benutzerdefinierte Tags Unterstützung im Paketjavax.servlet.jsp.tagext

Für jeden Tag wird eine Klasse benötigt, die den Tag behandelt.

Definition durch tag-library-descriptor in XML und der Direktive <%@ taglib ... %> in der JSP.

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 17/20

Page 18: Java Server Pages

3. Ein kleines BeispielDatei „zaehler.jsp“ :<%@ page errorPage="errorpge.jsp" session="true"%>

<jsp:useBean id="zaehler" scope="session" class="bsp.ZaehlerBean">

<% session.setMaxInactiveInterval(90); %>

</jsp:useBean>

<% zaehler.increment(); %>

<html>

<h4>Anzahl der Zugriffe: <%= zaehler.getAnzahl() %></h4>

<a href="zaehler.jsp">Reload</a><p>

<a href="ende.jsp">Ende der Session</a>

</html>

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 18/20

Page 19: Java Server Pages

3. Ein kleines BeispielDatei „ende.jsp“ :

<%@ page errorPage="errorpge.jsp" %>

<% session.invalidate(); %>

<html>

<h4>Ende der Session</h4>

<a href="zaehler.jsp">Start der Session</a>

</html>

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 19/20

Page 20: Java Server Pages

3. Ein kleines Beispielpackage bsp; Datei „ZaehlerBean.java“

import javax.servlet.*;import javax.servlet.http.*;import java.util.*;

public class ZaehlerBean implements HttpSessionBindingListener { private int anzahl = 0;

public void increment() { anzahl++; } public int getAnzahl() { return anzahl; }...}

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer

Seite 20/20

Page 21: Java Server Pages

Literatur1. JavaServer Pages und Servlets

Brantner/Schmidt/Wabnitz, Data Becker, 20012. Java Server und Servlets

Roßbach/Schreiber, Addison Wesley, 20003. Java-Bausteine für E-Commerce-Anwendungen

Eberhart/Fischer, Carl Hanser Verlag, 20004. Java Servlet Programming

Hunter/Crawford, O‘Reilly, 19985. http://java.sun.com/products/jsp/docs.html6. http://java.sun.com/books/tutorial/servlets7. http://jakarta.apache.org/tomcat/tomcat-4.0-doc

Blockseminar Wintersemester 2001/2002 Jochen Pfeiffer