Für das HTTP-Protokol stellt die Klasse javax.servlet.http.HttpServlet eine HTTP spezifische Implementation des Servlet-Interfaces zur Verfügung. Dieses Servlet entält Methoden, welche die Kommunikation über das HTTP-Protokol vereinfachen. Die service-Methode des HttpServlet leitet die Anfrage an einer der HTTP-spezifischen Methoden weiter - diese sind:


  • doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

  • doTrace(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

In den meisten Fällen werden bei einem HttpServlet nur die Methoden doGet und doPost überschrieben.

Nachfolgend ein einfaches HttpServlet, welches die Methoden doGet und doPost verwendet:

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class Servlet3 extends HttpServlet{
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException  {
    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();                      
    writer.println("<html><body>Using doGet</body></html>");
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException  {
    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();                      
    writer.println("<html><body>Using doPost</body></html>");
  }
}
itmapa.de - X2H V 0.17

Rufen Sie das Servlet aus einem Browser unter Verwendung der Servlet-Adresse auf, wird normalerweise die doGet-Methode angesprochen. Werden z.B. Umfangreiche Formulardaten übergeben, wird normalerweise die doPost-Methode angesprochen, da so Volumenbeschränkungen umgangen werden.

Ist es für das Servlet egal ob doGet oder doPost verwendet wird, kann die doGet-Methode einfach die doPost-Methode mit ihren Parametern anstossen.

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class Servlet4 extends HttpServlet{
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws  ServletException, IOException  {
    doPost(request,response);
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws  ServletException, IOException  {
    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();                      
    writer.println("<html><body>doGet-doPost</body></html>");
  }
}
itmapa.de - X2H V 0.17