Servlet

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!!!
Ein Servlet ist ein Java-Programm, das die Klasse HttpServlet erweitert und in einem Applikationsserver läuft. Der Applikationsserver stellt die Netzwerkumgebung zur Verfügung und ruft das Servlet auf, wenn dessen Adresse von außen angetragen wird.

Ein Servlet ist in der Lage, ein HTML-Formular auszuwerten.

Für die Entwicklung wird eine spezielle Laufzeit- und Entwicklungsumgebung eingerichtet. Danach kann in Eclipse auf folgendem Weg ein Projekt erzeugt werden.

Ein HTML-Formular

Durch einen Rechtsklick auf das Projekt kann eine HTML-Datei generiert werden. Dazu wird im Menü New...|HTML File ausgewählt. In diesem HTML-Dokument wird ein einfaches Formular eingesetzt, das drei Eingabefelder und einen Submit-Button aufnimmt.
<html>
<head>
</head>
<body>
<form action=Insert method=get>
<table>
<tr><td>ID (Kürzel)</td><td> <input type=text name=id value="" size=30></td></tr>
<tr><td>Klarname</td><td> <input type=text name=klarname value="" size=30></td></tr>
<tr><td>E-Mail</td><td> <input type=text name=email value="" size=30></td></tr>
<tr><td><input type=submit value="Einfügen"></td><td> </td></tr>
</table>
</form>
</body>
</html>
Bei Anklicken des Submit-Buttons wird die Aktion Insert aufgerufen. Dahinter steckt nun ein Servlet.

Das Servlet

Sie klicken das Projekt wiederum an und erzeugen über den Menüpfad New...|Servlet einen Dialog. Der Name des Servlets soll Insert lauten.

Eclipse erzeugt einen Rahmen für ein Servlet, den wir hier erweitern. Insbesondere wird die Methode doGet() überschrieben, da diese aufgerufen wird, weil das Formular oben die Methode get verwendet.

Die Methode doGet hat zwei Parameter:

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Insert")
public class Insert extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Insert() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().println("<table>");
        // Hole alle Parameterbezeichner
        Enumeration<String> controls = request.getParameterNames();
        while (controls.hasMoreElements()) {
            String controlName = controls.nextElement();
            // Zeige den Parameterbezeichner
            response.getWriter().println("<tr><td>" + controlName);
            // Zeige den eingegeben Wert
            response.getWriter().println("</td><td>" + request.getParameter(controlName) + "</td></tr>");
        }
        response.getWriter().println("</table>");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}
Die Methode doGet() liest zunächst die Namen aller Kontrollelemente des aufrufenden Formulars aus, um daraus eine Tabelle der Kontrollelemente und ihrer Inhalte zu erstellen.


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