본문 바로가기
수업(국비지원)/JSP

[JSP] MVC MODEL1 방식 - 회원가입(joinForm, join)

by byeolsub 2023. 4. 19.

📌 joinForm에서 회원가입 입력창 만들고 실행.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--/jsp2/src/main/webapp/model1/joinForm.jsp --%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<link rel ="stylesheet" href="../../css/main.css">
<script>
	function check(f) {
	   if(f.id.value == '') {
		   alert("아이디를 입력하세요")
		   f.id.focus()
		   return false  //submit 버튼 클릭의 기능 중지
	   }
	   if(f.pass.value == '') {
		   alert("비밀번호를 입력하세요")
		   f.pass.focus()
		   return false
	   }
	   if(f.name.value == '') {
		   alert("이름을 입력하세요")
		   f.name.focus()
		   return false
	   }
	   return true;
	}
	function win_open() { //pw.jsp다음에 추가된부분
		let op = "width=300,height=300,left=50,top=150"
		open("memberimg.jsp",op)
	}
</script>
</head>
<body>
<form action = "join.jsp" method="post" name="f"
	onsubmit="return check(this)">
<%-- type="hidden" : 값은 존재. 화면없음. 파라미터값으로 서버에 전달 --%>
	<input type ="hidden" name="picture" value="">
	<table>
		<caption>회원가입</caption>
		<tr><td rowspan="4" align="center" valign="bottom">
			<img src="" width = "100" height="120" id="pic"><br>
			<font size="1"> <a href="javascript:win_open()">사진등록</a>
			</font></td>
			<td>아이디</td>
				<td><input type="text" name="id"></td>
			</tr>
		<tr><td>비밀번호</td>
		<td><input type="password" name="pass"></td></tr>
		<tr><td>이름</td>
		<td><input type="text" name="name"></td></tr>
		<tr><td>성별</td>
        <td><input type="radio" name="gender" value="1" checked>남
            <input type="radio" name="gender" value="2" checked>여</td></tr>
		<tr><td>전화번호</td>
		<td colspan="2"><input type="text" name="tel"></td>
		<tr><td>이메일</td>
		<td colspan="2"><input type="text" name="email"></td>
			<tr><td colspan="3" align="center">
			<input type="submit" value="회원가입">
<%-- type="reset" : 화면을 초기화면으로 설정. 입력된 내용 전부 초기화 --%>
			<input type="reset" value="다시작성">
			</td></tr>
		</talble>
</form>
</body>
</html>

📌 join

<%-- /jsp2/src/main/webapp/model1/member/join.jsp 
  1. 파라미터 값들을 Member 객체에 저장
  2. Member 객체의 내용을 db에 저장
  3. db에 등록 완료시(저장 성공 시) : 화면에 내용 출력하기
     저장 실패 시 : joinForm.jsp 페이지 이동 
--%>
<%@page import="model.MemberDao"%>
<%@page import="model.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
    request.setCharacterEncoding("UTF-8"); //파라미터 저장할 멤버객체 생성 전에 한글인코딩.
//1. 파라미터 값들을 Member 객체에 저장
    Member mem = new Member(); //Member 객체 생성
    //request.getParameter("id") : id의 입력값
    //setter부분
    mem.setId(request.getParameter("id")); 
    mem.setPass(request.getParameter("pass"));
    mem.setName(request.getParameter("name"));
  //gender 자료형 정수 String을 정수형으로 바꾸어주어야함으로 Integer 써준다.
    mem.setGender(Integer.parseInt(request.getParameter("gender"))); 
    mem.setTel(request.getParameter("tel"));
    mem.setEmail(request.getParameter("email"));
    mem.setPicture(request.getParameter("picture"));
    //2.Member 객체의 내용을 db에 저장
    MemberDao dao = new MemberDao(); //MemberDao 자바클래스 호출하는 방식.
    if(dao.insert(mem)) {	//회원가입 성공
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
   <tr><td>아이디</td><td><%=mem.getId() %></td></tr>
   <tr><td>이름</td><td><%=mem.getName() %></td></tr>
   <tr><td>성별</td><td><%=(mem.getGender()==1)?"남":"여" %></td></tr>
   <tr><td>전화번호</td><td><%=mem.getTel() %></td></tr>
   <tr><td>이메일</td><td><%=mem.getEmail() %></td></tr>
</table>
<input type="button" value="로그인하기" onclick="location.href='loginForm.jsp'">
</body>
</html>
<% } else { //회원가입 실패 %>  
<script type="text/javascript">
  alert("회원가입 실패")
  location.href='joinForm.jsp' // joinForm.jsp로 페이지 이동.
</script>
<% } %>