/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package controller;
import domain.User;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import repository.UserDAO;
/**
*
* @author wintor12
*/
/**
* Information class that contains all the features of one RegisterServlet
* @ doc author Rui Hou
*/
public class RegisterServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request
* servlet request
* @param response
* servlet response
* @throws ServletException
* if a servlet-specific error occurs
* @throws IOException
* if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = null;
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
String question = request.getParameter("securityQuestion");
String answer = request.getParameter("securityAnswer");
//check the existence of user's registration
User checkUserExist = UserDAO.getUser(username, password);
if (checkUserExist != null) {
Failed(request, response, dispatcher); //user already existed, registration failed
} else {
User userObj = new User(username, password, email, question, answer);
Success(request, response, dispatcher, userObj); //registration succeeded
}
}
private void Success(HttpServletRequest request,
HttpServletResponse response, RequestDispatcher dispatcher,
User userObj) throws ServletException, IOException {
System.out.println("Success create account");
UserDAO.addUser(userObj);
HttpSession session = request.getSession(true);
session.setAttribute("username", userObj.getUserName());
session.setAttribute("userId", userObj.getUserId());
dispatcher = request.getRequestDispatcher("WEB-INF/JSP/home.jsp");
dispatcher.forward(request, response);
}
private void Failed(HttpServletRequest request,
HttpServletResponse response, RequestDispatcher dispatcher) throws ServletException, IOException {
System.out.println("Failed create account");
response.getWriter().write("FAILED");
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request
* servlet request
* @param response
* servlet response
* @throws ServletException
* if a servlet-specific error occurs
* @throws IOException
* if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
}