λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ‹œλ„/ꡭ비지원

[D+76] κ³Όμ •ν‰κ°€ν˜• μ •λ³΄μ²˜λ¦¬μ‚°μ—…κΈ°μ‚¬ : νšŒμ›λ“±λ‘ν™”λ©΄(register.jsp) κ΅¬ν˜„

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2023. 1. 5.

 

 

ꡭ비지원 D+76

κ³Όμ •ν‰κ°€ν˜• μ •λ³΄μ²˜λ¦¬μ‚°μ—…κΈ°μ‚¬

- νšŒμ›λ“±λ‘ν™”λ©΄(register.jsp) κ΅¬ν˜„ -

 


 

νšŒμ›λ“±λ‘ν™”λ©΄(register.jsp) κ΅¬ν˜„

νšŒμ›λ“±λ‘ 화면은 SQL문을 μ‚¬μš©ν•΄ νšŒμ›λ²ˆν˜Έκ°€ μžλ™μœΌλ‘œ 생성될 수 μžˆλ„λ‘ ν•˜λ©°, 데이터가 μž…λ ₯될 λ•Œ 빈칸이 μž…λ ₯λ˜μ§€ μ•Šκ³  μ˜¬λ°”λ₯Έ λ°μ΄ν„°νƒ€μž…μ΄ λ“€μ–΄κ°ˆ 수 μžˆλ„λ‘ μœ νš¨μ„± 검사가 진행될 수 μžˆλ„λ‘ μž‘μ„±λ˜μ–΄μ•Ό ν•œλ‹€.

 

• register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>

<%@ page import="DBPKG.DBConnection" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ν™ˆμ‡Όν•‘ νšŒμ› 등둝</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
	<header>
		<div>
			<h2>μ‡Όν•‘λͺ° νšŒμ›κ΄€λ¦¬ ver 1.0</h2>
		</div>
	</header>
	
	<nav>
		<div>
			<a href="register.jsp">νšŒμ›λ“±λ‘</a>
			<a href="inquiry.jsp">νšŒμ›λͺ©λ‘μ‘°νšŒ/μˆ˜μ •</a>
			<a href="sale.jsp">νšŒμ›λ§€μΆœμ‘°νšŒ</a>
			<a href="index.jsp">ν™ˆμœΌλ‘œ</a>
		</div>
	</nav>
	
	<section>
		<div>
			<h3>ν™ˆμ‡Όν•‘ νšŒμ› 등둝</h3>
			
<%
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;

String sql = "select max(custno)+1 from member_tbl_02";

String custno = "";

try
{
	conn = DBConnection.getConnection();
	stmt = conn.createStatement();
	rset = stmt.executeQuery(sql);
	
	while(rset.next())
	{
		custno = rset.getString(1);
	}
	
	rset.close();
	stmt.close();
	conn.close();
}

catch(Exception e)
{
	System.out.println("[Error] " + e.getMessage());
	e.printStackTrace();
}
%>
			
			<form method="post" id="frm_register" name="frmRegister">
				<table border="1" style="width: 550px">
					<tr>
						<th>νšŒμ›λ²ˆν˜Έ(μžλ™λ°œμƒ)</th>
						<td><input type="text" value=<%= custno %> readonly name="custno"></td>
					</tr>
					<tr>
						<th>νšŒμ›μ„±λͺ…</th>
						<td><input type="text" id="custname" name="custname"></td>
					</tr>
					<tr>
						<th>νšŒμ›μ „ν™”</th>
						<td><input type="text" id="phone" name="phone"></td>
					</tr>
					<tr>
						<th>νšŒμ›μ£Όμ†Œ</th>
						<td><input type="text" id="address" name="address"></td>
					</tr>
					<tr>
						<th>κ°€μž…μΌμž</th>
						<td><input type="text" id="joindate" name="joindate"></td>
					</tr>
					<tr>
						<th>고객등급[A:VIP, B:일반, C:직원]</th>
						<td><input type="text" id="grade" name="grade"></td>
					</tr>
					<tr>
						<th>λ„μ‹œμ½”λ“œ</th>
						<td><input type="text" id="city" name="city"></td>
					</tr>
				</table>
			</form>
			
			<table border="1" style="width: 550px">
				<tr>
					<td>
						<input type="button" id="btn_register" value="등둝"> 
						<input type="button" id="btn_inquiry" value="쑰회">
					</td>
				</tr>
			</table>
		</div>
	</section>
	
	<footer>
		<div>
			<h4>HRDKOREA Copyright@2016 All rights reserved. Human Resources Development Service of Korea</h4>
		</div>
	</footer>
	
	<iframe name="hiddenframe" style="display: none"></iframe>
