14.5 Formulardaten
Geht eine HTTP-Anfrage an den Server, kann der Client Daten mitgeben, etwa Formulardaten zur Anmeldung eines Benutzers oder Suchbegriffe. Die übermittelten Parameter verarbeitet der Servlet-Container automatisch und stellt sie über das implizite EL-Objekt param einer JSP zur Verfügung. Dass bei GET der Client die Informationen hinter einem Fragezeichen an die URL anhängt und bei POST die Daten über einen Datenstrom zum Server gelangen, merken wir in der JSP nicht, denn das Auslesen sieht immer gleich aus.
14.5.1 Einen Parameter auslesen
Wollen wir testen, ob der Benutzer gut in Form ist und einen Parameter eingetragen hat, schreiben wir:
Listing 14.7: parameter.jsp
Dein Name ist ${param.name}.
Füllen wir den Parameter für die JSP etwa so:
http://localhost:8080/web/parameter.jsp?name=Christian
Der Parameter-String ist von der Groß- und Kleinschreibung abhängig. Der zurückgegebene Wert ist gleich im passenden Format und muss nicht erst eine Entschlüsselung durchlaufen.
Rufen wir die JSP ohne Parameter auf, liefert der EL-Ausdruck einen Leerstring (also ""). So existiert zwar der Schlüssel, doch ist kein Wert kodiert. null kann der Ausdruck nicht werden!
14.5.2 HTML-Formulare
Bisher haben wir unsere HTML-Seiten nur für Ausgaben genutzt. HTML-Seiten könnten aber auch Eingabefehler für Benutzerinteraktionen aufweisen. Zu den Interaktionselementen gehören unter anderem Textfelder, Schaltflächen und Listen. Für diese Elemente gibt es spezielle Tags. Die wichtigsten sind:
HTML-Tag | Beschreibung |
<input type="text"> |
Eingabefeld |
<input type="submit"> |
Submit-Button |
<input type="password"> |
Eingabefeld für Passwörter |
<input type="checkbox"> |
Checkbox |
<input type="radio"> |
Radiobutton mit optionaler Gruppe |
<textarea> |
Mehrzeilige Eingabe |
<button> |
Schaltflächen |
<select> mit <option> |
Auswahllisten (Pulldown-Menü) |
Die Elemente werden in HTML-Formularen zusammengefasst. Damit eine HTML-Datei ein HTML-Formular definiert, sind die Formularelemente in das HTML-Element <form> zu setzen:
Listing 14.8: formular.jsp
<form action="parameter.jsp">
Name: <input name="name" /> <input type="submit" />
</form>
Abbildung 14.3: Screenshot der Anwendung mit Formular vor dem Absenden
Ein <form>-Tag bekommt das Attribut action, damit der Webbrowser beim Absenden des Formulars weiß, welche Zielseite er ansteuern muss. In unserem Fall ist dies die schon definierte Seite parameter.jsp. Im Rumpf von <form> steht das Textfeld, das die Texteingabe später unter dem Namen name verfügbar macht. Neben dem Textfeld beinhaltet das Formular eine Submit-Schaltfläche, die einen Seitenwechsel hervorruft.
Abbildung 14.4: Screenshot der Anwendung nach dem Absenden der Daten
Das Bestätigen der Submit-Schaltfläche führt dazu, dass der Browser alle Formulardaten einsammelt und zum Server überträgt. Da standardmäßig das GET-Protokoll verwendet wird, bekommen wir vom Browser eine URL zusammengebaut, die alle Formulardaten kodiert. Die Empfangsseite kann natürlich nicht unterscheiden, wer die URL konstruiert hat, der Browser oder wir.
Tipp |
Für die Benennung der Formularfelder gibt es eine Spezifikation, die sich ECML (Electronic Commerce Modeling Language) nennt. Sie wird im RFC 3106 (http://www.faqs.org/rfcs/rfc3106.html) beschrieben. Das Format legt Felder fest, die insbesondere für E-Commerce genutzt werden können. Mitverantwortliche für diesen Standard sind unter anderem AOL, American Express, Compaq, CyberCash, Discover, Financial Services Technology Consortium, IBM, MasterCard, Microsoft, Novell, Sun und Visa. |
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.