본문 바로가기
자바과정/DB(Oracle)

DB를 활용한 회원가입/로그인 (JDBC, 오라클, MVC 1패턴)

by Parkej 2021. 3. 16.

------ 사용할 테이블 구조(속성명과 타입)


------ 시퀀스 테이블(PK 번호 자동부여)


------ DB에 등록된 초기 데이터


------ 아이디나 비밀번호가 DB에 등록된 정보와 맞지 않을때


------ 일반 사용자 로그인 화면


------ 관리자 로그인 화면


------ 회원 목록 보기 (관리자 정보는 제외)


------ 관리자의 개인 회원정보 조회 후 리스트로 돌아가기 클릭


------ 리스트 돌아간 화면


------ 삭제


------ 로그아웃 (접속된 세션종료)


------ DB 확인하기


 

------ 회원가입 폼 유효성 검사 후 가입하기 (주민번호 입력시 생년월일은 회원가입을 눌렀을 때 자동생성)


------ 회원가입을 누른 후 (NUM은 PK로 시퀀스를 사용하여 번호가 자동부여되게했음.)


------ context.xml (커넥션 풀)


------ web.xml (DB 리소스 등록)


------ 빈즈 클래스

 


 

// loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
%>

<!-- 로그인 폼 페이지 -->
<!DOCTYPE html>
<html>
<head>

<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript"> 
function goPage() 
{ 	
	// 링크가 눌려지면 해당 함수가 호출됨.
	document.loginf.action = "loginProcess.jsp";
	document.loginf.method = "post";
	document.loginf.submit();
}
</script>
</head>
<body>
<%
	session.invalidate();
%>
<div align = "center">
<form name = "loginf">
<table border = "1">

<!-- 테이블 1행 -->
<tr align="center">
 <td colspan="2">
 	<h1>로그인 페이지</h1>
 </td>
</tr>

<!-- 테이블 2행 아이디 -->
<tr>
<td>아이디</td>
<td><input type="text" id = "id" name = "mid"></td>
</tr>

<!-- 테이블 3행 비밀번호 -->
<tr>
<td>비밀번호</td>
<td><input type="text" id = "pw" name = "mpw"></td>
</tr>

<!-- 테이블 4행 -->
<tr align = "center">
<td colspan = "2">
<a href="javascript:;" onclick="goPage()">로그인</a>
<a href="joinForm.jsp">회원가입</a>
</td>
</tr>

</table>
</form>
</div>

</body>
</html>

// joinForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    


  <!DOCTYPE html>
  <html>
    <head>
      <meta charset="utf-8">
      <title>회원가입 유효성 검사 정규식</title>
      <script type = "text/javascript" src="./js/script.js" charset="utf-8"></script>
      <script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script>
      <link rel="stylesheet" href="bootst/css/bootstrap.css">
    </head>
  
    <body>
    
    <form id = "sm" name="pej" method="post" onsubmit="return allCheck()" action="joinProcess.jsp">
    <%
	request.setCharacterEncoding("UTF-8");
	%>
	<div class = "row"><div class = "col-sm-6">	
    <table class = "table table-bordered table-dark">
    
      <tr bgcolor="blanchedalmond" > <!-- 첫줄 -->
        <td align = "center" colspan="2" style = "color:black" >회원 기본 정보</td>
      </tr>
      
      <tr> <!-- 2 --> 
        <td>아이디:</td>
        <td><input type="text" id="_id" name="id" size=12 maxlength=12> 4~12자의 영문 대소문자와 숫자로만 입력</td>     
      	
      </tr>

      <tr> <!-- 3 --> 
        <td>비밀번호:</td>
        <td><input type="password" id="_pw" name="pw" size=12 maxlength=12> 4~12자의 영문 대소문자와 숫자로만 입력</td>     
      </tr>
      
      <tr> <!-- 4 행--> 
        <td>비밀번호확인:</td>
        <td><input type="password" id="_pw2" size=12 maxlength=12></td>
      </tr>

      <tr> <!-- 5 --> 
        <td>메일주소:</td>
        <td><input type="text" id="_mail" name="email" size=15> 예) id@domain.com</td>
      </tr>

      <tr> <!-- 6 --> 
        <td>이름:</td>
        <td><input type="text" id="_name" name="name" size=15 maxlength=4></td>
      </tr>

      <tr bgcolor="blanchedalmond" > <!-- 첫줄 -->
        <td align = "center" colspan="2" style = "color:black" >개인 신상 정보</td>
      </tr>
      
      <tr>
        <td>주소</td> <!-- zib코드 입력-->
        <td><input type="text" id="tbox1" name="addr" placeholder="우편번호" size=8>
        <input type="button" onclick="addrFind()" value="우편번호 찾기"><br>
        <input type="text" id="tbox2" name="addr" placeholder="주소" size=28><br>
        <input type="text" id="tbox4" name="addr" placeholder="참고항목" size=28>
        <input type="text" id="tbox3" name="addr" placeholder="상세주소">
        </td>
      </tr>

      <tr> <!-- 7 --> 
        <td>주민등록번호:</td>
        <td><input type="text" id="_ju" name="pin" size=15 minlength=13 maxlength=13> 예) 1234561234567</td>
      </tr>

      <tr> <!-- 8 --> 
        <td>생일:</td>
        <td>
          <input type="text" id="birth" name="year" size=5 maxlength=12>년
          <select id="month" name="month">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          </select>월
          <select id="day" name="day">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
          </select>일
        </td>
      </tr>

      <tr> <!-- 9 --> 
        <td>관심분야:</td>
        <td>
          <input type="checkbox" value = "컴퓨터" name="hobby">컴퓨터
          <input type="checkbox" value = "인터넷" name="hobby">인터넷
          <input type="checkbox" value = "여행" name="hobby">여행
          <input type="checkbox" value = "영화감상" name="hobby">영화감상
          <input type="checkbox" value = "음악감상" name="hobby">음악감상
      </tr>

      <tr> <!-- 9 --> 
        <td>자기소개:</td>
        <td><textarea id="my_intro" name="content" cols="55" rows="5" maxlength="700"></textarea></td>
      </tr>
      
      	<tr>
   		 <td colspan="2" align = "center">
    		  <input type="submit" value="회원 가입">
    		  <input type="reset" value="다시입력">
     	 </td>
     	</tr>
      </table>
     </div></div>
    </form>
	<script
		src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	<script type="text/javascript" src="bootst/js/bootstrap.js"></script>
    </body>
  </html>

// joinProcess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>

<!-- 빈즈 사용 -->
<jsp:useBean id="people" class="test.BeanPeople">
	<jsp:setProperty name = "people" property="*"/>
</jsp:useBean>

<%
	Connection conn = null;
	String sql = "INSERT INTO person VALUES (NUM_SEQ.NEXTVAL,?,?,?,?,?,?,?,?,?,?,?)"; // ?는 나중에 채워넣겠다는 의미임.
	
	try{

		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
			

		// 값이 있으면 속성에 맞게 값 입력
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, people.getId());
		pstmt.setString(2, people.getPw());
		pstmt.setString(3, people.getEmail());
		pstmt.setString(4, people.getName());
		pstmt.setString(5, people.getAddrarr());
		pstmt.setString(6, people.getPin());
		pstmt.setString(7, people.getYear());
		pstmt.setString(8, people.getMonth());
		pstmt.setString(9, people.getDay());
		pstmt.setString(10, people.getHobbyarr());
		pstmt.setString(11, people.getContent());
		pstmt.executeUpdate();
		
		pstmt.close();
		conn.close();
		
		response.sendRedirect("loginForm.jsp");
				
	}catch(Exception e){
		out.println("<h3>레코드 등록 실패</h3>");
		e.printStackTrace();
	}
%>  

// loginProcess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
	request.setCharacterEncoding("UTF-8");
%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>

