
저번에 회원가입 양식 `join.jsp` 까지 만들었다.
오늘은 userDAO 클래스에 회원가입을 처리하는 메서드를 하나 추가해 줄것이다.
DAO 클래스는 실제로 DB에 접근해서 어떤 데이터를 가져오거나 데이터를 넣는 역할을 하는 데이터 접근 객체이다.
그리고 처리된 결과값을 가져와서 View 처리하는 `join Action.jsp` 까지 만들어 볼 것이다.

먼저 userDAO 클래스로 간다.
login 메서드 아래에 join 메서드를 만들어 준다.
// 회원가입 처리 로직
public int join(User user) {
String SQL = "INSERT INTO USER VALUES(?, ?, ?, ?, ?)";
try {
psmt = conn.prepareStatement(SQL);
psmt.setString(1, user.getUserID());
psmt.setString(2, user.getUserPassword());
psmt.setString(3, user.getUserName());
psmt.setString(4, user.getUserGender());
psmt.setString(5, user.getUserEmail());
return psmt.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
}
return -1; // DB오류
// INSERT 쿼리 실행하면 0 이상 반환하므로 -1이 아닌 경우에 성공적으로 회원가입 된 것!
}

이제 회원가입 로직을 처리하고 결과를 반환해서 보여줄 jsp페이지 `joinAction.jsp`를 만들어야 한다.
기존에 만든 `loginAction.jsp` 파일을 그대로 복붙해서 이름을 `joinAction.jsp`로 고쳐주었다.
상단 태그립에 `userID`와 `userPassword`만 자바빈 프로퍼티로 설정이 되어 있는데
`userName`, `userGender`, `userEmail`도 추가해 주기

