모든지 기록하자!

간단한 웹사이트 만들기(DB, JSP, BootStrap) 05 - 회원가입 기능 구현하기 본문

Web/기본 website만들기

간단한 웹사이트 만들기(DB, JSP, BootStrap) 05 - 회원가입 기능 구현하기

홍크 2021. 6. 17. 23:30
728x90

UserDAO 클래스에 Join이라는 함수를 추가해 준다.

	public int join(User user)  // 한명의 사용자를 입력받는다.
		String SQL = "INSERT INTO TEST VALUES(?, ?, ?, ?, ?)";
		try {
			pstmt = conn.prepareStatement(SQL);
			pstmt.setString(1, user.getUserID()); 
			pstmt.setString(2, user.getUserPassword());
			pstmt.setString(3, user.getUserName());
			pstmt.setString(4, user.getUserGender());
			pstmt.setString(5, user.getUserEmail());
			return pstmt.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return -1; // 데이터베이스 오류
	}

 

? 에 해당하는 내용은 첫 번째로 매개변수로 넘어온 user인스턴스에 getUserID와 같이 순서에 따라 데이터를 넣어준다. 

INSERT 문장을 실행한 경우는 반드시 0 이상의 숫자가 반환되기 때문에 -1이 아닌 경우에 성공적인 회원가입이 이루어진 것으로 볼 수 있다.

 

loginAction.jsp 페이지를 그대로 복사해서 joinAction.jsp 페이지를 만들어준다.

<%@ 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="userPassword" />
<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.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){
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('이미 존재하는 아이디입니다.')");
				script.println("history.back()");
				script.println("</script>");
			}
			else {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("location.href='main.jsp'");
				script.println("</script>");
			}	
		}
		

	%>
</body>
</html>

기존에 loginAction페이지는 userID와 userPassword만 받는 형식이었지만 이제는 join.jsp에서 보내는 5가지 변수를 모두 받아야 하기 때문에 윗부분에 jsp:setProperty에 userName, userGender, userEmail까지 추가해 준다. 입력을 하지 않았을 때 모든 경우의 수를 체크해서 처리해준다.

데이터 베이스 오류가 발생하는 이유는 이미 해당 아이디가 존재하는 경우 밖에 없다. 

-1이 반환되었을 때는 이미 존재하는 아이디 이기 때문에 출력문을 처리해준다.

-1이 아닌 값이 반환 되었을 때는 회원가입이 정상적으로 처리됐으므로 main.jsp로 이동시킨다.

728x90
Comments