<script>
(function(){
	const btnRegister = document.querySelector("#btn_register");
	const btnInquiry = document.querySelector("#btn_inquiry");
	
	const frmRegister = document.querySelector("#frm_register");
	
	const objsArr = [
		{elem: document.querySelector("#custname"), size: 20, blankMsg: "νšŒμ›μ„±λͺ…이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "νšŒμ›μ„±λͺ…이 μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."},
		{elem: document.querySelector("#phone"), size: 13, blankMsg: "νšŒμ›μ „ν™”κ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "νšŒμ›μ „ν™”κ°€ μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."},
		{elem: document.querySelector("#address"), size: 60, blankMsg: "μ£Όμ†Œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "μ£Όμ†Œκ°€ μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."},
		{elem: document.querySelector("#joindate"), size: 10, blankMsg: "κ°€μž…μΌμžκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "κ°€μž…μΌμžκ°€ μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."},
		{elem: document.querySelector("#grade"), size: 1, blankMsg: "고객등급이 μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "고객등급이 μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."},
		{elem: document.querySelector("#city"), size: 2, blankMsg: "κ±°μ£Όλ„μ‹œκ°€ μž…λ ₯λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.", validMsg: "κ±°μ£Όλ„μ‹œκ°€ μ˜¬λ°”λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."}
	];
	
	const checkBlank = function()
	{
		let result = true;
		
		for(let i = 0; i < objsArr.length; i++)
		{
			if(objsArr[i].elem.value.length === 0) return i;
		}
		return result;
	}
	
	const checkValid = function()
	{
		let result = true;
		
		for(let i = 0; i < objsArr.length; i++)
		{
			if(objsArr[i].elem.value.length > objsArr[i].size) return i;
		}
		
		if(isNaN(objsArr[3].elem.value.replaceAll("-", "")) === true) return 3;
		
		if(isNaN(objsArr[4].elem.value) === false) return 4;
		
		if(isNaN(objsArr[5].elem.value) === true) return 5;
		
		return result;
	}
	
	btnRegister.addEventListener("click", function()
	{
		let res = checkBlank();
		
		if(res !== true)
		{
			alert(objsArr[res].blankMsg);
			objsArr[res].elem.focus();
			return;
		}
		
		res = checkValid();
		
		if(res !== true)
		{
			alert(objsArr[res].validMsg);
			objsArr[res].elem.focus();
			return;
		}
		
		frmRegister.action = "member.jsp";
		frmRegister.target = "hiddenframe";
		frmRegister.submit();
	});
	
	btnInquiry.addEventListener("click", function(){
		location.href = "./inquiry.jsp";
	});
})();
</script>
</body>
</html>

 

• member.jsp

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

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>

<%@ page import="DBPKG.DBConnection" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DB νšŒμ›λ“±λ‘</title>
</head>
<body>
<%
Connection conn = null;
Statement stmt = null;

request.setCharacterEncoding("UTF-8");

String custno = request.getParameter("custno");
String custname = request.getParameter("custname");
String phone = request.getParameter("phone");
String address = request.getParameter("address");
String joindate = request.getParameter("joindate");
String grade = request.getParameter("grade");
String city = request.getParameter("city");

joindate = joindate.replaceAll("-", "");

String sql = "insert into member_tbl_02 values (" +
					  custno + ", " + 
				"'" + custname + "', " +
				"'" + phone + "', " +
				"'" + address + "', " +
		"to_date('" + joindate + "', 'YYYYMMDD'), " +
				"'" + grade + "', " +
				"'" + city + "')";
int result = 0;

try
{
	conn = DBConnection.getConnection();
	stmt = conn.createStatement();
	
	result = stmt.executeUpdate(sql);
	
	if(conn.getAutoCommit() == false) conn.commit();
	
	stmt.close();
	conn.close();
}

catch(Exception e)
{
	System.out.println("[Error] " + e.getMessage());
	e.printStackTrace();
}

finally
{
	out.println("<h1>" + result + "</h1>");
}
%>

<script>
(function(){
	const h1Elem = document.querySelector("h1");
	
	if(h1Elem.textContent === "1")
	{
		alert("νšŒμ›λ“±λ‘μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.");	
	}
	else
	{
		alert("νšŒμ›λ“±λ‘μ΄ μ§„ν–‰λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.");
	}
	
	parent.location.reload();
})();
</script>
</body>
</html>

member.jspλŠ” register.jspν™”λ©΄μ—μ„œ λ“±λ‘λ²„νŠΌμ„ λˆŒλ €μ„λ•Œ SQLλ¬Έ λͺ…령이 μ „μ†‘λ˜μ–΄ DB에 데이터가 좔가될 수 μžˆλ„λ‘ ν•˜λŠ” ν™”λ©΄μœΌλ‘œ register.jsp에 ifram νƒœκ·Έλ₯Ό λ§Œλ“€μ–΄ ν•΄λ‹Ή νƒœκ·Έμ•ˆμ— 정보가 λ“€μ–΄κ°€λ˜ μˆ¨κΉ€μ²˜λ¦¬κ°€ λ˜μ–΄ λ§€λ„λŸ½κ²Œ μ§„ν–‰λ μˆ˜ μžˆλ„λ‘ λ§Œλ“€μ—ˆλ‹€.

 

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€