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.10 JSP-Direktiven Eine Direktive gibt dem JSP-Container besondere Informationen darüber mit, wie er die Seite bearbeiten soll. Sie ergeben keine direkt sichtbare Ausgabe. Direktiven werden in den Tags <%@ und %> eingeschlossen, und die allgemeine Form lautet:
    <%@ direktivenname attribut="wert" attribut2="wert" ... %>
Jede Direktive besitzt einen Namen. Es gibt zum Beispiel Direktiven für die Einbettung von fremden Seiten (include) und die Definition der Seitenattribute (page), die Startinformationen für die Servlet-Umgebung definiert. Mit dem Namen können wir auch eine XML-Form nutzen:
    <jsp:directive direktivenname attrib1="wert" attrib2="wert" ... />
### 20.10.1 page-Direktiven im Überblick Die page-Direktive ist die komplexeste aller Direktiven. Sie hat eine Reihe von Attributen, die vorgestellt werden sollen. #### Das Attribut import Die Direktive page import gibt an, welche Klassen durch die JSP importiert werden sollen. Sie entsprechen dem bekannten import. Mehrere Pakete werden durch ein Komma getrennt. Das Attribut import ist das einzige, das mehr als einmal benutzt werden kann.
    <%@ page import="java.util.*, java.awt.Point" %>
Die Klassen der Pakete java.lang, javax.servlet, javax.servlet.http und javax.servlet.jsp sind automatisch importiert. #### Das Attribut contentType Der Content-Type ist der MIME-Typ der JSP. Änderungen des Standardwerts »text/html« sind nötig, wenn unsere JSP zum Beispiel eine XML-Datei zurückgibt:
    <%@ page contentType="text/xml" %>
Die Zeichenkette kann zusätzlich Informationen über die Zeichenkodierung enthalten. Der Wert ist mit einem Semikolon abgetrennt:
    <%@ page contentType="text/xml; charset=ISO-8859–1" %>
Tipp Um aus einer JavaServer Page (oder einem Servlet) Microsoft Excel-Tabellen zu erzeugen, reicht es, eine HTML-Tabelle zu generieren und dann als Content-Type »application/vnd.ms-excel« anzugeben.
#### Das Attribut language Dieses Attribut gibt an, welche Skriptsprache in diesem JSP benutzt wird. Zurzeit wird nur »java« unterstützt.

Tabelle 20.2 Page-Attribute

Attribut | Vorgabewert | Beispiel
autoFlush | true | autoFlush="false"
buffer | min. 8kb | buffer="16kb"
contentType | text/html | contentType="image/gif"
errorPage | – | errorPage="/jsp/error.jsp"
extends | – | extends="SuperServlet"
import | – | import="java.io.*,java.util.*"
isErrorPage | false | isErrorPage="true"
isThreadSave | true | isThreadSave="false"
language | java | language="java"
session | true | session="false"
### 20.10.2 Mit JSPs Bilder generieren Soll ein Bild dynamisch generiert werden, ist das mit JSPs möglich, für Binärdateien sind jedoch Servlets üblich. Die Anforderung an die JSP/das Servlet, eine Grafik zu laden, steht gewöhnlich in einer anderen Webseite, etwa so:
    <img src=" http://localhost:8080/web/JpegImage.jsp" alt="smile" />
Die JSP JpegImage.jsp soll ein Bild erzeugen und mit dem passenden Encoder von Sun als JPG dem Browser übermitteln. Da der Content-Typ unserer bisherigen JSP nur für Textdateien stand, müssen wir für JPEG-Grafiken den Typ auf »image/jpeg« setzen. Die Grafik soll lediglich zwei einfache Linien darstellen. Zum Zeichnen sind das AWT-Paket, das AWT-Image-Paket für die Hintergrundgrafik und das Encoder-Paket zum Schreiben der JPEG-Datei relevant. Damit beginnt die JSP mit: Listing 20.18 JpegImage.jsp
    <%@ page contentType="image/jpeg" %><%@
        page import="java.awt.*,java.awt.image.*, com.sun.image.codec.jpeg.*" %><%
Jetzt lässt sich die Grafik als Hintergrundbild vom Typ BufferedImage aufbauen. Dieses Objekt bietet getGraphics(), und mit dem bekannten Graphics-Objekt sind Zeichenoperationen möglich:
      int width  = 200,
          height = 200;
      BufferedImage image = new BufferedImage( width, height,
                                               BufferedImage.TYPE_INT_RGB );
      Graphics g = image.getGraphics();
      g.setColor( Color.white );
      g.fillRect( 0, 0, width, height );
      g.setColor( Color.blue );
      g.drawLine( 0, 0, 200, 200 );
      g.drawLine( 0, 200, 200, 0 );
      g.dispose();
Der letzte Schritt besteht darin, vom impliziten response-Objekt den binären Ausgabestrom zu besorgen und den JPEG-Encoder zu veranlassen, das Bild in den Ausgabestrom zu schreiben:
      ServletOutputStream sos = response.getOutputStream();
      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( sos );
      encoder.encode( image );
    %>
Für eine tatsächliche Bildanforderung gibt es also immer zwei Server-Kontakte: Der erste Request fordert die Webseite an, die über ein <img>-Tag die Grafik verlangt. Im zweiten Schritt kontaktiert der Browser den Server erneut, um genau dieses Bild zu erfragen – der Browser weiß nicht, dass es dynamisch produziert wird. ### 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