<!-- 로그인 처리 (있는회원인지 아닌지) -->
<%
	String id = (String)request.getParameter("mid");
	String pw = (String)request.getParameter("mpw");
	
	Connection conn = null;
	String sql = "SELECT id, pw FROM person";
	
	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		boolean f= false;
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		
		while(rs.next()){
			// DB에 있는 아이디,비번과 텍스트에 입력된 아이디, 비번을 비교 
			if((rs.getString(1).equals(id) && rs.getString(2).equals(pw))){
				session.setAttribute("id", id);
				f = true;
				break;
			}
		}
		
		if(f == true){
			response.sendRedirect("Main.jsp");
		}
		
		else{
			out.print("<script>alert('정보가 맞지 않습니다.'); location.href='loginForm.jsp';</script>");
		}
		
		rs.close();
		pstmt.close();
		conn.close();
		
	}catch(Exception e){
		out.println("<h3>데이터 가져오기 실패 ㅋ</h3>");
		e.printStackTrace();
	}
	
%>

// Main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %> 
<%
	request.setCharacterEncoding("UTF-8");
	String name = (String) session.getAttribute("id");	
	
%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<%
	out.print(name);
	out.print("님이 로그인 한 상태입니다.");
%>

<br>
<%if(name.equals("admin")) {%>
<a href="Member_list.jsp">관리자 모드 접속(회원 목록 보기)</a><br>
</div>
<%}else{%>
<hr>
<%
	Connection conn = null;
	String sql = "SELECT * FROM person where id='"+ name + "'";
	
	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery(sql);
		
		if(rs.next()){
			out.print("<table align=\"center\" border = \"1\">");
			
			out.print("<tr><td>아이디</td>");
			out.print("<td>"+rs.getString(2)+"</td></tr>");
			
			out.print("<tr><td>비밀번호</td>");
			out.print("<td>"+rs.getString(3)+"</td></tr>");
			
			out.print("<tr><td>이메일</td>");
			out.print("<td>"+rs.getString(4)+"</td></tr>");
			
			out.print("<tr><td>이름</td>");
			out.print("<td>"+rs.getString(5)+"</td></tr>");
			
			out.print("<tr><td>주소</td>");
			out.print("<td>"+rs.getString(6)+"</td></tr>");
			
			out.print("<tr><td>주민번호</td>");
			out.print("<td>"+rs.getString(7)+"</td></tr>");
			
			out.print("<tr><td>생년월일</td>");
			out.print("<td>"+rs.getString(8)+"-"+rs.getString(9)+"-"+rs.getString(10)+"</td></tr>");
			
			out.print("<tr><td>취미</td>");
			out.print("<td>"+rs.getString(11)+"</td></tr>");
			
			out.print("<tr><td>자기소개</td>");
			out.print("<td>"+rs.getString(12)+"</td></tr>");
			
			out.print("</table>");
			}
		
		rs.close();
		stmt.close();
		conn.close();
		
	}catch(Exception e){
		out.println("<h3>데이터 가져오기 실패 ㅋ</h3>");
		e.printStackTrace();
	}
%>
<%} %>
<%@ include file="logout.jsp" %>

</body>
</html>

// Member_list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>  
<%
request.setCharacterEncoding("UTF-8");
String name = (String) session.getAttribute("id");
%>
<%
	Connection conn = null;
	// id 값만 불러온다
	String sql = "SELECT num,id FROM person order by num";
	
	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		
		out.print("<div align=\"center\">");
		out.print("<table border=\"1\" width=\"300\">");	
		out.print("<tr align = \"center\"><td colspan=\"2\"><div>회원목록</div></td></tr>");
		while(rs.next()){
			if(rs.getString(2).equals("admin")){
				continue;
			}
			out.print("<tr>");
			out.print("<td>"+"<a href=\"Member_info.jsp?id="+rs.getString(2)+"\">"+rs.getString(2)+"</td>");
			out.print("<td>"+"<a href=\"Member_delete.jsp?id="+rs.getString(2)+"\">삭제"+"</td>");
			out.print("</tr>");
		}
		out.print("</table>");
		out.print("</div>");
		
		rs.close();
		pstmt.close();
		conn.close();
		
	}catch(Exception e){
		out.println("<h3>데이터 가져오기 실패 ㅋ</h3>");
		e.printStackTrace();
	}