스크립트립을 열고 먼저 null 처리를 담당해줄 if문을 하나 작성한다.
각 변수에 하나라도 값이 안 들어오면 회원가입을 할 수 없도록 하는 것이다.
`null` 값이 담긴 변수가 있 다면 '입력이 안 된 사항이 있습니다'라는 알림창을 띄우고 뒤로가기가 실행될 수 있도록 한다.
회원가입에 필요한 모든 값이 DB로 잘 들어갔다면, DB에 `삽입된 행(row)의 개수`가 반환된다. 일반적으로 result가 1이상이면 DB업데이트가 잘 된것이다.
하지만 join 메서드가 -1을 반환한다면 오류가 난 것이므로 예외 처리를 해 주어야 한다. 일단, DB에서 데이터가 입력이 안 되고 있다는 것은 아이디가 이미 존재하는 경우이다. `userID` 값은 기본 키로 지정되어 있기 때문에 user 테이블에서 유일한 값이 되어야 한다. 따라서 `result == -1`이면 '이미 존재하는 아이디입니다'라는 알람 창을 띄워준다.
회원가입이 성공하면 `main.jsp` 페이지로 이동될 수 있게 해준다.
<%
// 아무것도 입력 안하고 회원가입 버튼 누르면 각 변수에 null 값 들어감
// null처리
if (user.getUserID() == null || user.getUserPassword() == null ||
user.getUserName() == null || user.getUserGender() == null ||
user.getUserEmail() == null) {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('입력이 안 된 사항이 있습니다.')");
script.println("history.back()");
script.println("</script>");
} else {
UserDAO userDAO = new UserDAO();
int result = userDAO.join(user);
if (result == -1) { // DB오류 발생(해당 아이디가 이미 존재하는 경우)
// 유저 아이디는 PK(기본키)라서 테이블에 단 하나만 존재해야 함
// 동일한 아이디가 입력되면 -1 반환
// 뒤로가기
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 존재하는 아이디입니다.')");
script.println("history.back()");
script.println("</script>");
}
else { // 회원가입 성공 -> 메인 메이지(main.jsp)로 이동
// result 가 -1 이 아닌 경우에는 정상적으로 등록이 된 것!
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
}
%>
이제 `join.jsp`페이지에서 톰캣 서버를 실행해서 테스트 해 보자
`Ctrl` + `F11`눌러 주자.
회원가입 화면에서 양식을 모두 입력해 주고 회원가입 버튼을 클릭!

분명 폼을 다 채웠는데도 `입력이 안 된 사항이 있습니다. `라는 alert창이 나온다.
뭔가 오타가 있어서 데이터가 안넘어간 모양이다.
다시 `join.jsp`의 `<form>` 태그나 `<input>` 태그에서 오타나 속성값이 잘못된 부분이 없는지 확인해 주자.

input태그 name값에 오타가 있었다. userEmail 인데 l을 두 번 써 주어서 이메일 값이 안 넘어 가고 있었다.


수정 해 주고, 재시도 했음.
잉? 회원가입은 성공했는데 자꾸 `joinAction.jsp` 페이지로 넘어간다.
locaion.href 설정이 잘못되어 있는 것 같다.

확인 해 보니 닫는 부분의 ' 작은 따옴표 하나가 빠져 있었다.
해당 부분을 수정해 주었다.


다시 회원가입 화면으로 돌아와서 테스트!

이렇게 기존 테이블에 dain3 유저의 회원 정보가 잘 들 어온 것을 확인 해 볼 수 있다.

그리고 회원가입에 성공하면 `main.jsp` 페이지로 이동이 되는 걸 URL 을 통해 확인할 수 있다.
아직 `main.jsp`를 안 만들었기 때문에 HTTP 응답코드 404 에러가 뜨는 것이 정상이다!!

오늘은 여기까지 마무리
'Spring&JSP' 카테고리의 다른 글
[JSP] 게시판 만들기 8 _ 게시판 메인 페이지 만들고 게시판 데이터베이스 구축하기 (70) | 2024.12.08 |
---|---|
[JSP] 게시판 만들기 7 _ 회원세션 관리하기 (94) | 2024.12.05 |
[JSP] 게시판 만들기 5 _ form태그와 input태그로 간단한 join.jsp 회원가입창 만들기 (68) | 2024.12.04 |
[JSP] 게시판 만들기 4 _ UserDAO 클래스 & JDBC 연동 (62) | 2024.12.04 |
[JSP] 게시판 만들기 3 _ MySQL user 테이블 만들고, 이클립스에서 자바빈 만들기 (62) | 2024.12.03 |

저번에 회원가입 양식 join.jsp
까지 만들었다.
오늘은 userDAO 클래스에 회원가입을 처리하는 메서드를 하나 추가해 줄것이다.
DAO 클래스는 실제로 DB에 접근해서 어떤 데이터를 가져오거나 데이터를 넣는 역할을 하는 데이터 접근 객체이다.
그리고 처리된 결과값을 가져와서 View 처리하는 join Action.jsp
까지 만들어 볼 것이다.

먼저 userDAO 클래스로 간다.
login 메서드 아래에 join 메서드를 만들어 준다.
// 회원가입 처리 로직 public int join(User user) { String SQL = "INSERT INTO USER VALUES(?, ?, ?, ?, ?)"; try { psmt = conn.prepareStatement(SQL); psmt.setString(1, user.getUserID()); psmt.setString(2, user.getUserPassword()); psmt.setString(3, user.getUserName()); psmt.setString(4, user.getUserGender()); psmt.setString(5, user.getUserEmail()); return psmt.executeUpdate(); } catch(Exception e) { e.printStackTrace(); } return -1; // DB오류 // INSERT 쿼리 실행하면 0 이상 반환하므로 -1이 아닌 경우에 성공적으로 회원가입 된 것! }

이제 회원가입 로직을 처리하고 결과를 반환해서 보여줄 jsp페이지 joinAction.jsp
를 만들어야 한다.
기존에 만든 loginAction.jsp
파일을 그대로 복붙해서 이름을 joinAction.jsp
로 고쳐주었다.
상단 태그립에 userID
와 userPassword
만 자바빈 프로퍼티로 설정이 되어 있는데
userName
, userGender
, userEmail
도 추가해 주기

스크립트립을 열고 먼저 null 처리를 담당해줄 if문을 하나 작성한다.
각 변수에 하나라도 값이 안 들어오면 회원가입을 할 수 없도록 하는 것이다.
null
값이 담긴 변수가 있 다면 '입력이 안 된 사항이 있습니다'라는 알림창을 띄우고 뒤로가기가 실행될 수 있도록 한다.
회원가입에 필요한 모든 값이 DB로 잘 들어갔다면, DB에 삽입된 행(row)의 개수
가 반환된다. 일반적으로 result가 1이상이면 DB업데이트가 잘 된것이다.
하지만 join 메서드가 -1을 반환한다면 오류가 난 것이므로 예외 처리를 해 주어야 한다. 일단, DB에서 데이터가 입력이 안 되고 있다는 것은 아이디가 이미 존재하는 경우이다. userID
값은 기본 키로 지정되어 있기 때문에 user 테이블에서 유일한 값이 되어야 한다. 따라서 result == -1
이면 '이미 존재하는 아이디입니다'라는 알람 창을 띄워준다.
회원가입이 성공하면 main.jsp
페이지로 이동될 수 있게 해준다.
<% // 아무것도 입력 안하고 회원가입 버튼 누르면 각 변수에 null 값 들어감 // null처리 if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null || user.getUserGender() == null || user.getUserEmail() == null) { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안 된 사항이 있습니다.')"); script.println("history.back()"); script.println("</script>"); } else { UserDAO userDAO = new UserDAO(); int result = userDAO.join(user); if (result == -1) { // DB오류 발생(해당 아이디가 이미 존재하는 경우) // 유저 아이디는 PK(기본키)라서 테이블에 단 하나만 존재해야 함 // 동일한 아이디가 입력되면 -1 반환 // 뒤로가기 PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('이미 존재하는 아이디입니다.')"); script.println("history.back()"); script.println("</script>"); } else { // 회원가입 성공 -> 메인 메이지(main.jsp)로 이동 // result 가 -1 이 아닌 경우에는 정상적으로 등록이 된 것! PrintWriter script = response.getWriter(); script.println("<script>"); script.println("location.href = 'main.jsp'"); script.println("</script>"); } } %>
이제 join.jsp
페이지에서 톰캣 서버를 실행해서 테스트 해 보자
Ctrl
+ F11
눌러 주자.
회원가입 화면에서 양식을 모두 입력해 주고 회원가입 버튼을 클릭!

분명 폼을 다 채웠는데도 입력이 안 된 사항이 있습니다.
라는 alert창이 나온다.
뭔가 오타가 있어서 데이터가 안넘어간 모양이다.
다시 join.jsp
의 <form>
태그나 <input>
태그에서 오타나 속성값이 잘못된 부분이 없는지 확인해 주자.

input태그 name값에 오타가 있었다. userEmail 인데 l을 두 번 써 주어서 이메일 값이 안 넘어 가고 있었다.


수정 해 주고, 재시도 했음.
잉? 회원가입은 성공했는데 자꾸 joinAction.jsp
페이지로 넘어간다.
locaion.href 설정이 잘못되어 있는 것 같다.

확인 해 보니 닫는 부분의 ' 작은 따옴표 하나가 빠져 있었다.
해당 부분을 수정해 주었다.


다시 회원가입 화면으로 돌아와서 테스트!

이렇게 기존 테이블에 dain3 유저의 회원 정보가 잘 들 어온 것을 확인 해 볼 수 있다.

그리고 회원가입에 성공하면 main.jsp
페이지로 이동이 되는 걸 URL 을 통해 확인할 수 있다.
아직 main.jsp
를 안 만들었기 때문에 HTTP 응답코드 404 에러가 뜨는 것이 정상이다!!

오늘은 여기까지 마무리
'Spring&JSP' 카테고리의 다른 글
[JSP] 게시판 만들기 8 _ 게시판 메인 페이지 만들고 게시판 데이터베이스 구축하기 (70) | 2024.12.08 |
---|---|
[JSP] 게시판 만들기 7 _ 회원세션 관리하기 (94) | 2024.12.05 |
[JSP] 게시판 만들기 5 _ form태그와 input태그로 간단한 join.jsp 회원가입창 만들기 (68) | 2024.12.04 |
[JSP] 게시판 만들기 4 _ UserDAO 클래스 & JDBC 연동 (62) | 2024.12.04 |
[JSP] 게시판 만들기 3 _ MySQL user 테이블 만들고, 이클립스에서 자바빈 만들기 (62) | 2024.12.03 |