DataReceiverServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 * This servlet receives an http POST request and checks if all the
 * parameters(required fields) have values. If all the parameters have values it
 * forwards the requests to the DataPrinterServlet, otherwise it forwards the
 * request to the ErrorHandlerServlet to print the errors.
 
 
 @author Sofoklis Stouraitis
 */
public class DataReceiverServlet extends HttpServlet {

  /**
   * Handles HTTP POST requests.
   
   @param request
   *            the request object
   @param response
   *            the response object
   
   @throws IOException
   *             if an input or output error is detected when the servlet
   *             handles the POST request
   @throws ServletException
   *             if the request for the POST could not be handled
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {

    response.setContentType("text/html; charset=ISO-8859-7");
    PrintWriter out = new PrintWriter(response.getWriter()true);

    /*
     * gets parameters from the request.
     */
    String name = request.getParameter("nameField");
    String surname = request.getParameter("surnameField");
    String username = request.getParameter("usernameField");
    String password = request.getParameter("passwordField");
    String preferences = request.getParameter("preferencesField");
    String gender = request.getParameter("genderField");
    String age = request.getParameter("ageField");

    try {
      /*
       * checks if all the parameters have value.
       */
      if (!(name.length() 0|| !(surname.length() 0)
          || !(username.length() 0|| !(password.length() 0)
          || preferences.equals("0"|| gender == null || age == null) {
        /*
         * forwards the request to the ErrorHandlerServlet
         * Note: The ErrorHandlerServlet must have the same method (POST) with the
         * DataReceiverServlet.
         */
        RequestDispatcher dispatcher1 = getServletContext()
            .getRequestDispatcher("/servlet/ErrorHandlerServlet");
        dispatcher1.forward(request, response);
      else {
        /*
         * forwards the request to the DataPrinterServlet
         * Note: The DataPrinterServlet must have the same method (POST) with the
         * DataReceiverServlet.
         */
        RequestDispatcher dispatcher2 = getServletContext()
            .getRequestDispatcher("/servlet/DataPrinterServlet");
        dispatcher2.forward(request, response);
      }
    catch (Exception ex) {
      out.println("<html>");
      out.println("<body>");
      out.println("Exception: " + ex.getMessage());
      out.println("</body>");
      out.println("</html>");
    }
  }
}// End of class