국비지원 JAVA 풀스택 과정/JAVA

[JSP] 회원관리 프로그램

ODaram 2022. 12. 12. 17:28
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<!-- CSS only -->
<style>
	*{margin:0; padding:0 ;broder-sizing:border-box;}
	ul li {list-style:none; padding:5px 0;}
	.clear {clear:both;}
	
	h2 {padding:50px 0 30px; text-align:center;}
	.container {width:450px; margin:0 atuo;}
	.input-id, .input-zipcode  {display:inline-block; width:230px; margin-right:10px;}
	.input-birth {float:right; width:340px;}
	li:nth-child(5), li:nth-child(6),li:nth-child(10), .btn-login {line-height:40px;}
	.frm-btn {margin-top:30px;}
</style>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
<script src="js/jquery-1.12.4.min.js"></script>
<script>
	function idCheck(id) {	// 자바스크립트의 변수는 자료형이 없다.
		<% // frm = document.regFrm;		//<form> 요소 중 regForm 이름을 가진 폼 요소를 frm 변수에 담는다. %>
		
		console.log(id);
		
		if(id == '') {	// 아이디 중복 확인 버튼 선택 시 아이디 입력폼에 아이디가 없는 경우/ 만약 아이디 입력폼에 아이디를 입력하지 않고 아이디 중복 확인 버튼을 눌렀으면
			alert("아이디를 입력해 주세요.");
			<!-- frm.id.focus();		// 아이디 입력폼에 커서를 위치시킨다. -->
			document.regFrm.id.focus(); // 아이디 입력폼으로 커서를 위치시킨다.
			return;		// 메서드(=함수) 종료
		}
		url = "idCheck.jsp?id="+id;
		// idCehck.jsp로 이동하면서 id변수에 사용자가 입력한 id값을 저장하여 get방식으로 전달한다.
		// window.open() 윈도우 창을 띄운다.
		window.open(url,"IDCheck", "width=300, height=150");
	}
	
	function zipCheck() {
		url = "zipCheck.jsp?check=y";
				// zipCehck.jsp로 이동하면서 chedck변수에 y값을 저장하여 get방식으로 전달한다.
		window.open(url,"ZipCodeCheck", "width=500, height=300, scrollbars=yes");
	}
</script>
</head>
<!-- 
 옛날 방식 / 요새는 autofocus로 대체한다.
<%// 인터프리터(해석기) 페이지를 다 해석하면 regFrm 요소의 id 입력폼에 커서를 위치시킨다.%>
<body onLoad="regFrm.id.focus()">
 -->
<body>
	<h2>Member Join</h2>
	
	<div class="container">
		<form name="regFrm" action="memberPro.jsp" method="post"> <!-- register : 작성한다 -->
			<ul>
				<li>
					<input type="text"  name="id" placeholder="아이디 입력"  class="form-control input-id"  autofocus required>
					<input type="button" value="아이디 중복 확인" onClick="idCheck(this.form.id.value)" class="btn btn-ouline-success"> <!-- this.form.id.value : name -->
					<%// 아이디 중복 확인 버튼을 클릭(onClick)하면 idCheck()를 호출하면서 사용자가 입력한 아이디 값을 전달한다. %>
				</li>
				<li><input type="password" name="pwd" placeholder="비밀번호입력"  class="form-control"  required></li>
				<li><input type="password" name="repwd" placeholder="비밀번호확인"  class="form-control"  required></li>
				<li><input type="text"  name="name" placeholder="이름 입력"  class="form-control"  required></li>
				<li>
					성별 : 
					<input type="radio"  name="gender"  value="1"  checked> 남자 &nbsp;&nbsp;
					<input type="radio"  name="gender"  value="2" > 여자 
				</li>
				<li>
					생일 : 
					<input type="date" name="birth" class="form-contlol input-birth">
					<div class="clear"></div>
				</li>
				
				<li><input type="email" name="email" placeholder ="이메일 입력" class=form-control">
				<li>
					<input type="text" name="zipcode" placeholder="우편번호" class="form-control input-zipcode" readonly>
					<input type="button" value="우편 번호 찾기"  class ="btn btn-outline-success btn-zipcode" onClick="zipCheck()">
				</li>
				<li><input type="text" name="addr" placeholder="주소"  class="form-control"  disabled> </li>
				<li>
					 취미 : 
					<input type="checkbox" name="hobby" value="인터넷" > 인터넷 &nbsp;&nbsp;
					<input type="checkbox" name="hobby" value="여행"  > 여행 &nbsp;&nbsp;
					<input type="checkbox" name="hobby" value="게임"  > 게임 &nbsp;&nbsp;	
					<input type="checkbox" name="hobby" value="영화"  > 영화 &nbsp;&nbsp;	
					<input type="checkbox" name="hobby" value="운동"  > 운동
				</li>
				<li>
					직업 : 
					<select name="job" class="form-control">
						<option value="0" selected>
						<option value="회사원"> 회사원 </option>
						<option value="전문직"> 전문직 </option>
						<option value="공무원"> 공무원 </option>
						<option value="자영업"> 자영업 </option>
						<option value="의료인"> 의료인  </option>
						<option value="교사"> 교사 </option>
						<option value="주부"> 주부 </option>
						<option value="무직"> 무직 </option>
						<option value="기타"> 기타 </option>
					</select>
				</li>
				<li class ="btn-group frm-btn">
					<%// 버튼 요소는 a태그, button 태그, input 태그로 만든다. 페이지를 이동이 필요하면 a 태그를 사용하지만, 페이지 이동이 필요 없으면 button 태그를 사용한다.%>
					<% // 회원가입 버튼을 누르면 inputCheck() 함수를 호출하여 데이터 유효성 검증 작업을 한다. %>
					<% // <button onClick="inputCheck()" class="btn btn-outline-primary">회원가입</button> <%// outline:고스트버튼 <!--onClick="inputCheck()"-->%>
					<button type="reset" class="btn btn-outline-primary">다시쓰기</button>
					<a href="login.jsp" class="btn btn-outline-primary btn-login">로그인</a>
				</li>
			</ul>
		</form>
	</div>
	<script src="js/script.js"></script>
