Beispiel: HTTP-Server auf HttpServlet-Basis

class Receiver

import java.net.Socket;
import java.net.ServerSocket;
import javax.servlet.*;
import java.io.IOException;

public class Receiver extends Thread
{ // eigentlicher Server-Thread
 protected ServerSocket Socket; // Die Socket des Servers
 protected Context Env;   // ServletContext und ServletConfig
 
 public Receiver(int port, Context context) throws IOException
 {
  Socket = new ServerSocket(port); // Erzeugen der Socket
  Env = context;
 }
 
 public void run()
 {
// Warten auf Requests
  while (true)
  { // Endlos auf Verbindungen warten ...
   while (activeCount() > 100);
    // max. 100 Threads starten, geg. warten
   try
   {
    Socket Connect = Socket.accept();
     // Verbindung annehmen
    Request req = new Request(Connect, Env);
     // ServletHttpRequest
    Response res = new Response(Connect, req, Env);
     // ServletHttpResponse
    Servlet serv = Env.GetServletForURI(req.getServletPath());
     // Servlet fuer diese URI holen
    serv.service(req,res);
     // Verarbeitung dem Servlet ueberlassen
   }
   catch (Exception e)
   { // Ganz gleich welcher Fehler ...
     Env.log("Receiver: " + e );
   }
  }
 }
 
}