오늘 배운 것
- 어제 한 login페이지 만들기에 가입하기 추가하기


else if(action.equals("createaccount")) {
String email = request.getParameter("email");
String password = request.getParameter("password");
String repeatpassword = request.getParameter("repeatpassword");
request.setAttribute("email", email);
if (!password.equals(repeatpassword)) {
request.setAttribute("message", "password가 같지 않습니다.");
request.getRequestDispatcher("/createaccount.jsp").forward(request, response);
} else {
User user = new User(email, password);
if (!user.validate()) {
request.setAttribute("message", user.getMessage());
request.getRequestDispatcher("/createaccount.jsp").forward(request, response);
}
else {
try {
if (account.exists(email)) {
request.setAttribute("message", "이미 존재하는 email입니다.");
request.getRequestDispatcher("/createaccount.jsp").forward(request, response);
} else {
account.create(email, password);
request.getRequestDispatcher("/createsuccess.jsp").forward(request, response);
}
} catch (SQLException e) {
request.setAttribute("message", "SQL에러 발생");
request.getRequestDispatcher("/error.jsp").forward(request, response);
}
}
}
- SQL문으로 가입하기에서 입력한 email의 중복확인과 DB에 입력하기
public boolean exists(String email) throws SQLException {
String sql = "SELECT COUNT(*) AS count FROM users where email=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, email);
ResultSet rs = pstmt.executeQuery();
int count = 0;
if (rs.next()) {
count = rs.getInt("count");
}
if (count == 0) return false;
return true;
}
public void create(String email, String password) throws SQLException {
String sql = "insert into users(email, password) values(?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, email);
pstmt.setString(2, password);
pstmt.executeUpdate();
pstmt.close();
}



