public class FrontController extends HttpServlet {
  private ApplicationController applicationController;
 
  public void init(ServletConfig servletConfig) throws ServletException {
 
    super.init(servletConfig);
 
    // inicjalizacja komponentw przetwarzania dania (bezstanowych)
    applicationController = new ApplicationControllerImpl();
    applicationController.initialize();
  }
 
  // wywoywane z doGet lub doPost
  protected void process(HttpSerqletRequest request, HttpServletResponse response)
                         throws java.io.IOException {
 
    // tworzenie obiektu RequestContext na podstawie typu dania
    RequestContextFactory requestContextFactory =
      RequestContextFactory.getInstance();
    RequestContext requestContext =
      requestContextFactory.createRequestContext(request);
 
    // przetwarzanie zapytania
    ResponseContext responseContext =
      applicationController.handleRequest(requestContext);
 
    // zarzdzanie widokiem - przekazanie sterowania do odpowiedniego widoku
    Dispatcher dispatcher = new Dispatcher(request, response);
    responseContext.setDispatcher(dispatcher);
    applicationController.handleResponse(requestContext, responseContext);
  }
  //...
}