개발/JSP 게시판 만들기

[JSP 게시판 만들기] 6강 회원가입 기능 구현하기

ee2ee2 2021. 10. 31. 23:33
728x90
반응형

참고 유튜브

https://www.youtube.com/watch?v=v2mmPRLjJGw&list=PLRx0vPvlEmdAZv_okJzox5wj2gG_fNh_6&index=6 

이번 시간에는 회원가입 페이지를 통해 데이터가 전달 및 저장되는 기능을 구현해 본다.

 


UserDAO.java 

지난 시간 UserDAO.java 파일은 데이터베이스에 직접 접근하여 데이터 조회 및 수정을 진행하는 트랜잭션 객체라고 설명하였다.

 

UserDAO.java 파일에 회원가입 기능인 join() 메소드를 추가 작성한다.

////// 생략 //////

	public int join(User user) {
		String SQL ="INSERT INTO USER VALUES (?, ?, ?, ?, ?)";
		
		try {
			pstat = conn.prepareStatement(SQL);
			pstat.setString(1, user.getUserID());
			pstat.setString(2, user.getUserPW());
			pstat.setString(3, user.getUserName());
			pstat.setString(4, user.getUserGender());
			pstat.setString(5, user.getUserEmail());
			
			//INSERT문의 경우, 성공일 경우 0 이상의 숫자가 반환됨.
			return pstat.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return -1;	//데이터 베이스 오류일 때
	}

 

 


JoinAction.jsp

회원가입 페이지에서 회원가입 버튼을 누르면 JoinAction.jsp로 이동하도록 설정하였다.

해당 페이지는 join.jsp에서 입력한 데이터들을 받아와 USER에 세팅하고 join 메소드를 호출한다.

이후, join 메소드의 결과 값을 통해 성공/실패를 사용자에게 보여주는 역할을 한다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="USER.UserDAO" %>
<%@ page import="java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8"); %>
<jsp:useBean id="USER" class="USER.User" scope="page"/>
<jsp:setProperty name="USER" property="userID"/>
<jsp:setProperty name="USER" property="userPW"/>
<jsp:setProperty name="USER" property="userName"/>
<jsp:setProperty name="USER" property="userGender"/>
<jsp:setProperty name="USER" property="userEmail"/>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content= "text/html; charset=UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<body>
	<%
		if(USER.getUserID() == null || USER.getUserPW() == 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 >= 0){
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("location.href = 'main.jsp'");
				script.println("</script>");	
			} else if(result == -1){
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('이미 존재하는 아이디입니다.')");
				script.println("history.back()");
				script.println("</script>");	
			}
		}
	%>
</body>
</html>

결과 확인

회원가입 화면


회원가입 진행

로그인 성공!

(main.jsp 페이지는 아직 구현 전이므로 아래와 같이 뜨는게 맞다)

회원 가입 전 USER 테이블
회원 가입 후 USER 테이블

 

테이블을 통해 데이터가 정상적으로 삽입되었음을 확인할 수 있다.

 


이미 존재하는 아이디로 회원가입할 때,

 

회원가입이 안됨을 확인 할 수 있다!
테이블에도 데이터 추가가 안됨을 볼 수 있다.

 

다음은 "접속한 회원 세션 관리하기"를 진행해 보겠다!

설명이 필요한 부분은 언제든 말씀해주세요!