%>


<%@ include file="logout.jsp" %>

// Member_info.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>
<%
	request.setCharacterEncoding("UTF-8");
	String name = (String) session.getAttribute("id");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align ="center">
<%=name %>님 안녕하세요<br>
출력할 회원 정보입니다.<hr>
<br>
<%
	Connection conn = null;
	String sql = "SELECT * FROM person where id='"+ request.getParameter("id") + "'";
	
	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery(sql);
		out.print("<table align=\"center\" border = \"1\">");
		if(rs.next()){
			
			
			out.print("<tr><td>아이디</td>");
			out.print("<td>"+rs.getString(2)+"</td></tr>");
			
			out.print("<tr><td>비밀번호</td>");
			out.print("<td>"+rs.getString(3)+"</td></tr>");
			
			out.print("<tr><td>이메일</td>");
			out.print("<td>"+rs.getString(4)+"</td></tr>");
			
			out.print("<tr><td>이름</td>");
			out.print("<td>"+rs.getString(5)+"</td></tr>");
			
			out.print("<tr><td>주소</td>");
			out.print("<td>"+rs.getString(6)+"</td></tr>");
			
			out.print("<tr><td>주민번호</td>");
			out.print("<td>"+rs.getString(7)+"</td></tr>");
			
			out.print("<tr><td>생년월일</td>");
			out.print("<td>"+rs.getString(8)+"-"+rs.getString(9)+"-"+rs.getString(10)+"</td></tr>");
			
			out.print("<tr><td>취미</td>");
			out.print("<td>"+rs.getString(11)+"</td></tr>");
			
			out.print("<tr><td>자기소개</td>");
			out.print("<td>"+rs.getString(12)+"</td></tr>");
			
			}
		out.print("<tr align=\"center\"><td colspan=\"2\">");
		out.print("<a href=\"Member_list.jsp\">리스트로 돌아가기</a>"+"</td></tr>");
		out.print("</table>");
		
		rs.close();
		stmt.close();
		conn.close();
		
	}catch(Exception e){
		out.println("<h3>데이터 가져오기 실패 ㅋ</h3>");
		e.printStackTrace();
	}
%>
</div>
</body>
</html>

// Member_delete.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>

<%
	request.setCharacterEncoding("UTF-8");
%>

<%
	Connection conn = null;
	String sql = "DELETE FROM person where id ='" + request.getParameter("id") + "'";
	
	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		
		Statement stmt = conn.createStatement();
		int result = stmt.executeUpdate(sql);
		
		if(result != 0){
			response.sendRedirect("Member_list.jsp");
		}
	
		
		stmt.close();
		conn.close();
		
	}catch(Exception e){
		out.println("<h3>데이터 가져오기 실패 ㅋ</h3>");
		e.printStackTrace();
	}
%>

// logout.jsp (include 할 파일)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<meta charset="UTF-8">
<hr>
<div align="center">
<a href="loginForm.jsp">로그아웃</a>
</div>

// script.js

var re = /^[a-zA-Z0-9]{4,12}$/; // 아이디와 패스워드가 적합한지 검사할 정규식
var re2 = /^[0-9a-zA-Z]{1,}@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; // 이메일 조건 정규 표현식
function allCheck(){
  return (idCheck()&&pwCheck()&&checkMail()&&nameCheck()&&checkAddr()&&ymdCheck()&&checkInterest()&&introCheck());
}

// 아이디
function idCheck(){
  var id = document.getElementById("_id");
  // ^ 이 규칙으로 문장을 시작한다. 
  // [문자 규칙을 입력]
  // {} = [] 안에 포함되는 문자가 최소 4개부터 12개까지
  
  if(id.value == ""){
    window.alert("ID를 입력하세요");
    id.focus();
    id.value = "";
    return false;
  }
  else if(!re.test(id.value)){
    window.alert("아이디는 4~12자와 영어 숫자로만 입력");
    id.focus();
    id.value = "";
    return false;
  }
  else return true;
}

