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
|