Java Server Pages JSP

Willemers Informatik-Ecke

Das einzig seriöse Javabuch :-) Mehr...


Errata

Bei Amazon bestellen


Ferien an der Flensburger Förde
Falls ich Ihnen helfen konnte:!
Vielen Dank!!!
2017-06-07
Java Server Pages sind HTML-Seiten, in die Java-Code eingebettet werden. Vergleichbar zu PHP wird der Java-Code auf dem Server übersetzt und sofort gestartet, so dass der Client nur das Ergebnis der Ausführung sieht.

Im Gegensatz zu Javascript werden sie aber nicht auf dem Client, also im Browser ausgeführt, sondern auf dem Server.

Eine JSP-Seite wird vom Server beim Deploy-Vorgang in ein Servlet übersetzt.

HTML-Seite für das Eingabeformular

Die folgende Seite ist eine einfache HTML-Seite, die ein Formular enthält. Als Action ist die Datei register.jsp genannt. Die Endung .jsp muss für JSP-Seiten zwingend angegeben werden.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
    <h1>Register per JSP:</h1>
    <form action="register.jsp" method="post">
        <table>
            <tr>
                <td>Name</td>
                <td><input type="text" name="name"></td>
            </tr>
            <tr>
                <td>Passwort</td>
                <td><input type="password" name="pw1"></td>
            </tr>
            <tr>
                <td>Passwort wiederholen</td>
                <td><input type="password" name="pw2"></td>
            </tr>
            <tr><td></td>
                <td><input type="submit"></td>
            </tr>
        </table>
    </form>
</body>
</html>

Die Form verweist in ihrer action-Option auf die Seite register.jsp. Als Methode wird POST verwendet. Das sendet die Parameter im Datenblock. Bei kleineren Eingabemasken wäre auch GET möglich. Dann werden die eingegebenen Daten in der URL hinter einem &-Zeichen angehängt.

HTML-Seiten mit Aktion

JSP eignet sich ideal zum Auswerten der HTML-Eingabeformulare. Java kann in JSP-Seiten eingebettet werden. Der Bereich beginnt mit einer spitzen Klammer (Kleinerzeichen) und einem Prozentzeichen. Es wird durch Prozentzeichen und der spitzen Klammer (Größerzeichen) abgeschlossen.

Direktiven

Besondere Zeilen sind Direktiven, die direkt auf die öffnende Java-Einbettung erfolgen:

Variablen

Die Java-Zeilen werden in ein Servlet umgewandelt. Dort stehen folgende Variablen zur Verfügung:

Gültigkeitsbereich

Variablen können einen unterschiedlichen Gültigkeitsbereich haben. Dafür stellt JSP folgende Objekte zur Verfügung: Jedes dieser Objekte kann über dessen Methoden getAttribute bzw. setAttribute auf eine Property-Struktur zugreifen.
Kunde kunde = new Kunde();
kunde.name = "Anton";
kunde.email = "anton@hier.de";
session.setAttribute("kundeanton", kunde);
// ...
Kunde anton = (Kunde)session.getAttribute("kundeanton");

JSP in einem Eclipse-Projekt

Eclipse ermöglicht es, in einem Dynamic Web-Project eine JSP-Datei zu erzeugen. Dazu:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <h2>Ergebnis Registrierung:</h2>
    <%
        String name = request.getParameter("name");
        String pw1 = request.getParameter("pw1");
        String pw2 = request.getParameter("pw2");
        String email = request.getParameter("email");
        %>
    <table>
        <tr>
            <td>Name:</td>
            <td>
                <% out.print(name); %>
            </td>
        </tr>
        <tr>
            <td>E-Mail:</td>
            <td>
                <% out.print(email); %>
            </td>
        </tr>
        <tr>
            <td>Passwort:</td>
            <td>
                <%
        if (pw1.equals(pw2)) {
            out.println(pw1);
        } else {
            %> Passwort nicht identisch! <% } %>
            </td>
        </tr>
    </table>

</body>
</html>

Die JSP-Datei wird vom Application-Server (JEE-Server) vor seiner Ausführung in ein Servlet übersetzt.


Homepage - Java (C) Copyright 2007, 2017 Arnold Willemer