// 주소 유효성 판별 체크 (상세주소)
function checkAddr(){
  var sangaddr = document.getElementById("tbox3").value;
  var numaddr = document.getElementById("tbox1").value;
  if(numaddr == ""){
    alert("주소를 입력해 주세요.");
    document.getElementById("tbox1").focus;
    return false;
  }
  if(sangaddr == ""){ //상세주소 없으면 안받아줌
    alert("상세주소를 입력해 주세요.");
    document.getElementById("tbox3").focus();
    return false;
  }
  else return true;
}

// 비밀번호체크
function pwCheck(){
      var pw1 = document.getElementById("_pw");
      var pw2 = document.getElementById("_pw2");

      // 아이디랑 비번이랑 같을 경우
      if (pw1.value == document.getElementById("_id").value)
      {
        alert("아이디랑 비밀번호가 같으면 안됩니다.")
        pw1.focus;
        pw1.value = "";
        pw2.value = "";
        return false;
      }
      // 비번 길이와 영어소대문자 입력값이 올바른지
      // 정규표현식을 true false로 반환할거면 test
      else if (!re.test(pw1.value))
      {
        alert("비밀번호는 4~12자 또는 영문 대소문자만 입력하세요.");
        pw1.focus;
        pw1.value = "";
        pw2.value = "";
        return false;
      }
      // 비번 확인이 잘 안된 경우
      else if (pw1.value != pw2.value)
      {
        alert("비밀번호를 확인해주세요")
        pw1.focus;
        pw1.value = "";
        pw2.value = "";
        return false;
      }
      else return true;
}

// 메일주소
function checkMail(){
  var mail = document.getElementById("_mail");
  if(mail.value == ""){
    alert("이메일 내용을 입력해주세요.");
    mail.focus;
    mail.value = "";
    return false;
  }
  else if(!re2.test(mail.value)){
    alert("이메일 형식을 확인바랍니다.");
    mail.focus;
    mail.value = "";
    return false;
  }
  else return true;  
}

//이름
function nameCheck(){
  var name = document.getElementById("_name");
  var reKor = /^[가-힣]{1,}$/;
  if (name.value == null){
    alert("이름을 입력해주세요");
    name.focus;
    name.value = "";
    return false;
  }
  else if(!reKor.test(name.value)){
    alert("한글을 입력해 주세요.")
    name.focus;
    name.value = "";
    return false;
  }
  else return true;
}


// 주소팝업
function addrFind() {
  new daum.Postcode({
    oncomplete: function(data) {
    // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
    // 각 주소의 노출 규칙에 따라 주소를 조합한다.
    // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
    var addr = ''; // 주소 변수
    var extraAddr = ''; // 참고항목 변수

    //사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
    if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
      addr = data.roadAddress;
    } else { // 사용자가 지번 주소를 선택했을 경우(J)
      addr = data.jibunAddress;
    }
    // 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다.
    if(data.userSelectedType === 'R'){
    // 법정동명이 있을 경우 추가한다. (법정리는 제외)
    // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다.
    if(data.bname !== '' && /[동|로|가]$/g.test(data.bname)){
      extraAddr += data.bname;
    }
    // 건물명이 있고, 공동주택일 경우 추가한다.
    if(data.buildingName !== '' && data.apartment === 'Y'){
      extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
    }
    // 표시할 참고항목이 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
    if(extraAddr !== ''){
      extraAddr = ' (' + extraAddr + ')';
    }
    // 조합된 참고항목을 해당 필드에 넣는다.
    document.getElementById("tbox4").value = extraAddr;
    } else {
      document.getElementById("tbox4").value = '';
    }
    // 우편번호와 주소 정보를 해당 필드에 넣는다.
    document.getElementById('tbox1').value = data.zonecode;
    document.getElementById("tbox2").value = addr;
    // 커서를 상세주소 필드로 이동한다.
    document.getElementById("tbox3").focus();
    }
  }).open();

}