</body>
</html>

 

<script.js> 

 function inputCheck() { // 데이터 유효성 검증 함수
	if(document.regFrm.id.value == ""){ //★★★중요 : document.regFrm.변수명.value
		alert("아이디를 입력하세요.");
		document.regFrm.id.focus();
		return;
	}else if(document.regFrm.pwd.value == ""){
		alert("비밀번호를 입력하세요.");
		document.regFrm.pwd.focus();
		return;
	}else	if(document.regFrm.repwd.value == ""){
		alert("비밀번호 확인을 입력하세요.");
		document.regFrm.repwd.focus();
		return;
	}
	
	 // 유효성 검증
	if(document.regFrm.pwd.value != document.regFrm.repwd.value){
		alert("비밀번호가 일치하지 않습니다.");
		document.regFrm.repwd.value = "";
		document.regFrm.repwd.focus();
		return;
	} else if(document.regFrm.name.value == "") {
		alert("이름을 입력하세요.");
		document.regFrm.name.focus();
		return;
	} else if(document.regFrm.birth.value == "") {	// birth 는 null 값도 가능하지만 현재 빈값이면 넘어가지 않아서 추가해줌
		alert("생일을 입력하세요.");
		document.regFrm.birth.focus();
		return;
	}else if(document.regFrm.email.value == "") {
		alert("이메일을 입력하세요.");
		document.regFrm.email.focus();
		return;
	}
	
	var str = document.regFrm.email.value;
	var atPos = str.indexOf('@');	// @의 인덱스 값을 얻는다., 아이디@naver.com
	var atLastPos = str.lastIndexOf('@'); // 아이디에 @가 있는 경우 마지막 @의 인덱스 값을 얻는다.
	var atPos = str.indexOf('.');	// .의 인덱스 값을 얻는다.
	var spacePos = str.indexOf(' '); 	// 이메일에서 공백이 있다면 공백의 인덱스 값을 얻는다.
	var commaPos = str.indexOf(','); // ,의 인덱스 값을 얻는다.
	var eMailSize = str.length; // 이메일 문자열 크기를 얻는다.
	
	if(atPos > 1 && atPos == atLastPos && dotPos > 3 && spacePos == -1 && atPos +1 < dotPos && dotPos + 1 < eMailSize); 
	else {
		alert("이메일 형식이 잘못되었습니다.\n다시 입력해 주세요!");
		document.regFrm.email.focus();
		return;
	}  	
	
	if(document.regFrm.zipcode.value == "") {
		alert("우편번호를 입력하세요.");
		return;
	}	
	
	// 입력폼에 입력한 데이터의 유효성 검증이 완료되면 서브밋을 수행한다.
	document.regFrm.submit();
}

function win_close() {
	self.close();
}

'국비지원 JAVA 풀스택 과정 > JAVA' 카테고리의 다른 글

[JSP] 우편번호검색  (0) 2022.12.14
[JSP] 회원관리 프로그램2  (0) 2022.12.13
[JAVA] 파일 업로드 구현  (0) 2022.12.09
[JAVA] 자동 줄바꿈 처리  (0) 2022.12.09
[JAVA] JSP 수업 정리  (0) 2022.12.09