Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Java ist auch eine Sprache
2 Sprachbeschreibung
3 Klassen und Objekte
4 Der Umgang mit Zeichenketten
5 Mathematisches
6 Eigene Klassen schreiben
7 Angewandte Objektorientierung
8 Exceptions
9 Die Funktionsbibliothek
10 Threads und nebenläufige Programmierung
11 Raum und Zeit
12 Datenstrukturen und Algorithmen
13 Dateien und Datenströme
14 Die eXtensible Markup Language (XML)
15 Grafische Oberflächen mit Swing
16 Grafikprogrammierung
17 Netzwerkprogrammierung
18 Verteilte Programmierung mit RMI und Web-Services
19 JavaServer Pages und Servlets
20 Applets
21 Midlets und die Java ME
22 Datenbankmanagement mit JDBC
23 Reflection und Annotationen
24 Logging und Monitoring
25 Sicherheitskonzepte
26 Java Native Interface (JNI)
27 Dienstprogramme für die Java-Umgebung
A Die Begleit-DVD
Stichwort

Download:
- ZIP, ca. 12,5 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java ist auch eine Insel von Christian Ullenboom
Programmieren mit der Java Standard Edition Version 6
Buch: Java ist auch eine Insel

Java ist auch eine Insel
7., aktualisierte Auflage
geb., mit DVD (November 2007)
1.492 S., 49,90 Euro
Galileo Computing
ISBN 978-3-8362-1146-8
Pfeil 19 JavaServer Pages und Servlets
Pfeil 19.1 Dynamisch generierte Webseiten
Pfeil 19.1.1 Was sind Servlets?
Pfeil 19.1.2 Was sind JavaServer Pages?
Pfeil 19.2 Servlets und JSPs mit Tomcat entwickeln
Pfeil 19.2.1 Servlet-Container
Pfeil 19.2.2 Entwicklung der Servlet/JSP-Spezifikationen
Pfeil 19.2.3 Webserver mit Servlet-Funktionalität
Pfeil 19.2.4 Tomcat
Pfeil 19.2.5 Ablageort für eigene JSP-Seiten
Pfeil 19.2.6 Web-Applikationen
Pfeil 19.2.7 Zuordnung von Web-Applikationen zu physikalischen Verzeichnissen
Pfeil 19.2.8 Mit dem WTP ein Web-Projekt entwickeln
Pfeil 19.3 Statisches und Dynamisches
Pfeil 19.3.1 Statischer Template-Code
Pfeil 19.3.2 Dynamische Inhalte
Pfeil 19.3.3 Kommentare
Pfeil 19.4 Die Expression Language (EL)
Pfeil 19.4.1 Operatoren der EL
Pfeil 19.4.2 Literale
Pfeil 19.4.3 Implizite EL-Objekte
Pfeil 19.5 Formulardaten
Pfeil 19.6 Auf Beans zurückgreifen
Pfeil 19.6.1 Beans in JSP-Seiten anlegen
Pfeil 19.6.2 Properties einer Bean im EL-Ausdruck erfragen
Pfeil 19.6.3 Properties mit <jsp:setProperty> setzen
Pfeil 19.6.4 Bean-Klasse zum Testen von E-Mail-Adressen
Pfeil 19.6.5 Parameterwerte in Bean übertragen
Pfeil 19.7 JSP Tag-Libraries
Pfeil 19.7.1 Standard Tag Library (JSTL)
Pfeil 19.7.2 Jakarta Taglibs Project
Pfeil 19.8 Einbinden und Weiterleiten
Pfeil 19.8.1 Einbinden von Inhalten
Pfeil 19.8.2 Forward und Redirect
Pfeil 19.8.3 Applets einbinden
Pfeil 19.9 Skripten von JSPs
Pfeil 19.9.1 Scriptlets
Pfeil 19.9.2 JSP-Ausdrücke
Pfeil 19.9.3 JSP-Deklarationen
Pfeil 19.9.4 Quoting
Pfeil 19.9.5 Entsprechende XML-Tags
Pfeil 19.9.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke
Pfeil 19.10 JSP-Direktiven
Pfeil 19.10.1 page-Direktiven im Überblick
Pfeil 19.10.2 Mit JSPs Bilder generieren
Pfeil 19.11 Sitzungsverfolgung (Session Tracking)
Pfeil 19.11.1 Lösungen für Sitzungsverfolgung
Pfeil 19.11.2 Auf Session-Dateien zurückgreifen
Pfeil 19.12 Servlets
Pfeil 19.12.1 Servlets compilieren
Pfeil 19.12.2 Servlet-Mapping
Pfeil 19.12.3 Der Lebenszyklus eines Servlets
Pfeil 19.12.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit
Pfeil 19.12.5 Servlets und Sessions
Pfeil 19.12.6 Weiterleiten und Einbinden von Servlet-Inhalten
Pfeil 19.13 Internationalisierung
Pfeil 19.13.1 Die Länderkennung des Anfragers auslesen
Pfeil 19.13.2 Länderkennung für die Ausgabe setzen
Pfeil 19.13.3 Westeuropäische Texte senden
Pfeil 19.14 Zum Weiterlesen


