Inhalt | 5. Java Servlet API | 7. Ergänzungen |
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>