Inhalt 5. Java Servlet API 7. Ergänzungen

6.   Anwendungsbeispiel

Mit Hilfe der mächtigen Java Servlet API erweist sich die Programmierung eines Servlets als relativ komfortabel. Das folgende Beispiel soll die wichtigsten Aspekte der Entwicklung demonstrieren.

Die Klasse Welcome wird von HttpServlet abgeleitet und implementiert zur Behandlung von GET Requests die Methode doGet. Abhängig von der Eingabe im Formular wird eine reine Webseite zurückgeschickt, die den Benutzer mit seinem Namen willkommen heißt. Falls der Parameter in der Anfrage nicht existiert, wird durch sendError eine Fehlerseite generiert. Um die Anwendung flexibler zu gestalten, wird zur Beantwortung eines POST Kommandos auch die Methode doPost überschrieben, die aber dieselbe Funktionalität bieten soll und deshalb nur doGet aufruft. Die Funktion getServletInfo liefert eine Beschreibung des Servlets als Zeichenkette zurück.

    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    public class Welcome extends HttpServlet {
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            String name = req.getParameter("name");
            if (name == null) {
                resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
            } else {
                resp.setContentType("text/html");
                PrintWriter out = resp.getWriter();
                out.println("<HTML>");
                out.println("<HEAD>");
                out.println("<TITLE>Welcome</TITLE>");
                out.println("</HEAD>");
                out.println("<BODY>");
                out.println("Welcome " + name + "!");
                out.println("</BODY>");
                out.println("</HTML>");
            }
        }

        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            doGet(req, resp);
        }

        public String getServletInfo() {
            return "Welcome Servlet";
        }
    }

Ergänzend sei hier noch der Quellcode der Webseite angeführt, die das Formular darstellt. Sie enthält nur ein Textfeld zur Eingabe des Namens und einen Button, um die Daten abzuschicken. Als Methode wird POST verwendet, das Attribut ACTION gibt Pfad und Namen des Servlets an.

    <HTML>
        <HEAD>
            <TITLE>Login</TITLE>
        </HEAD>
        <BODY>
            <H1>Login</H1>
            <FORM ACTION="/servlet/Welcome" METHOD="POST">
                <P>Enter your name: <INPUT TYPE="TEXT" NAME="name"></P>
                <INPUT TYPE="SUBMIT">
            </FORM>
        </BODY>
    </HTML>

7. Ergänzungen