Galileo Computing - Zum Seitenanfang

19.6 Auf Beans zurückgreifen Zur nächsten ÜberschriftZur vorigen Überschrift

Eine JavaBean ist eine einfache Softwarekomponente mit einem Standard-Konstruktor und enthält nach einem Namensschema benannte Methoden. Für eine Eigenschaft XXX existieren die Methoden setXXX() oder getXXX(). Eine JSP kann Beans erzeugen, Properties lesen und schreiben und auf diese Weise Geschäftslogik anstoßen. JavaBeans stellen somit das Backend der Web-Applikation dar.


Galileo Computing - Zum Seitenanfang

19.6.1 Beans in JSP-Seiten anlegen Zur nächsten ÜberschriftZur vorigen Überschrift

Die JSP-Aktion <jsp:useBean> macht in der JSP eine JavaBean-Instanz verfügbar, die über einen EL-Ausdruck oder über ein Scriptlet verwendet werden kann.

Listing 19.8 now.jsp

<jsp:useBean id="now" class="java.util.Date" /> 
Heute ist ${now}.

Die Aktion <jsp:useBean> erwartet zwei Attribute:

  • id. Gibt den Namen der Bean an. Der Name muss ein gültiger Java-Bezeichnername sein, denn die Aktion führt zu einer lokalen Variablen im Servlet, auf die ein Scriptlet zugreifen kann.
  • class. Identifiziert mit dem voll qualifizierten Klassennamen die JavaBean.

Der Ausdruck ${now} ruft automatisch die toString()-Methode der Bean auf, sodass das aktuelle Datum in der JSP erscheint.


Galileo Computing - Zum Seitenanfang

19.6.2 Properties einer Bean im EL-Ausdruck erfragen Zur nächsten ÜberschriftZur vorigen Überschrift

Mit der JSP Expression Language können nicht nur einfache Literale wie in ${12+12} verarbeitet werden, sondern es lassen sich wie zum Beispiel in ${now.year} auch JavaBeans Properties erfragen. Dazu ist der Name der Property nach einem Punkt hinter dem Bean-Namen zu setzen. Da das Date-Objekt die (deprecated) Setter/Getter setYear() und getYear() besitzt, ist für den Zugriff auf das Jahr Folgendes zu schreiben:

Listing 19.9 year.jsp

<jsp:useBean id="now" class="java.util.Date" /> 
Jahr: ${1900 + now.year}.

Properties beginnen immer mit einem Kleinbuchstaben!


Galileo Computing - Zum Seitenanfang

19.6.3 Properties mit <jsp:setProperty> setzen Zur nächsten ÜberschriftZur vorigen Überschrift

Die EL bietet nur Lese-Operationen, sodass zum Belegen von Bean-Attributen eine andere Syntax zu wählen ist. JSP definiert zum Setzen von Properties die Aktion <jsp:setProperty>. Setzen wir ein Date-Objekt auf den 12.3.1973:

Listing 19.10 mybirthday.jsp

<jsp:useBean id="birthday" class="java.util.Date" /> 
<jsp:setProperty name="birthday" property="date" value="12" /> 
<jsp:setProperty name="birthday" property="month" value="2" /> 
<jsp:setProperty name="birthday" property="year" value="${ 1973 – 1900 }" /> 
${birthday}

