protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      Connection con =
          DriverManager.getConnection(Utility.connection, Utility.username, Utility.password);

      String email = request.getParameter("email_id");

      String number = "";
      boolean exists = false;
      String user_name = "";
      int user_id = -1;
      String str1 = "SELECT USER_ID,NAME,PHONE_NUMBER FROM USERS WHERE EMAIL_ID=?";
      PreparedStatement prep1 = con.prepareStatement(str1);
      prep1.setString(1, email);
      ResultSet rs1 = prep1.executeQuery();
      if (rs1.next()) {
        exists = true;
        user_id = rs1.getInt("USER_ID");
        user_name = rs1.getString("NAME");
        number = rs1.getString("PHONE_NUMBER");
      }
      int verification = 0;
      JSONObject data = new JSONObject();
      if (exists) {
        verification = (int) (Math.random() * 9535641 % 999999);
        System.out.println("Number " + number + "\nVerification: " + verification);
        SMSProvider.sendSMS(
            number, "Your One Time Verification Code for PeopleConnect Is " + verification);
      }

      data.put("user_name", user_name);
      data.put("user_id", user_id);
      data.put("verification_code", "" + verification);
      data.put("phone_number", number);

      String toSend = data.toJSONString();
      out.print(toSend);
      System.out.println(toSend);

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      out.close();
    }
  }
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      Connection con =
          DriverManager.getConnection(Utility.connection, Utility.username, Utility.password);

      int user_id = Integer.parseInt(request.getParameter("user_id"));
      int question_id = Integer.parseInt(request.getParameter("question_id"));
      int option = Integer.parseInt(request.getParameter("option"));

      System.out.println("uid: " + user_id + "\nquestion: " + question_id + "\noption: " + option);
      String str1 = "INSERT INTO VOTES(USER_ID, QUESTION_ID,OPTION_VOTED) VALUES (?,?,?)";
      PreparedStatement prep1 = con.prepareStatement(str1);
      prep1.setInt(1, user_id);
      prep1.setInt(3, option);
      prep1.setInt(2, question_id);
      prep1.execute();

      String str2 = "SELECT OPTION_" + option + " FROM ARCHIVE_VOTES WHERE QUESTION_ID=?";
      PreparedStatement prep2 = con.prepareStatement(str2);
      prep2.setInt(1, question_id);
      int count = 0;
      ResultSet rs2 = prep2.executeQuery();
      if (rs2.next()) {
        count = rs2.getInt("OPTION_" + option);
      }
      count++;
      String str3 = "UPDATE ARCHIVE_VOTES SET OPTION_" + option + "=? WHERE QUESTION_ID=?";
      PreparedStatement prep3 = con.prepareStatement(str3);
      prep3.setInt(1, count);
      prep3.setInt(2, question_id);
      prep3.executeUpdate();

      out.print("You Vote has been recorded! Thank you!");
      System.out.println(
          "Voted for question " + question_id + ", by user " + user_id + ", for option " + option);

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      out.close();
    }
  }
  private String ManageSql(String[] data) {
    String result = new String();
    String initData = data[0] + DELIMITER;

    // 회원가입
    if (data[0].equals("join")) {
      String email = data[1];
      String pw = data[2];
      String lastName = data[3];
      String firstName = data[4];
      String gender = data[5];
      String locale = data[6];

      Connection connection = null;
      Statement iStmt = null;
      Statement sStmt = null;

      try {
        connection = DBManager.getConnection();
        iStmt = connection.createStatement();
        sStmt = connection.createStatement();

        String idSQL = "select * from bs_user where email = '" + email + "'";
        String insertSQL =
            "insert into bs_user values('"
                + email
                + "', '"
                + pw
                + "', '"
                + lastName
                + "', '"
                + firstName
                + "', '"
                + gender
                + "', '"
                + locale
                + "', 'normal')";

        ResultSet rs = sStmt.executeQuery(idSQL);

        while (true) {
          if (rs.next()) {
            result = initData + "no" + DELIMITER + "id_exist";
            break;
          } else {
            int count = iStmt.executeUpdate(insertSQL);
            if (count == 1) {
              System.out.println("Success");
              result = initData + "yes";
            } else {
              System.out.println("Fail");
            }
            break;
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    // 로그인
    else if (data[0].equals("login")) {
      // 페이스북
      if (data[1].equals("facebook")) {
        Object o = JSONValue.parse(data[2]);
        JSONObject json = (JSONObject) o;

        String email = (String) json.get("email");
        String lastName = (String) json.get("last_name");
        String firstName = (String) json.get("first_name");
        String gender = (String) json.get("gender");
        String locale = (String) json.get("locale");

        Connection connection = null;
        Statement iStmt = null;
        Statement sStmt = null;

        try {
          connection = DBManager.getConnection();
          iStmt = connection.createStatement();
          sStmt = connection.createStatement();

          String idSQL = "select * from bs_user where email = '" + email + "'";
          String insertSQL =
              "insert into bs_user values('"
                  + email
                  + "', '', '"
                  + lastName
                  + "', '"
                  + firstName
                  + "', '"
                  + gender
                  + "', '"
                  + locale
                  + "', '"
                  + data[1]
                  + "')";

          ResultSet rs = sStmt.executeQuery(idSQL);

          while (true) {
            if (rs.next()) {
              result = initData + "no" + DELIMITER + "id_exist";
              break;
            } else {
              int count = iStmt.executeUpdate(insertSQL);
              if (count == 1) {
                System.out.println("Success");
                result = initData + "yes";
              } else {
                System.out.println("Fail");
              }
              break;
            }
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      // 일반
      else if (data[1].equals("normal")) {
        String email = data[2];
        String pw = data[3];

        Connection connection = null;
        Statement Stmt = null;

        try {
          connection = DBManager.getConnection();
          Stmt = connection.createStatement();

          String SQL = "select * from bs_user where email = '" + email + "' and pw ='" + pw + "'";

          ResultSet rs = Stmt.executeQuery(SQL);

          while (true) {
            if (rs.next()) {
              result = initData + "yes";
              break;
            } else {
              result = initData + "no";
              break;
            }
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    // 히스토리
    else if (data[0].equals("history")) {
      String email = data[1];
      String first_keyword = data[2];

      Connection connection = null;
      Statement stmt = null;
      Statement stmt2 = null;

      try {
        connection = DBManager.getConnection();
        stmt = connection.createStatement();
        stmt2 = connection.createStatement();

        String kSQL = "insert into bs_keyword values('" + email + "', '" + first_keyword + "')";

        int count = stmt.executeUpdate(kSQL);

        // kSQL 성공
        if (count == 1) {
          // depth/p_node_id/#node_id#keyword/^
          String line = data[3];

          // ss는 두줄이 올 경우가 있어, '^'으로 줄바꿈처리를 해준 문자열
          String ss = "";
          for (int i = 0; i < line.length(); i++) {
            char c = line.charAt(i);
            if (c == '^') {
              c = '\n';
            }
            ss += c;
          }

          String[] splitString = ss.split("/");
          String depth = splitString[0];
          String p_node_id = splitString[1];

          for (int i = 2; i < splitString.length; i++) {
            String[] nodeData = splitString[i].split("#");
            for (int j = 1; j < nodeData.length - 1; j++) {
              String node_id = nodeData[j];
              String keyword = nodeData[j + 1];

              String hSQL =
                  "insert into bs_history values('"
                      + email
                      + "', '"
                      + depth
                      + "', '"
                      + p_node_id
                      + "', '"
                      + node_id
                      + "', '"
                      + keyword
                      + "','')";

              int cnt = stmt2.executeUpdate(hSQL);

              if (cnt == 1) {
                System.out.println("hSQL 성공");
              } else {
                System.out.println("hSQL 실패");
              }
            }
          }
        }
        // kSQL 실패
        else {
          System.out.println("kSQL 실패");
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    } else {
      System.out.println("처리할 수 없는 작업입니다.");
    }
    return result;
  }