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>