package Samples;
import sun.servlet.http.*;
public class ServletServer {
  public static void main(String[] args) {
    boolean portSet = false;
    boolean servletDirSet = false;
    for (int i = 0; i < args.length; i++) {
      if (args[i].equals('-p')) {
        portSet = true;
      }
      if (args[i].equals('-d')) {
        servletDirSet = true;
      }
    }
    int i = 0;
    String[] arguments = new String[args.length + (servletDirSet ? 0 : 2) + 
     (portSet ? 0 : 2)];
    for (; i < args.length; i++) {
      arguments[i] = args[i];
    }
    if (!portSet) {
      arguments[i++] = '-p';
      arguments[i++] = '8080';
    }
    if (!servletDirSet) {
      arguments[i++] = '-d';
      String servletDir = System.getProperty('java.class.path');
      servletDir = servletDir.substring(0,servletDir.indexOf(java.io.File.pathSeparator));
      arguments[i++] = servletDir;
    }
    HttpServer.main(arguments);
  }
}

Сам класс сервлета не делает ничего выдающегося, а просто обрабатывает значение параметра инициализации и элементарным образом реагирует на запросы, выводя некое сообщение:

package Samples;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class TestServlet extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    //Каталог, содержимое которого нужно показать
    try { pathToDir = getInitParameter('dirToShow'); } catch (Exception e) 
     { e.printStackTrace(); }
  }
  String pathToDir = 'E:/Projectes/';
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws 
   ServletException, IOException {
    response.setContentType('text/html');
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println('<html>');
    out.println('<head><title>TestServlet</title></head>');
    out.println('<body>');
    out.println('</body></html>');
    out.close();
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
   throws 
   ServletException, IOException {
    response.setContentType('text/html');
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println('<html>');
    out.println('<head><title>TestServlet</title></head>');
    out.println('<body>');
    out.println('</body></html>');
    out.close();
  }
  public String getServletInfo() {
    return 'Samples.TestServlet Information';
  }
}