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

Inhaltsverzeichnis
Vorwort
1 Neues in Java 7
2 Threads und nebenläufige Programmierung
3 Datenstrukturen und Algorithmen
4 Raum und Zeit
5 Dateien, Verzeichnisse und Dateizugriffe
6 Datenströme
7 Die eXtensible Markup Language (XML)
8 Dateiformate
9 Grafische Oberflächen mit Swing
10 Grafikprogrammierung
11 Netzwerkprogrammierung
12 Verteilte Programmierung mit RMI
13 RESTful und SOAP Web-Services
14 JavaServer Pages und Servlets
15 Applets
16 Datenbankmanagement mit JDBC
17 Technologien für die Infrastruktur
18 Reflection und Annotationen
19 Dynamische Übersetzung und Skriptsprachen
20 Logging und Monitoring
21 Java Native Interface (JNI)
22 Sicherheitskonzepte
23 Dienstprogramme für die Java-Umgebung
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
Java 7 - Mehr als eine Insel von Christian Ullenboom
Das Handbuch zu den Java SE-Bibliotheken
Buch: Java 7 - Mehr als eine Insel

Java 7 - Mehr als eine Insel
Rheinwerk Computing
1433 S., 2012, geb.
49,90 Euro, ISBN 978-3-8362-1507-7
Pfeil 14 JavaServer Pages und Servlets
Pfeil 14.1 Dynamisch generierte Webseiten
Pfeil 14.1.1 Was sind Servlets?
Pfeil 14.1.2 Was sind JavaServer Pages?
Pfeil 14.2 Servlets und JSPs mit Tomcat entwickeln
Pfeil 14.2.1 Servlet-Container
Pfeil 14.2.2 Entwicklung der Servlet/JSP-Spezifikationen
Pfeil 14.2.3 Webserver mit Servlet-Funktionalität
Pfeil 14.2.4 Tomcat installieren
Pfeil 14.2.5 Ablageort für eigene JSPs
Pfeil 14.2.6 Webapplikationen
Pfeil 14.2.7 Zuordnung von Webapplikationen zu physikalischen Verzeichnissen
Pfeil 14.2.8 Web-Projekt mit Eclipse IDE for Java EE Developers
Pfeil 14.3 Statisches und Dynamisches
Pfeil 14.3.1 Statischer Template-Code
Pfeil 14.3.2 Dynamische Inhalte
Pfeil 14.3.3 Kommentare
Pfeil 14.4 Die Expression Language (EL)
Pfeil 14.4.1 Operatoren der EL
Pfeil 14.4.2 Literale
Pfeil 14.4.3 Implizite EL-Objekte
Pfeil 14.5 Formulardaten
Pfeil 14.5.1 Einen Parameter auslesen
Pfeil 14.5.2 HTML-Formulare
Pfeil 14.6 Auf Beans zurückgreifen
Pfeil 14.6.1 Beans in JSPs anlegen
Pfeil 14.6.2 Properties einer Bean im EL-Ausdruck erfragen
Pfeil 14.6.3 Properties mit <jsp:setProperty> setzen
Pfeil 14.6.4 Bean-Klasse zum Testen von E-Mail-Adressen
Pfeil 14.6.5 Parameterwerte in Bean übertragen
Pfeil 14.7 JSP-Tag-Libraries
Pfeil 14.7.1 Standard Tag Library (JSTL)
Pfeil 14.8 Skripting-Elemente in JSPs
Pfeil 14.8.1 Scriptlets
Pfeil 14.8.2 JSP-Ausdrücke
Pfeil 14.8.3 JSP-Deklarationen
Pfeil 14.8.4 Quoting
Pfeil 14.8.5 Entsprechende XML-Tags
Pfeil 14.8.6 Implizite Objekte für Scriptlets und JSP-Ausdrücke
Pfeil 14.9 Sitzungsverfolgung (Session Tracking)
Pfeil 14.9.1 Lösungen für die Sitzungsverfolgung
Pfeil 14.9.2 Sitzungen in JSPs
Pfeil 14.9.3 Auf Session-Dateien zurückgreifen
Pfeil 14.10 Servlets
Pfeil 14.10.1 Servlets compilieren
Pfeil 14.10.2 Servlet-Mapping
Pfeil 14.10.3 Der Lebenszyklus eines Servlets
Pfeil 14.10.4 Mehrere Anfragen beim Servlet und die Thread-Sicherheit
Pfeil 14.10.5 Servlets und Sessions
Pfeil 14.10.6 Weiterleiten und Einbinden von Servlet-Inhalten
Pfeil 14.11 Zum Weiterlesen

Rheinwerk Computing - Zum Seitenanfang

14.8 Skripting-Elemente in JSPsZur nächsten Überschrift

In eine JSP lassen sich Scripting-Elemente einsetzen, um beliebigen Java-Quellcode unterzubringen. Es gibt drei unterschiedliche Typen von Scripting-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.

Hinweis

Von einer (breiten) Nutzung dieser Scripting-Elemente ist abzusehen! Sie entsprechen keinem guten Stil, da die Programmlogik ausschließlich in JavaBeans und dahinter geschalteten Services zu finden sein sollte und nicht in der Darstellungsschicht.


Rheinwerk Computing - Zum Seitenanfang

14.8.1 ScriptletsZur nächsten ÜberschriftZur vorigen Überschrift

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

Listing 14.15: howDoYouDo.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.


Rheinwerk Computing - Zum Seitenanfang

14.8.2 JSP-AusdrückeZur 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 14.16: expressions.jsp

<% double w = 2; %> Die Wurzel von <%= w %> ist <%= Math.sqrt( w ) %>
<br/>
Die aktuelle Zeit ist <%= new java.util.Date() %>
<br/>
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.

Rheinwerk Computing - Zum Seitenanfang

14.8.3 JSP-DeklarationenZur nächsten ÜberschriftZur vorigen Überschrift

Die bisherigen Einbettungen wurden vom JSP-Compiler automatisch in eine spezielle Methode gelegt – Methoden lassen sich dort nicht deklarieren. Zwischen den Tags <%! und %> lassen sich nun Dinge außerhalb dieser JSP-Methode 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 14.17: 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 random( java.awt.Point p, java.awt.Point q ) {
return ( Math.random() > 0.5 ) ? p : q;
}
%>
<%= random( 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.


Rheinwerk Computing - Zum Seitenanfang

14.8.4 QuotingZur 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 muss \" 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 %> ebenso mit einem Backslash: %\>.


Rheinwerk Computing - Zum Seitenanfang

14.8.5 Entsprechende XML-TagsZur 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:

Tabelle 14.7: XML-Entsprechungen für JSP-Tags

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" />


Rheinwerk Computing - Zum Seitenanfang

14.8.6 Implizite Objekte für Scriptlets und JSP-AusdrückeZur 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 werden, und eigene Variablen dürfen nicht so benannt werden.

Tabelle 14.8: Implizite JSP-Objekte

Implizites Objekt Benutzt, um ... Typ

request

Anfragen zu verarbeiten und Eingabewerte wie Parameter zu lesen.

HttpServletRequest

response

etwas an den Client zu übermitteln, wie beispielsweise 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.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Neuauflage: Java SE 8 Standard-Bibliothek
Neuauflage: Java SE 8 Standard-Bibliothek
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Eclipse






 Einstieg in Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das 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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de