public class EmployeeListServlet extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
  }

  public void destroy() { }

  /** Przetwarza zapytania HTTP z metod GET i POST.
   * @param request danie
   * @param response odpowied
   */
  protected void processRequest(HttpServletRequest request, 
                                HttpServletResponse response)
                                throws ServletException, java.io.IOException {
    String title = "Servlet View Strategy";
    try {
      response.setContentType("text/html");
      java.io.PrintWriter out = response.getWriter();
      out.println("<html><title>"+title+"</title>");
      out.println("<body>");
      out.println("<h2><center>Lista pracownikw</h2>");
      EmployeeDelegate delegate = new EmployeeDelegate();

      /** ApplicationResources zapewnia prosty interfejs pobierania 
        * staych i innych predefiniowanych wartoci**/
      Iterator employees = delegate.getEmployees(
        ApplicationResources.getInstance().getAllDepartments());
      out.println("<table border=2>");
      out.println("<tr><th>Imi</th>" + 
        "<th>Nazwisko</th>" + "<th>Stanowisko</th><th>Id</th></tr>");
      while (employees.hasNext()) 			{
        out.println("<tr>");
        EmployeeVO emp = (EmployeeVO)employees.next();
        out.println("<td>"+emp.getFirstName() + "</td>");
        out.println("<td>"+emp.getLastName() + "</td>");
        out.println("<td>"+emp.getDesignation() + "</td>");
        out.println("<td>"+emp.getId()+"</td>");
        out.println("</tr>");
}
      out.println("</table>");
      out.println("<br><br>");
      out.println("</body>");
      out.println("</html>");
      out.close();
    }
    catch (Exception e) {
      LogManager.logMessage("Obsuga wyjtku",
        e.getMessage() );
    }
  }

  /** Obsuguje metod GET z HTTP.
    * @param request danie
    * @param response odpowied
    */
  protected void doGet(HttpServletRequest request, 
                       HttpServletResponse response)
                       throws ServletException, java.io.IOException {
    processRequest(request, response);
  }

  /** Obsuga metody POST z HTTP.
    * @param request danie
    * @param response odpowied
    */
  protected void doPost(HttpServletRequest request, 
                        HttpServletResponse response)
                        throws ServletException, java.io.IOException {
    processRequest(request, response);
  }

  /** Zwraca krtki opis serwletu. */
  public String getServletInfo() {
    return "Przykad widoku serwletu. " + "Zalecany jest widok JSP.";
  }

  /** metoda rozdzielajca **/
  protected void dispatch(HttpServletRequest request, 
                          HttpServletResponse response, String page) 
                          throws javax.servlet.ServletException,  
                          java.io.IOException {
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(page);
    dispatcher.forward(request, response);
  }
}