// 주민번호 , 생일
function ymdCheck(){
  var today = new Date();
  var yearcheck = today.getFullYear()
  var ssn = document.getElementById("_ju").value;
  var birth = ssn.substr(0,6);
  var reymd = /^[0-9]{1,}$/; // 숫자만 판별하고 1개이상들어가야함.
  
  // 몇년생인지 구분
  if(!reymd.test(ssn)){
    alert("숫자만 입력하세요.");
    document.getElementById("_ju").focus;
    document.getElementById("_ju").value = "";
    return false;
  }else{
    if(parseInt("20"+birth.substr(0,2)) > yearcheck){
      document.getElementById("birth").value = "19"+ birth.substr(0,2);
    }
    else {
      document.getElementById("birth").value = "20"+ birth.substr(0,2);
    }
    
       // 월 체크
    month[parseInt(birth.substr(2,2))-1].selected = true;
    day[parseInt(birth.substr(4,2))-1].selected = true;
    
    if(parseInt(ssn[6]) > 4)
    {
      alert("너는 성별이 어떻게 되냐?");
    }
    else if(
      ssn[12] != (11-((2*parseInt(ssn[0])+ 3*parseInt(ssn[1])+ 4*parseInt(ssn[2])+
      5*parseInt(ssn[3])+ 6*parseInt(ssn[4])+ 7*parseInt(ssn[5])+
      8*parseInt(ssn[6])+ 9*parseInt(ssn[7])+ 2*parseInt(ssn[8])+
      3*parseInt(ssn[9])+ 4*parseInt(ssn[10])+5*parseInt(ssn[11]))%11))) 
      {
        alert("주민번호가 매우 수상해~");
    }
    return true;
  }
}

//관심분야
function checkInterest(){
    var interest = document.getElementsByName("hobby")
    var cnt = 0;
    for(var i =0; i<interest.length; i ++){
      if(interest[i].checked){cnt++};
    }
    if (cnt == 0)
    {
      alert("관심분야를 체크해 주세요.")
    return false;
    }
    else return true;
}

// 자기소개
function introCheck(){
  var intro = document.getElementById("my_intro");

  if(intro.value == ""){
    alert("자기소개란에 내용을 입력해주세요.");
    intro.focus;
    return false;
  }
  else return true;
}

// BeanPeople.java (자바 빈즈 클래스)

package test;

public class BeanPeople {
	private String id; // 아이디
	private String pw; // 비번
	private String email; // 이메일
	private String name; // 이름
	private String addr[]; // 주소
	private String pin; // 주민번호
	private String year; // 생일
	private String month; // 생일
	private String day; // 생일
	private String hobby[]; // 관심분야
	private String content; // 자기소개 
	
	public BeanPeople() {
		this.id = "";
		this.pw = "";
		this.email = "";
		this.name = "";
		this.addr = null;
		this.pin = "";
		this.year = "";
		this.month = "";
		this.day = "";
		this.hobby = null;
		this.content = "";
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPw() {
		return pw;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String[] getAddr() {
		return addr;
	}

	public void setAddr(String[] addr) {
		this.addr = addr;
	}
	
	public String getAddrarr() {
		String addrarr="";
		for(int i=0;i<addr.length;i++) {
			addrarr += addr[i];
			if(i<addr.length -1) {
				addrarr += "<br>";
			}
		}
		return addrarr;
	}

	public String getPin() {
		return pin;
	}

	public void setPin(String pin) {
		this.pin = pin;
	}


	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	public String getMonth() {
		return month;
	}

	public void setMonth(String month) {
		this.month = month;
	}

	public String getDay() {
		return day;
	}

	public void setDay(String day) {
		this.day = day;
	}
	public String[] getHobby() {
		return hobby;
	}
	public String getHobbyarr() {
		
		String hobbyarr = "";
		// 관심분야가 null 이 아니어도 for문이 돌아감
		for(int i=0;i<hobby.length;i++) {
			hobbyarr += hobby[i];
			if(i<hobby.length -1) {
				hobbyarr += ',';
			}
		}
		return hobbyarr;
	}

	public void setHobby(String[] hobby) {
		this.hobby = hobby;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

}

 

반응형

댓글