Was ist ein Servlet?

Ein Servlet ist eine Klasse die HTTP-Requests auf einem Java-Webserver (bzw. genauer einem Servlet Container) entgegennehmen und beantworten kann. Eine Standardimplementierung des javax.servlet.Servlet Interfaces ist javax.servlet.http.HttpServlet.

Servlet Beispiel

Servlets die in einem Servlet-Container wie Tomcat, Jetty oder in eimem JEE Appserver HTTP-Requests engegennehmen, erben von der Klasse javax.servlet.http.HttpServlet. Die Klasse enthält Methoden für die diversen HTTP Verben (GET, POST, PUT, DELETE), die von der Implementierung überschrieben werden können. Die gebräuchlichsten Methoden sind wohl doGet(req, res) und doPost(req, res).

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/*")
public class BeispielServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();

        writer.println("<html>");
        writer.println("<head><title>Java Beispiel Servlet</title></head>");
        writer.println("<body>");
        writer.println("<h1>Servlet Beispiel</h1>");
        writer.println("<p>Inhalt der HTML-Seite</p>");
        writer.println("<body>");
        writer.println("</html>");

        writer.close();
    }
}

Das Servlet im Beispiel gibt eine einfache HTML-Seite zurück. Im Normalfall wird in einer großen Java Webanwendung natürlich nicht jede Seite als String zusammengestückelt. Besser eignen sich Technologien wie JSP, JSF oder Spring MVC.


Ähnliche Artikel