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 Generics, innere Klassen
10 Die Klassenbibliothek
11 Threads und nebenläufige Programmierung
12 Datenstrukturen und Algorithmen
13 Raum und Zeit
14 Dateien und Datenströme
15 Die eXtensible Markup Language (XML)
16 Grafische Oberflächen mit Swing
17 Grafikprogrammierung
18 Netzwerkprogrammierung
19 Verteilte Programmierung mit RMI und Web–Services
20 JavaServer Pages und Servlets
21 Applets
22 Midlets und die Java ME
23 Datenbankmanagement mit JDBC
24 Reflection und Annotationen
25 Logging und Monitoring
26 Sicherheitskonzepte
27 Java Native Interface (JNI)
28 Dienstprogramme für die Java-Umgebung
Stichwort
Download: - ZIP, ca. 14,1 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Java-Insel | vor >>
Java ist auch eine Insel (8. Auflage) von Christian Ullenboom Programmieren mit der Java Standard Edition Version 6
Java ist auch eine Insel (8. Aufl.) 8., aktual. Auflage, geb., mit DVD 1.475 S., 49,90 Euro Galileo Computing ISBN 978-3-8362-1371-4 |
| 20 JavaServer Pages und Servlets
|  | 20.1 Dynamisch generierte Webseiten
|  |  | 20.1.1 Was sind Servlets?
|  |  | 20.1.2 Was sind JavaServer Pages?
|  | 20.2 Servlets und JSPs mit Tomcat entwickeln
|  |  | 20.2.1 Servlet-Container
|  |  | 20.2.2 Entwicklung der Servlet-/JSP-Spezifikationen
|  |  | 20.2.3 Webserver mit Servlet-Funktionalität
|  |  | 20.2.4 Tomcat installieren
|  |  | 20.2.5 Ablageort für eigene JSPs
|  |  | 20.2.6 Web-Applikationen
|  |  | 20.2.7 Zuordnung von Web-Applikationen zu physikalischen Verzeichnissen
|  |  | 20.2.8 Web-Projekt mit Eclipse IDE for Java EE Developers entwickeln
|  | 20.3 Statisches und Dynamisches
|  |  | 20.3.1 Statischer Template-Code
|  |  | 20.3.2 Dynamische Inhalte
|  |  | 20.3.3 Kommentare
|  | 20.4 Die Expression Language (EL)
|  |  | 20.4.1 Operatoren der EL
|  |  | 20.4.2 Literale
|  |  | 20.4.3 Implizite EL-Objekte
|  | 20.5 Formulardaten
|  |  | 20.5.1 Einen Parameter auslesen
|  |  | 20.5.2 HTML-Formulare
|  | 20.6 Auf Beans zurückgreifen
|  |  | 20.6.1 Beans in JSPs anlegen
|  |  | 20.6.2 Properties einer Bean im EL-Ausdruck erfragen
|  |  | 20.6.3 Properties mit <jsp:setProperty> setzen
|  |  | 20.6.4 Bean-Klasse zum Testen von E-Mail-Adressen
|  |  | 20.6.5 Parameterwerte in Bean übertragen
|  | 20.7 JSP-Tag-Libraries
|  |  | 20.7.1 Standard Tag Library (JSTL)
|  | 20.8 Einbinden und Weiterleiten
|  |  | 20.8.1 Einbinden von Inhalten
|  |  | 20.8.2 Forward und Redirect
|  |  | 20.8.3 Applets einbinden
|  | 20.9 Scripting-Elemente in JSPs
|  |  | 20.9.1 Scriptlets
|  |  | 20.9.2 JSP-Ausdrücke
|  |  | 20.9.3 JSP-Deklarationen
|  |  | 20.9.4 Quoting
|  |  | 20.9.5 Entsprechende XML-Tags
|  |  | 20.9.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke
|  | 20.10 JSP-Direktiven
|  |  | 20.10.1 page-Direktiven im Überblick
|  |  | 20.10.2 Mit JSPs Bilder generieren
|  | 20.11 Sitzungsverfolgung (Session Tracking)
|  |  | 20.11.1 Lösungen für Sitzungsverfolgung
|  |  | 20.11.2 Auf Session-Dateien zurückgreifen
|  | 20.12 Servlets
|  |  | 20.12.1 Servlets compilieren
|  |  | 20.12.2 Servlet-Mapping
|  |  | 20.12.3 Der Lebenszyklus eines Servlets
|  |  | 20.12.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit
|  |  | 20.12.5 Servlets und Sessions
|  |  | 20.12.6 Weiterleiten und Einbinden von Servlet-Inhalten
|  | 20.13 Zum Weiterlesen
## 20.6 Auf Beans zurückgreifen 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. ### 20.6.1 Beans in JSPs anlegen 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 20.9 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. ### 20.6.2 Properties einer Bean im EL-Ausdruck erfragen 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 20.10 year.jsp
    <jsp:useBean id="now" class="java.util.Date" />
    Jahr: ${1900 + now.year}.
Properties beginnen immer mit einem Kleinbuchstaben! ### 20.6.3 Properties mit <jsp:setProperty> setzen Die EL bietet nur Leseoperationen, 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 20.11 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 Wir haben auf die Properties mit der EL zugegriffen, aber vor JSP 2.0 kam <jsp:get Property> mit den Attributen name und property zum Einsatz.
### 20.6.4 Bean-Klasse zum Testen von E-Mail-Adressen 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 20.12 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 20.13 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}
### 20.6.5 Parameterwerte in Bean übertragen 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 20.14 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 entsprechenden setXXX()-Methoden der Bean aufgerufen. ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Java ist auch eine Insel Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Tipp
| Coding for Fun
Buchempfehlungen
| Objektorientierte Programmierung
| Einstieg in Eclipse 3.4
| Java 6 lernen mit Eclipse
| NetBeans Platform 6
| Java und XML
| Visual C# 2008
| IT-Handbuch für Fachinformatiker
| C++ von A bis Z
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
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