Konvertierungen von String in den Property-Datentyp nimmt der Web-Container selbstständig vor – natürlich kann es zu Konvertierungsfehlern kommen. Im Attribut value sind auch EL-Ausdrücke zur Berechnung möglich, was der letzte Ausdruck zeigt.


Hinweis Hinweis Wir haben auf die Properties mit der EL zugegriffen, aber vor JSP 2.0 kam <jsp:getProperty> mit den Attributen name und property zum Einsatz.



Galileo Computing - Zum Seitenanfang

19.6.4 Bean-Klasse zum Testen von E-Mail-Adressen Zur nächsten ÜberschriftZur vorigen Überschrift

Wir wollen zunächst eine einfache Bean schreiben, die eine E-Mail-Adresse auf Korrektheit prüft. Dabei bedienen wir uns eines kleinen regulären Ausdrucks, den wir im Kapitel über Zeichenkettenverarbeitung bereits vorstellten.

Listing 19.11 com/tutego/web/EMailChecker.java

package com.tutego.web; 
 
public class EMailChecker 
{ 
  private String email = ""; 
 
  public void setEmail( String email ) 
  { 
    this.email = email; 
  } 
 
  public String getEmail() 
  { 
    return email; 
  } 
 
  public boolean isValidEmail() 
  { 
    return email.matches( "[\\w|-]+@\\w[\\w|-]*\\.[a-z]{2,3}" ); 
  } 
}

Insgesamt bietet die Bean zwei Properties an:

  • email. Lese/Schreib-Property
  • validEmail. Nur-Lesen Property

Hinter der Property email stehen Setter/Getter, die auf das private Attribut email zugreifen. Die Property validEmail ist eine abgeleitete Property ohne internes Attribut, welches sich der anderen Property email bedient.

E-Mail-Bean in der JSP nutzen

Zum Testen soll eine JSP eine EMailChecker-Bean anlegen und sie mit unterschiedlichen E-Mail-Adressen füttern. Für jede E-Mail-Adresse wird dann die Property validEmail sagen, ob die E-Mail auf den ersten Blick korrekt oder nicht korrekt aussieht:

Listing 19.12 email.jsp

<jsp:useBean id="emailchecker" class="com.tutego.web.EMailChecker" /> 
<jsp:setProperty name="emailchecker" property="email" value="a@b.com" /> 
${emailchecker.validEmail} 
<br> 
<jsp:setProperty name="emailchecker" property="email" value="@b.com" /> 
${emailchecker.validEmail} 
<br> 
<jsp:setProperty name="emailchecker" property="email" value="a@b" /> 
${emailchecker.validEmail}

Galileo Computing - Zum Seitenanfang

19.6.5 Parameterwerte in Bean übertragen topZur vorigen Überschrift

Um die Bean mit Benutzerwerten zu füttern, ist lediglich auf einen Parameter zurückzugreifen. Wollten wir zum Beispiel eine Mail-Adresse an ein Programm emailcheck.jsp übermitteln, schreiben wir (das »@« müsste eigentlich umkodiert werden in »%40«):

http://localhost:8080/web/emailcheck.jsp?email=a@b.com

Die Bean soll die E-Mail aus dem Parameter email speichern und dann auswerten:

Listing 19.13 emailcheck.jsp

<jsp:useBean id="emailchecker" class="com.tutego.web.EMailChecker" /> 
<jsp:setProperty name="emailchecker" property="email" value="${param.email}" /> 
${emailchecker.email} ist gültig? ${emailchecker.validEmail}

Damit ergibt sich auf der Webseite:

a@b.com ist gültig? true

<jsp:setProperty> ohne value

Der Zugriff auf die Parameter einer Anfrage und das Speichern des Attributs in der Bean ist eine häufig gestellte Aufgabe. Daher haben die Entwickler eine Abkürzung vorgesehen. Hier wird bei <jsp:setProperty> einfach das Attribut value weggelassen.

<jsp:setProperty name="emailchecker" property="email" />

Damit wird der Wert direkt aus dem Parameter ausgelesen, wie üblich automatisch konvertiert und auf eine Property übertragen; dieser Vorgang trägt den gleichen Namen wie der Parameter.

Ist der Wert von property="*", werden alle Eigenschaften aus den Parametern ausgelesen und die entsprechende setXXX()-Funktion der Bean aufgerufen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück



Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de