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.9 Skripten von JSPs Zur nächsten ÜberschriftZur vorigen Überschrift

In eine JSP-Seite lassen sich Skripting-Elemente einsetzen, um beliebigen Java-Quellcode unterzubringen. Es gibt drei unterschiedliche Typen von Skripting-Elementen:

  • JSP-Scriptlets in <% .. %>. In die eingebetteten Java-Stücke lassen sich Anweisungen einsetzen, die in einer normalen Methode gültig sind.
  • JSP-Ausdrücke in <%= .. %>. Das Ergebnis des Ausdrucks wird in die Seite eingebaut.
  • JSP-Deklarationen in <%! .. %>. Diese Umgebung deklariert Variablen, Methoden und innere Klassen.

Es ist wegen der ähnlichen Schreibweise wichtig, die Unterscheidung zwischen Deklaration (!), Ausdruck (=) und Scriptlet aufrechtzuerhalten, da es sonst zu Compiler-Meldungen des JSP-Übersetzers kommt.


Galileo Computing - Zum Seitenanfang

19.9.1 Scriptlets Zur nächsten ÜberschriftZur vorigen Überschrift

Scriptlets liegen zwischen den Tags <% und %>. Zwischen ihnen kann beliebiger Java-Quellcode eingebettet werden.

Listing 19.14 wieFuehlIchMich.jsp

<% if ( Math.random() > 0.5 ) { %> 
  Wow, bist du gut drauf. 
<% } else { %> 
  Du bist ja ein toller Hecht. 
<% } %>

Die Block-Klammern sollten grundsätzlich gesetzt werden, auch wenn es im Einzelfall ohne Klammern funktioniert. Das liegt daran, dass der JSP-Compiler die Templates in beliebig viele Anweisungen aufspalten kann, sodass dann zwischen if und else mehr als eine Anweisung liegen.


Galileo Computing - Zum Seitenanfang

19.9.2 JSP-Ausdrücke Zur nächsten ÜberschriftZur vorigen Überschrift

JSP-Ausdrücke sind eine Abkürzung für out.println() innerhalb von Scriptlets. Innerhalb der Tags <%= und %> steht ein gültiger Java-Ausdruck ohne abschließendes Semikolon (da es automatisch in ein print() gesetzt wird, und dort steht ja auch kein Semikolon vor der schließenden Klammer).

Listing 19.15 ausdruck.jsp

<% double w = 2; %> Die Wurzel von <%= w %> ist <%= Math.sqrt( w ) %> 
<p> 
Die aktuelle Zeit ist <%= new java.util.Date() %> 
<p> 
Hallo <%= request.getRemoteHost() %>.

Meine Ausgabe ist:

Die Wurzel von 2.0 ist 1.4142135623730951 
Die aktuelle Zeit ist Sat Jul 01 23:08:23 CEST 2006 
Hallo 127.0.0.1.

Galileo Computing - Zum Seitenanfang

19.9.3 JSP-Deklarationen Zur nächsten ÜberschriftZur vorigen Überschrift

Die bisherigen Einbettungen wurden vom JSP-Compiler automatisch in eine spezielle Funktion gelegt – Methoden lassen sich doch nicht deklarieren. Zwischen den Tags <%! und %> lassen sich nun Dinge außerhalb dieser JSP-Funktion deklarieren, zum Beispiel Objektvariablen, Methoden oder innere Klassen. In Ausdrücken und Scriptlets können wir dann die Methoden aufrufen und die Variablen nutzen.

Listing 19.16 points.jsp

<%! double d; %> 
 
<%! java.awt.Point p = new java.awt.Point( 2, 3 ), 
                   q = new java.awt.Point( 5, 8 ); 
 
  public java.awt.Point zufall( java.awt.Point p, java.awt.Point q ) { 
    return ( Math.random() > 0.5 ) ? p : q; 
  } 
%> 
<%= zufall(p, q) %>

Der Gültigkeitsbereich der Eigenschaften umfasst die aktuelle Datei sowie möglicherweise zusätzlich eingebundene Dateien. Häufig wird so in Ausdrücken oder Scriptlets auf diese Eigenschaften verwiesen.


Galileo Computing - Zum Seitenanfang

19.9.4 Quoting Zur nächsten ÜberschriftZur vorigen Überschrift

Das Quoting ersetzt spezielle Zeichenketten, die andernfalls falsch interpretiert werden können. Wir kennen es von Strings, die ein »"« einbringen wollen. Hier musste \" geschrieben werden, um das Anführungszeichen nicht fälschlicherweise als Endzeichen anzusehen. In JSP haben wir ebenso die üblichen Regeln für das Quoting. Für die Skript-Elemente ist aber <% %> eine Zeichenkette, die als Einheit gilt. In Zeichenketten schreiben wir daher für <% einfach <\% und für %> dies ebenso mit einem Backslash %\>.


Galileo Computing - Zum Seitenanfang

19.9.5 Entsprechende XML-Tags Zur nächsten ÜberschriftZur vorigen Überschrift

JavaServer Pages können problemlos XML erzeugen, aber die JSP-Datei ist damit selbst noch nicht zwingend XML-konform. Dazu muss sie zunächst einen definierten Kopf bekommen:

<?xml version="1.0" ?>

Dann müssen alle JSP-Tags (für Scriptlets, Ausdrücke, ...) in äquivalente XML-Anweisungen umgesetzt werden:


Normale Syntax XML-Syntax

<%= expression %>

<jsp:expression>expression</jsp:expression>

<% scriptlet %>

<jsp:scriptlet>scriptlet</jsp:scriptlet>

<%! declaration %>

<jsp:declaration>declaration</jsp:declaration>

<%@ page Attribute Liste %>

<jsp:directive.page Attribute Liste />

<%@ include file="Pfad" %>

<jsp:directive.include file="Pfad" />



Galileo Computing - Zum Seitenanfang

19.9.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke topZur vorigen Überschrift

Der Programmcode der Scriptlets wird in die service()-Methode eines Servlets gestellt. Dort haben wir Zugriff auf einige vordefinierte Variablen, die so in der JSP-Spezifikation beschrieben sind. Sie heißen implizite Objekte. Ihr Name kann nicht verändert und eigene Variablen dürfen nicht so benannt werden.


Implizites Objekt Benutzt, um ... Typ

request

Anfragen zu verarbeiten und Eingabewerte wie Parameter zu lesen

HttpServletRequest

response

an den Client etwas zu übermitteln, wie Header

HttpServletResponse

out

in den Ausgabestrom zu schreiben

JspWriter

application

Daten aller Anwendungen zu speichern

ServletContext

session

Sitzungsinformationen zu speichern

HttpSession

pageContext

Kontextdaten für eine Seite zu speichern

PageContext

Page

ein Exemplar des Servlets anzusprechen

Object (this)


Wenn wir programmtechnisch eine Ausgabe machen, schreiben wir:

<% out.println( "Guter Sound, Liz" ); %>

Das ist gleichwertig mit <%= "Guter Sound, Liz" %>. Natürlich können wir immer das out-Objekt zur Ausgabe einsetzen, doch hat dies wieder den Nachteil, dass die Visualisierung nicht vom Programmcode getrennt ist. In Scriptlet-Code kann auf diese Weise auf die Ausgabe zugegriffen werden, sodass die Scriptlets nicht immer durch JSP-Ausdrücke unterbrochen werden müssen.



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