๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ๋ฐฐ์šฐ๊ณ  ์ตํžˆ๊ธฐ +/Web

(76)[Web]12์ผ์ฐจ: ((JSP))F_WebApp07, F_WebApp08, F_WebApp09

by ์ข…์ด๋นจ๋Œ€ 2023. 12. 12.
TOP

๋ชฉ์ฐจ

    1. 2023.12.12(ํ™”)

    F_WebApp07

    ใ„ด C:\WebStudy\WebApp07\WebContent

    [โ–  ํฌ์›Œ๋”ฉ / ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ด€๋ จ ์ค‘์š”ํ•œ ์‹ค์Šต(forward ์ฒ˜๋ฆฌ) โ– ]

    ใ„ดใ„ดSend10.jsp_์‚ฌ์šฉ์ž ์ตœ์ดˆ ์š”์ฒญ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Send10.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์‹ค์Šต 10</h1>
    	<hr>
    </div>
    
    <!-- โ– โ– โ–  ํฌ์›Œ๋”ฉ / ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ด€๋ จ ์ค‘์š”ํ•œ ์‹ค์Šต โ– โ– โ–  -->
    
    <!-- โ‘  ์‚ฌ์šฉ์ž ์ตœ์ดˆ ์š”์ฒญ ํŽ˜์ด์ง€ -->
    <!-- 	์‚ฌ์น™ ์—ฐ์‚ฐ ์ˆ˜ํ–‰์„ ์œ„ํ•œ ์ •์ˆ˜ ์ž…๋ ฅ ํŽ˜์ด์ง€ ๊ตฌ์„ฑ -->
    <!-- 	์—ฐ์‚ฐ์ž๋ฅผ ํ•จ๊ป˜ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ -->
    <!-- 	์ •์ˆ˜1/ ์ •์ˆ˜2/ ์—ฐ์‚ฐ์ž -->
    <!-- 	http://localhost:3306/WebApp07/Send10.jsp -->
    
    <!-- โ‘ก ์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€ -->
    <!-- 	์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋งŒ ์กด์žฌ (+ jsp:forward ์•ก์…˜ ํƒœ๊ทธ) -->
    <!-- 	-> ์ถ”ํ›„ ์ด ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝ์ ์ธ java๋กœ ๋ถ„๋ฆฌ -> Servlet์œผ๋กœ ๊ตฌ์„ฑํ•  ์˜ˆ์ • -->
    <!-- 	http://localhost:3306/WebApp07/Forward10.jsp -->
    
    <!-- โ‘ข ์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ ํŽ˜์ด์ง€ -->
    <!-- 	์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์™€ ๋Œ€๋ฉดํ•  ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ -->
    <!-- 	-> ์ถ”ํ›„ ์ด ํŽ˜์ด์ง€๋Š” jsp view ํŽ˜์ด์ง€์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์˜ˆ์ • -->
    <!-- 	http://localhost:336/WebApp07/Receive10.jsp -->
    
    <div class="layout">
    	<!-- JSP ์•ก์…˜ ํƒœ๊ทธ ํ™œ์šฉํ•˜์—ฌ forward ์ฒ˜๋ฆฌํ•˜๋Š” ํŽ˜์ด์ง€๋กœ...  -->
    	<!-- <form action="Forward10.jsp" method="post"> -->
    
    	<!-- JSP ์•ก์…˜ ํƒœ๊ทธ ์—†์ด forward ์ฒ˜๋ฆฌํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ... -->
    	<form action="Forward10_1.jsp" method="post">
    		<div>
    			์ •์ˆ˜1
    			<input type="text" name="num1" class="txt" style="width: 60px;">
    			
    			<select name="calResult">
    				<option selected="selected">์—ฐ์‚ฐ์„ ํƒ</option>
    				<option value="1">๋”ํ•˜๊ธฐ</option>
    				<option value="2">๋นผ๊ธฐ</option>
    				<option value="3">๊ณฑํ•˜๊ธฐ</option>
    				<option value="4">๋‚˜๋ˆ„๊ธฐ</option>
    			</select>
    			์ •์ˆ˜2
    			<input type="text" name="num2" class="txt" style="width: 60px;">
    			
    			<button type="submit" class="btn control">ํ™•์ธ</button>
    		</div>
    	</form>
    </div>
    
    </body>
    </html>

    ใ„ดใ„ดForward10.jsp_์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	// Forward10.jsp
    	
    	// ์ด์ „ ํŽ˜์ด์ง€(Send10.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
    	// -> num1, calResult, num2
    	
    	String num1Str = request.getParameter("num1");
    	String num2Str = request.getParameter("num2");
    	String calResult = request.getParameter("calResult");
    	
    	int num1 = 0;
    	int num2 = 0;
    	String result = "";
    	
    	try
    	{
    		num1 = Integer.parseInt(num1Str);
    		num2 = Integer.parseInt(num2Str);
    		
    		if(calResult.equals("1"))		// ๋”ํ•˜๊ธฐ
    			result = String.format("%d + %d = %d", num1, num2, (num1+num2));
    		else if (calResult.equals("2")) // ๋นผ๊ธฐ
    			result = String.format("%d - %d = %d", num1, num2, (num1-num2));
    		else if (calResult.equals("3"))	// ๊ณฑํ•˜๊ธฐ
    			result = String.format("%d * %d = %d", num1, num2, (num1*num2));
    		else if (calResult.equals("4"))	// ๋‚˜๋ˆ„๊ธฐ
    			result = String.format("%d / %d = %.1f", num1, num2, (num1/num2));
    	}
    	catch(Exception e)
    	{
    		System.out.println(e.toString());
    	}
    	// ์š”์ฒญ์— ๋‚ด์šฉ ์ถ”๊ฐ€
    	request.setAttribute("resultStr", result);
    	// **ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์—๋Š” ์š”์ฒญํ•œ ๋‚ด์šฉ ๋ฟ ์•„๋‹ˆ๋ผ get ํ•œ ๋ชจ๋“  ๋‚ด์šฉ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ**
    	// **๋งต ์ž๋ฃŒ๊ตฌ์กฐ. ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ด**
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Forward10.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <!-- JSP ์•ก์…˜ ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•œ forward ์ฒ˜๋ฆฌ -->
    <jsp:forward page="Receive10.jsp"></jsp:forward>
    
    </body>
    </html>

    ใ„ดใ„ดForward10_1.jsp_์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>	<!-- **JSP๋ผ๋Š” ์ •์ฒด์„ฑ. ์ง€์šฐ๋ฉด ์•ˆ๋จ** -->
    <%
    	// Forward10.jsp
    	
    	// ์ด์ „ ํŽ˜์ด์ง€(Send10.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
    	// -> num1, calResult, num2
    	
    	String num1Str = request.getParameter("num1");
    	String num2Str = request.getParameter("num2");
    	String calResult = request.getParameter("calResult");
    	
    	int num1 = 0;
    	int num2 = 0;
    	String result = "";
    	
    	try
    	{
    		num1 = Integer.parseInt(num1Str);
    		num2 = Integer.parseInt(num2Str);
    		
    		if(calResult.equals("1"))		// ๋”ํ•˜๊ธฐ
    			result = String.format("%d + %d = %d", num1, num2, (num1+num2));
    		else if (calResult.equals("2")) // ๋นผ๊ธฐ
    			result = String.format("%d - %d = %d", num1, num2, (num1-num2));
    		else if (calResult.equals("3"))	// ๊ณฑํ•˜๊ธฐ
    			result = String.format("%d * %d = %d", num1, num2, (num1*num2));
    		else if (calResult.equals("4"))	// ๋‚˜๋ˆ„๊ธฐ
    			result = String.format("%d / %d = %.1f", num1, num2, (num1/num2));
    	}
    	catch(Exception e)
    	{
    		System.out.println(e.toString());
    	}
    	// ์š”์ฒญ์— ๋‚ด์šฉ ์ถ”๊ฐ€
    	request.setAttribute("resultStr", result);
    	// **ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์—๋Š” ์š”์ฒญํ•œ ๋‚ด์šฉ ๋ฟ ์•„๋‹ˆ๋ผ get ํ•œ ๋ชจ๋“  ๋‚ด์šฉ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ**
    	// **๋งต ์ž๋ฃŒ๊ตฌ์กฐ. ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ด**
    	
    	// check~!!!
    	RequestDispatcher dispatcher = request.getRequestDispatcher("Receive10.jsp");
    	dispatcher.forward(request,response);
    	
    	/* ==========================================================================
    	โ– โ– โ–  ใ€ŽRequestDispatcherใ€ ์ธํ„ฐํŽ˜์ด์Šค โ– โ– โ– 
    	// **์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์“ฐ๋Š” ๋„๊ตฌ**
    	
    	โ€ป ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ใ€Žforward()ใ€์™€ ใ€Žinclude()ใ€ ๋งŒ ์žˆ๋‹ค.  
    	
    	โ€ป ์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๊ฐœ๋…  
    	
    		์ผ๋ฐ˜์ ์œผ๋กœ HttpSevlet ์„ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค... ์„œ๋ธ”๋ฆฟ  
    		
    		์ด๋ ‡๊ฒŒ ์ž‘์„ฑ๋œ ํด๋ž˜์Šค ๋‚ด๋ถ€์—๋Š”  
    		์‹ค์ œ ์š”์ฒญ์„ ์„œ๋น„์Šค ํ•˜๋Š” ใ€ŽdoGet()ใ€๊ณผ ใ€ŽdoPost()ใ€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ (service()๋ฉ”์†Œ๋“œ๊ฐ€ ์ด๋“ค์˜ ์ƒ์œ„ ๋ฉ”์†Œ๋“œ)  
    		
    		**SevletConatiner** ๋Š” **ใ€ŽHttpSevletใ€์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ**ํ•˜๊ณ 	**ใ€Žinit()ใ€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰**ํ•ด์ฃผ๊ณ ,  
    		์ด ๋ฉ”์†Œ๋“œ์— ์˜ํ•ด ๋งคํ•‘๋œ URL์— (ํŽ˜์ด์ง€ ์š”์ฒญ ๋ฐฉ์‹์— ๋”ฐ๋ผ) **doGet()๊ณผ doPost() ์ค‘ ์„ ํƒํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ**ํ•ด์ฃผ๊ณ (์‹คํ–‰์‹œ์ผœ์ฃผ๊ณ )  
    		Container ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ **ใ€Ždistroy()ใ€ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ**ํ•ด์ฃผ๊ณ , ๊ด€๋ จ๋œ ์ฒ˜๋ฆฌ ๊ณผ์ •์ด ๋งˆ๋ฌด๋ฆฌ ๋œ๋‹ค.  
    		
    		์ฆ‰, SevletConatiner ๊ฐ€  
    		inint()		-> ์ฒ˜์Œ  
    		seveice()	-> ์ค‘๊ฐ„์ค‘๊ฐ„ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค  
    		destroy()	-> ๋งˆ์ง€๋ง‰  
    		๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.(์ ˆ๋Œ€ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค~!!!)  
    		
    		๊ฒฐ๊ตญ ใ€ŽHttpSevletใ€์€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์ƒ์„ฑ๋˜์–ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.  
    		// **์Šค๋ ˆ๋“œ: ํ•˜๋‚˜์˜ ์ž‘์—…๋‹จ์œ„,**   
    		// **๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ: ์ฒ˜์Œ์— ์—ฐ์‚ฌ๋žŒA, ๋‹ค์Œ์‚ฌ๋žŒ์ด ์—ด๊ณ  ์ˆ˜์ •B, A๊ฐ€ ๋‹ซ์œผ๋ฉด ์ˆœ์„œ๊ฐ€ ๊ผฌ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด ๋ฌด๊ฒฐ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š๋Š”๊ฒŒ ์ค‘์š”**  
    		// **ใ„ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์„ธ์ดํ”„ํ‹ฐ vs. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์–ธ์„ธ์ดํ”„ํ‹ฐ**		
    		
    		์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ๋˜๋Š” ใ€ŽHttpSevletใ€์˜ ์ƒ์†๋œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์„ค๊ณ„(์Šค๋ ˆ๋“œ ์„ธ์ดํ”„ํ‹ฐ)๋˜์–ด์•ผ ํ•˜๊ณ   
    		๋”ฐ๋ผ์„œ ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์„ค๊ณ„๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ƒ์œ„ ํด๋ž˜์Šค๋ฅผ ๋งˆ๊ตฌ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜์–ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.  
    		
    		์ด์™€ ๊ฐ™์€ ์ด์œ ๋กœ ํ™˜๊ฒฝ ์„ค์ •์ด๋‚˜ J2EE ์„œ๋น„์Šค์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ใ€ŽServletContextใ€ ์—์„œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.  
    		(โ€ป ServeletContext : ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•œ ํ™˜๊ฒฝ, ์ƒํƒœ ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด)  
    		์ด ใ€ŽServeletContextใ€๋Š” ใ€ŽgetServletContext()ใ€๋กœ๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.  
    		๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด ใ€ŽgetServletContext()ใ€๋Š” ๋™๊ธฐํ™”๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.  
    		๊ทธ ์ด์œ ๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์„ค๊ณ„(์„ธ์ดํ”„ํ‹ฐ)๋˜์–ด ์žˆ์–ด์•ผ  
    		์šฐ๋ฆฌ๊ฐ€ ใ€ŽServeltContextใ€์˜ ใ€ŽsetAttribute()ใ€๋‚˜ ใ€ŽgetAttribute()ใ€๋ฅผ ์Šค๋ ˆ๋“œ ๊ฑฑ์ •์—†์ด ๋งˆ์Œ๋Œ€๋กœ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  
    		
    		ใ€ŽSevletContextใ€์˜ ๋˜ ๋‹ค๋ฅธ ์ปค๋‹ค๋ž€ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š”  
    		๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ฑฐ๋‚˜ ์„œ๋ธ”๋ฆฟ ํ™˜๊ฒฝ ์„ค์ •๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.  
    		
    		**ใ€ŽRequestDispatcherใ€** ์—ญ์‹œ ๊ทธ ๊ธฐ๋Šฅ ์ค‘์˜ ํ•˜๋‚˜์ด๋‹ค.  
    		์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋กœ๋Š”... ์š”์ฒญ์„ ์ œ๊ณตํ•˜๋Š” **๋„๊ตฌ**. ์ฆ‰, ์š”์ฒญ์„ ๋ณด๋‚ด์ฃผ๋Š” **์ธํ„ฐํŽ˜์ด์Šค**์ด๋‹ค.  
    		
    		ํ˜„์žฌ... ์š”์ฒญ์„ ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ(ํ˜น์€ JSP)์œผ๋กœ ๋ณด๋‚ด์•ผํ•˜๋Š” ์ƒํ™ฉ.  
    		๊ทธ๋Ÿฐ๋ฐ, ์œ„์— ์–ธ๊ธ‰ํ•œ ๋ฐ”์™€ ๊ฐ™์ด ์„œ๋ธ”๋ฆฟ์˜ ์ธ์Šคํ„ด์Šค๋Š” ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๊ณ  ์ด๊ฒƒ์ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋‹ค.  
    		
    		๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ์„œ๋ธ”๋ฆฟ์„ ๊ทธ ์„œ๋ธ”๋ฆฟ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฑฐ์‚ฐ์œผ๋กœ๋Š” ์•ˆ๋˜๊ณ   
    		์ด๋ฏธ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ์„œ๋ธ”๋ฆฟ ์ธ์Šคํ„ด์Šค์˜ ์Šค๋ ˆ๋“œ๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.  
    		์ด๊ฒƒ์€ ์„œ๋ธ”๋ฆฟ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์˜์—ญ์„ ๋ฒ—์–ด๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ผ์€ ใ€ŽDispatcherใ€๊ฐ€ ๋Œ€์‹  ์ˆ˜ํ–‰ํ•ด ์ค€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.  
    		
    		ํ•˜์ง€๋งŒ ์ด ใ€ŽDispatcherใ€๋Š”  
    		ใ€ŽHttpServletRequestใ€,ใ€ŽHttpSevletResponseใ€๋ฅผ ์ƒ์„ฑํ•ด ์ค„ ์ˆ˜ ์—†๋‹ค.  
    		๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ใ€ŽDispatcherใ€๊ฐ€ ์ƒ์„ฑํ•ด์ค€ ์ƒˆ๋กœ์šด ์„œ๋ธ”๋ฆฟ ์Šค๋ ˆ๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ์œ„ํ•ด ใ€ŽdoGet()ใ€์ด๋‚˜ ใ€ŽdoPost()ใ€๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.
    		
    		์ด์™€ ๊ฐ™์€ ์ด์œ ๋กœ ใ€Ždispatcher.forward(request, response);ใ€๊ตฌ๋ฌธ์„ ํ†ตํ•ด request ์™€ response ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
    		
    		
    	============================================================================= */
    	
    %>

    ใ„ดใ„ดReceive10.jsp_์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	// ์ด์ „ ํŽ˜์ด์ง€(Forward10.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
    	// -> resultStr
    	
    	// **setAttribute ํ•œ ๋‚ด์šฉ์€ ๋ฌด์กฐ๊ฑด getAttribute ํ•œ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๋‹ด์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Object ํ˜•**
    	String result = (String)request.getAttribute("resultStr");	// ๋‹ค์šด์บ์ŠคํŒ…
    	
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Receive10.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์‹ค์Šต 10</h1>
    	<hr>
    </div>
    
    <div>
    	<!-- <h2>์—ฐ์‚ฐ ๊ฒฐ๊ณผ: 235</h2> -->
    	<h2>์—ฐ์‚ฐ ๊ฒฐ๊ณผ: <%=result %></h2>
    </div>
    
    </body>
    </html>

    [โ–  ํฌ์›Œ๋”ฉ / ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ด€๋ จ ์ค‘์š”ํ•œ ์‹ค์Šต( redirect ์ฒ˜๋ฆฌ)โ– ]

    ใ„ดใ„ดSend11.jps_์‚ฌ์šฉ์ž ์ตœ์ดˆ ์š”์ฒญ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Send11.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์‹ค์Šต 11</h1>
    	<hr>
    </div>
    
    <!-- โ– โ– โ–  ํฌ์›Œ๋”ฉ / ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๊ด€๋ จ ์ค‘์š”ํ•œ ์‹ค์Šต โ– โ– โ–  -->
    
    <!-- โ‘  ์‚ฌ์šฉ์ž ์ตœ์ดˆ ์š”์ฒญ ํŽ˜์ด์ง€ -->
    <!-- 	์‚ฌ์น™ ์—ฐ์‚ฐ ์ˆ˜ํ–‰์„ ์œ„ํ•œ ์ •์ˆ˜ ์ž…๋ ฅ ํŽ˜์ด์ง€ ๊ตฌ์„ฑ -->
    <!-- 	์—ฐ์‚ฐ์ž๋ฅผ ํ•จ๊ป˜ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ -->
    <!-- 	์ •์ˆ˜1/ ์ •์ˆ˜2/ ์—ฐ์‚ฐ์ž -->
    <!-- 	http://localhost:3306/WebApp07/Send11.jsp -->
    
    <!-- โ‘ก ์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€ -->
    <!-- 	์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋งŒ ์กด์žฌ (response.sendRedirect() ๋ฉ”์†Œ๋“œ ํฌํ•จ) -->
    <!-- 	-> ์ถ”ํ›„ ์ด ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝ์ ์ธ java๋กœ ๋ถ„๋ฆฌ -> Servlet์œผ๋กœ ๊ตฌ์„ฑํ•  ์˜ˆ์ • -->
    <!-- 	http://localhost:3306/WebApp07/Forward11.jsp -->
    
    <!-- โ‘ข ์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ ํŽ˜์ด์ง€ -->
    <!-- 	์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€์—์„œ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋„˜๊ฒจ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ์™€ ๋Œ€๋ฉดํ•  ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ -->
    <!-- 	-> ์ถ”ํ›„ ์ด ํŽ˜์ด์ง€๋Š” jsp view ํŽ˜์ด์ง€์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์˜ˆ์ • -->
    <!-- 	http://localhost:336/WebApp07/Receive11.jsp -->
    
    <div class="layout">
    
    	<!-- redirect ์ฒ˜๋ฆฌํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ... -->
    	<form action="Forward11.jsp" method="post">
    		<div>
    			์ •์ˆ˜1
    			<input type="text" name="num1" class="txt" style="width: 60px;">
    			
    			<select name="calResult">
    				<option selected="selected">์—ฐ์‚ฐ์„ ํƒ</option>
    				<option value="1">๋”ํ•˜๊ธฐ</option>
    				<option value="2">๋นผ๊ธฐ</option>
    				<option value="3">๊ณฑํ•˜๊ธฐ</option>
    				<option value="4">๋‚˜๋ˆ„๊ธฐ</option>
    			</select>
    			์ •์ˆ˜2
    			<input type="text" name="num2" class="txt" style="width: 60px;">
    			
    			<button type="submit" class="btn control">ํ™•์ธ</button>
    		</div>
    	</form>
    </div>
    
    </body>
    </html>

    ใ„ดใ„ดForward11.js_์—ฐ์‚ฐ ์ „์šฉ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	// Redirect11.jsp
    	
    	// ์ด์ „ ํŽ˜์ด์ง€(Send11.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
    	// 	-> num1, calResult, num2
    	int num1 = Integer.parseInt(request.getParameter("num1"));
    	int num2 = Integer.parseInt(request.getParameter("num2"));
    	String op = request.getParameter("calResult");
    	
    	// ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ
    	String str ="";
    	if (op.equals("1"))
    		str += String.format("%d", (num1+num2));
    	else if(op.equals("2"))
    		str += String.format("%d", (num1-num2));
    	else if(op.equals("3"))
    		str += String.format("%d", (num1*num2));
    	else if(op.equals("4"))
    		str += String.format("%.1f", (num1/(double)num2));
    	
    	// check~!!!
    	// ์‚ฌ์šฉ์ž์—๊ฒŒ ์š”์ฒญํ•  ํŽ˜์ด์ง€๋ฅผ ์•ˆ๋‚ด
    	//response.sendRedirect("Receive11.jsp");
    	
    	// check~!!!
    	// ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ์žฌ์ „์†ก -> sendRedirect() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ
    	// โ€ป response ๊ฐ์ฒด์˜ ์ค‘์š” ๋ฉ”์†Œ๋“œ ์ค‘ ํ•˜๋‚˜์ธ 
    	// ใ€ŽsendRedirect(String location)ใ€: ์ง€์ •๋œ URL(location)๋กœ ์š”์ฒญ์„ ์žฌ์ „์†กํ•œ๋‹ค.
    	//		์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ํ•ด๋‹น ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‚ดํ•œ๋‹ค.
    	response.sendRedirect("Receive11.jsp?num1="+num1+"&num2="+num2+"&op="+op+"&str="+str);
    	//-- ํด๋ผ์ด์–ธํŠธ์— Receive11.jsp ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ด~!!!
    	//	์ด์— ๋”ํ•˜์—ฌ... get ๋ฐฉ์‹์˜ ์š”์ฒญ URL ๊ตฌ์„ฑ์„ ํ†ตํ•ด ๋„˜๊ธธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ~!!!
    	
    %>

    ใ„ดใ„ดReceive11.jsp_์ตœ์ข… ๊ฒฐ๊ณผ ์ถœ๋ ฅ ํŽ˜์ด์ง€

    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	// ์ด์ „ ํŽ˜์ด์ง€(Redirect11.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ์™€ ์ˆ˜์‹ 
    	// ใ€ŽReceive11.jsp?num1=27&num2=27&op=4&str1.0ใ€์™€ ๊ฐ™์€ ํ˜•ํƒœ~!!! check~!!!
    	//-- ์ง์ ‘ Redirect11.jsp ๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
    	//	ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋„˜๊ธด ๊ฐ’์„ ์ˆ˜์‹ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฐœ๋…~!!! check~!!!
    	
    	String num1 = request.getParameter("num1");
    	String num2 = request.getParameter("num2");
    	String op = request.getParameter("op");
    	String str = request.getParameter("str");
    	
    	if(op.equals("1"))
    		op = "+";
    	else if(op.equals("2"))
    		op = "-";
    	else if(op.equals("3"))
    		op = "*";
    	else if(op.equals("4"))
    		op = "/";
    	
    	String strResult = String.format("%s %s %s = %s", num1, op, num2, str);
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Receive11.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ์‹ค์Šต 11</h1>
    	<hr>
    </div>
    
    <div>
    	<!-- <h2>์—ฐ์‚ฐ ๊ฒฐ๊ณผ: 223</h2> -->
    	<h2>์—ฐ์‚ฐ ๊ฒฐ๊ณผ: <%=strResult %></h2>
    </div>
    
    </body>
    </html>

    F_WebApp08

    ใ„ดC:WebStudy/WebApp08/WebContent/Test001.jsp

     

    [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹ค์Šต]

    ใ„ดใ„ดTest001.jsp_ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹ค์Šต

    <%@page import="java.sql.Connection"%>
    <%@page import="com.util.DBConn"%>
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	String str = "";
    
    	try
    	{
    		Connection conn = DBConn.getConnection();
    		
    		if(conn != null)
    			str += "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ฑ๊ณต~!!!";
    	}
    	catch(Exception e)
    	{
    		//System.out.println(e.toString());
    		
    		str += e.toString();
    	}
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Test001.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body class="section">
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹ค์Šต</h1>
    	<hr>
    </div>
    
    <div>
    	<!-- <h2>ํ™•์ธ๊ฒฐ๊ณผ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ฑ๊ณต~!!!</h2> -->
    	<h2>ํ™•์ธ๊ฒฐ๊ณผ : <%=str %></h2>
    </div>
    
    </body>
    </html>

    [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ]

    ใ„ดใ„ด WebApp08_scott.sql

    SELECT USER
    FROM DUAL;
    --==>> SCOTT
    
    SELECT *
    FROM TAB;
    
    
    -- ํœด์ง€ํ†ต ๋น„์šฐ๊ธฐ
    PURGE RECYCLEBIN;
    --==>> RECYCLEBIN์ด(๊ฐ€) ๋น„์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
    
    SELECT *
    FROM TAB;
    
    -- ๊ธฐ์กด ํ…Œ์ด๋ธ” ์ œ๊ฑฐ
    DROP TABLE TBL_MEMBER;
    --==>> Table TBL_MEMBER์ด(๊ฐ€) ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    --------------------------------------------------------------------------------
    
    --โ—‹ ์‹ค์Šต ํ…Œ์ด๋ธ” ์ƒ์„ฑ(TBL_MEMVER)
    CREATE TABLE TBL_MEMBER
    ( SID NUMBER
    , NAME  VARCHAR2(30)
    , TEL   VARCHAR2(40)
    , CONSTRAINT MEMBER_SID_PK PRIMARY KEY(SID)
    );
    --==>> Table TBL_MEMEBER์ด(๊ฐ€) ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ์‹œํ€€์Šค ์ƒ์„ฑ (MEMBERSEQ)
    CREATE SEQUENCE MEMBERSEQ
    NOCACHE;
    --==>> Sequence MEMBERSEQ์ด(๊ฐ€) ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์„ฑ
    INSERT INTO TBL_MEMBER(SID,NAME, TEL)
    VALUES(MEMBERSEQ.NEXTVAL, '๋ฌธ์ •ํ™˜', '010-1111-1111');
    --> ํ•œ์ค„๊ตฌ์„ฑ
    INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๋ฌธ์ •ํ™˜', '010-1111-1111')
    ;
    
    --โ—‹ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์ž…๋ ฅ
    INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '์ •ํ•œ์šธ', '010-2222-2222')
    ;
    INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '์ตœํ˜œ์ธ', '010-3333-3333')
    ;
    INSERT INTO TBL_MEMBER(SID, NAME, TEL) VALUES(MEMBERSEQ.NEXTVAL, '๊ธธํ˜„์šฑ', '010-4444-4444')
    ;
    
    
    --โ—‹ ํ…Œ์ด๋ธ” ์ „์ฒด ์กฐํšŒ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์„ฑ(๋ฆฌ์ŠคํŠธ ํ™•์ธ)
    SELECT SID, NAME, TEL
    FROM TBL_MEMBER
    ORDER BY SID;
    --> ํ•œ์ค„ ๊ตฌ์„ฑ
    SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID
    ;
    --==>>
    /*
    1	๋ฌธ์ •ํ™˜	010-1111-1111
    2	์ •ํ•œ์šธ	010-2222-2222
    3	์ตœํ˜œ์ธ	010-3333-3333
    4	๊ธธํ˜„์šฑ	010-4444-4444
    */
    
    --โ—‹ ์ธ์› ์ˆ˜ ํ™•์ธ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์„ฑ
    SELECT COUNT(*) AS COUNT
    FROM TBL_MEMBER;
    --> ํ•œ์ค„ ๊ตฌ์„ฑ
    SELECT COUNT(*) AS COUNT FROM TBL_MEMBER
    ;
    --==>> 4
    
    --โ—‹ ์ปค๋ฐ‹
    COMMIT;
    --==>> ์ปค๋ฐ‹ ์™„๋ฃŒ.

    ใ„ดใ„ดTest002.jsp_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

    <%@page import="java.sql.ResultSet"%>
    <%@page import="java.sql.Statement"%>
    <%@page import="com.util.DBConn"%>
    <%@page import="java.sql.Connection"%>
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	/* **ํ˜„์žฌ๋Š” String์„ ์“ฐ์ง€๋งŒ, ๋‚˜์ค‘์—๋Š” String Buffer๋‚˜, Stringbuilder ์จ์•ผํ•จ** */
    
    	// ๊ฒฐ๊ณผ๊ฐ’ ๋ณ€์ˆ˜
    	String str ="";
    
    	// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
    	Connection conn = DBConn.getConnection();
    	
    	// ์ฟผ๋ฆฌ๋ฌธ ์ค€๋น„(select)
    	String sql = "SELECT SID, NAME, TEL FROM TBL_MEMBER ORDER BY SID";
    	
    	// ์ž‘์—… ๊ฐ์ฒด ์‹คํ–‰ ๋ฐ ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰
    	Statement stmt = conn.createStatement();
    	
    	ResultSet rs  = stmt.executeQuery(sql);
    	
    	// ๊ฒฐ๊ณผ ResultSet ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ -> ๋ฐ˜๋ณต๋ฌธ ๊ตฌ์„ฑ
    	str += "<table class ='table' style='width: 100%;'>";
    	str += "<tr>";
    	str += "<th id='numTitle'>๋ฒˆํ˜ธ</th>";
    	str += "<th id='nameTitle'>์ด๋ฆ„</th>";
    	str += "<th id='telTitle'>์ „ํ™”๋ฒˆํ˜ธ</th>";
    	str += "</tr>";
    	
    	while(rs.next())
    	{
    		str += "<tr>";
    		str += "<td>"+rs.getString("SID")+"</td>";
    		str += "<td>"+rs.getString("NAME")+"</td>";
    		str += "<td>"+rs.getString("TEL")+"</td>";
    		str += "</tr>";
    			
    	}
    	str += "</table>";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Test002.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <style type="text/css">
    	input {width: 200px;}
    	button {width: 208px; height: 50px; font-weight: bold;}
    	#numTitle {width: 50px;}
    	#nameTitle {width: 100px;}
    	#telTitle {width: 160px;}
    	.errMsg {font-weight: small; color: red;}
    	.table tr:not(first-child){text-align: center;}
    </style>
    
    </head>
    <body class="section">
    
    <script type="text/javascript">
    // ํ•„์ˆ˜ ์ž…๋ ฅ ํ•ญ๋ชฉ (-> ์ด๋ฆ„)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ž…๋ ฅ ํ™”๋ฉด
    function formCheck()
    {
    	//alert('ํ•จ์ˆ˜ ํ˜ธ์ถœ~!!!');
    	
    	var uName = document.getElementById("userName");
    	var uErr = document.getElementBId("nameErr");
    	
    	nameErr.style.display = "none";
    	
    	if(uName.value=="")
    	{
    		nameErr.style.display="inline";
    		return false;
    	}
    	
    	return false;
    }
    </script>
    
    <div>
    	<h1>๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ</h1>
    	<hr>
    </div>
    
    <div class="layout">
    	<!-- ๋ฐ์ดํ„ฐ ์ž…๋ ฅ -->
    	<form class="_box" action="MemberInsert.jsp" method="post" onsubmit="return formCheck()">
    		<table style="background:white;">
    			<tr>
    				<th>์ด๋ฆ„(*)</th>
    				<td>
    					<input type="text" id="userName" name="userName" class="txt">
    					<span class="errMsg" id="nameErr">์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.</span>	
    				</td>
    			</tr>
    			<tr>
    				<th>์ „ํ™”๋ฒˆํ˜ธ</th>
    				<td><input type="text" id="userTel" name="userTel" class="txt"></td>
    			</tr>
    			<tr>
    				<th></th>
    				<td><button type="submit" id="btnAdd" class="btn control">๋ฐ์ดํ„ฐ ์ถ”๊ฐ€</button></td>
    			</tr>
    		</table>
    	</form>
    	
    	<div  class="result_box">
    	<%=str %>
    	<!-- ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ -->
    		<!-- <table class ="table" style="width: 100%;">
    			<tr>
    				<th id="numTitle">๋ฒˆํ˜ธ</th>
    				<th id="nameTitle">์ด๋ฆ„</th>
    				<th id="telTitle">์ „ํ™”๋ฒˆํ˜ธ</th>
    			</tr>
    			<tr>
    				<td>5</td>
    				<td>๋ฐ•๋‚˜์˜</td>
    				<td>010-5555-5555</td>
    			</tr>
    			<tr>
    				<td>6</td>
    				<td>์ •ํ˜„์šฑ</td>
    				<td>010-6666-6666</td>
    			</tr>
    		</table> -->
    	</div>
    </div>
    
    </body>
    </html>

    ใ„ดใ„ดMemberinsert.jsp_์ด์ „ ํŽ˜์ด์ง€(Test002.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 

    <%@page import="java.sql.Statement"%>
    <%@page import="com.util.DBConn"%>
    <%@page import="java.sql.Connection"%>
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	// MemberInsert.jsp
    	
    	// ์ด์ „ ํŽ˜์ด์ง€(Test002.jsp)๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 
    	// -> userName, userTel
    	
    	// ํ•œ๊ธ€ ๊นจ์ง ๋ฐฉ์ง€ ์ฒ˜๋ฆฌ
    	request.setCharacterEncoding("UTF-8");
    	
    	String uName = request.getParameter("userName");
    	String uTel = request.getParameter("userTel");
    	
    	// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
    	Connection conn = DBConn.getConnection();
    	
    	// ์ฟผ๋ฆฌ๋ฌธ ์ค€๋น„(insert)
    	String sql = String.format("INSERT INTO TBL_MEMBER(SID, NAME, TEL)"
    			+ " VALUES(MEMBERSEQ.NEXTVAL, '%s', '%s')", uName, uTel);
    	
    	// DB ์•ก์…˜ ์ฒ˜๋ฆฌ -> ์ž‘์—… ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์ฟผ๋ฆฌ๋ฌธ ์ˆ˜ํ–‰
    	Statement stmt = conn.createStatement();
    	int result = 0;
    	result = stmt.executeUpdate(sql);
    	
    	stmt.close();
    	DBConn.close();
    	
    	if(result <1)
    	{
    		// ์ž…๋ ฅ ์•ก์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ
    		response.sendRedirect("Error.jsp");
    		//-- ๋‚ด๊ฐ€ ์ž˜ ์•„๋Š” ์—๋Ÿฌ ํŽ˜์ด์ง€ ์†Œ๊ฐœ์‹œ์ผœ์ค„๊ฒŒ..
    	}
    	else
    	{
    		// ์ž…๋ ฅ ์•ก์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ •์ƒ์ €๊ธ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ
    		response.sendRedirect("Test002.jsp");
    		//-- ์ด ํŽ˜์ด์ง€๋กœ ์˜ค๊ธฐ ์ „์— ๋„ค๊ฐ€ ๋จธ๋ฌผ๋˜ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋‹ค์‹œ ์š”์ฒญํ•ด์„œ ์ฐพ์•„๊ฐ€๋ด~!!!
    		//	๋„ค๊ฐ€ ์ž…๋ ฅํ•˜๋ ค๋Š” ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋œ ์ƒํƒœ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€Œ์–ด ์žˆ์„๊ฑฐ์•ผ...
    	}
    	
    %>

    F_WebApp09

    ใ„ดC:WebStudy/WebApp09/WebContent/

    [์ด๋ฆ„, ๊ตญ์–ด์ ์ˆ˜, ์˜์–ด์ ์ˆ˜, ์ˆ˜ํ•™์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ด์ ๊ณผ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ]

    ใ„ดใ„ด WebApp09_scott.sql

    SELECT USER
    FROM DUAL;
    --==>> SCOTT
    
    --โ—‹ ๊ธฐ์กด ํ…Œ์ด๋ธ” ์ œ๊ฑฐ
    DROP TABLE TBL_SCORE;
    --==>>Table TBL_SCORE์ด(๊ฐ€) ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    --โ—‹ ์‹ค์Šต ํ…Œ์ด๋ธ” ์ƒ์„ฑ(TBL_SCORE)
    CREATE TABLE TBL_SCORE
    ( SID   NUMBER
    , NAME  VARCHAR2(30)
    , KOR   NUMBER(3)
    , ENG   NUMBER(3)
    , MAT   NUMBER(3)
    );
    --==>> Table TBL_SCORE์ด(๊ฐ€) ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    --โ—‹ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€
    ALTER TABLE TBL_SCORE
    ADD CONSTRAINT SCORE_SID_PK PRIMARY KEY(SID);
    --==>> Table TBL_SCORE์ด(๊ฐ€) ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    ALTER TABLE TBL_SCORE
    ADD CONSTRAINT SCORE_KOR_CK CHECK(KOR BETWEEN 0 AND 100);
    --==>> Table TBL_SCORE์ด(๊ฐ€) ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    ALTER TABLE TBL_SCORE
    ADD CONSTRAINT SCORE_ENG_CK CHECK(ENG BETWEEN 0 AND 100);
    --==>> Table TBL_SCORE์ด(๊ฐ€) ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    ALTER TABLE TBL_SCORE
    ADD CONSTRAINT SCORE_MAT_CK CHECK(MAT BETWEEN 0 AND 100);
    --==>> Table TBL_SCORE์ด(๊ฐ€) ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ๊ธฐ์กด ์‹œํ€€์Šค ์ œ๊ฑฐ
    DROP SEQUENCE SCORESEQ;
    --==>> Sequence SCORESEQ์ด(๊ฐ€) ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ์‹ค์Šต ๊ด€๋ จ ์‹œํ€€์Šค ๋‹ค์‹œ ์ƒ์„ฑ
    CREATE SEQUENCE SCORESEQ
    NOCACHE;
    --==>> Sequence SCORESEQ์ด(๊ฐ€) ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์„ฑ
    --     (๋ฒˆํ˜ธ, ์ด๋ฆ„, ๊ตญ์–ด์ ์ˆ˜, ์˜์–ด์ ์ˆ˜, ์ˆ˜ํ•™์ ์ˆ˜, ์ด์ , ํ‰๊ท )
    SELECT SID, NAME, KOR , ENG, MAT
        , (KOR+ENG+MAT) AS TOT
        , (KOR+ENG+MAT)/3 AS AVG
    FROM TBL_SCORE
    ORDER BY SID;
    --==>> ํ•œ ์ค„ ๊ตฌ์„ฑ
    SELECT SID, NAME, KOR , ENG, MAT , (KOR+ENG+MAT) AS TOT , (KOR+ENG+MAT)/3 AS AVG FROM TBL_SCORE ORDER BY SID;
    
    
    --โ—‹ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์ฟผ๋ฆฌ๋ฌธ ๊ตฌ์„ฑ
    INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT)
    VALUES(SCORESEQ.NEXTVAL, '์ž„ํ•˜์„ฑ', 90, 80, 70);
    --==> ํ•œ ์ค„ ๊ตฌ์„ฑ
    INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT) VALUES(SCORESEQ.NEXTVAL, '์ž„ํ•˜์„ฑ', 90, 80, 70)
    ;
    --==>> 1 ํ–‰ ์ด(๊ฐ€) ์‚ฝ์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์ž…๋ ฅ
    INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT) VALUES(SCORESEQ.NEXTVAL, '์ด์œค์ˆ˜', 80, 70, 60);
    --==>> 1 ํ–‰ ์ด(๊ฐ€) ์‚ฝ์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    
    
    --โ—‹ ํ™•์ธ
    SELECT *
    FROM TBL_SCORE;
    --==>>
    /*
    1	์ž„ํ•˜์„ฑ	90	80	70
    2	์ด์œค์ˆ˜	80	70	60
    */
    
    
    --โ—‹ ์ปค๋ฐ‹
    COMMIT;
    --==>> ์ปค๋ฐ‹ ์™„๋ฃŒ.

    ใ„ดใ„ด ScoreList.jsp

    <%@page import="java.sql.ResultSet"%>
    <%@page import="java.sql.Statement"%>
    <%@page import="com.util.DBConn"%>
    <%@page import="java.sql.Connection"%>
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	String str ="";
    	
    	Connection conn = DBConn.getConnection();
    	
    	String sql = "SELECT SID, NAME, KOR , ENG, MAT "
    			+ ", (KOR+ENG+MAT) AS TOT , (KOR+ENG+MAT)/3 AS AVG FROM TBL_SCORE ORDER BY SID";
    	
    	Statement stmt = conn.createStatement();
    	
    	ResultSet rs  = stmt.executeQuery(sql);
    	
    	/* <table>
    	<tr>
    		<th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>๊ตญ์–ด์ ์ˆ˜</th><th>์˜์–ด์ ์ˆ˜</th><th>์ˆ˜ํ•™์ ์ˆ˜</th><th>์ด์ </th><th>ํ‰๊ท </th>
    	<tr>
    	<tr>
    		<td>1</td><td>์ž„ํ•˜์„ฑ</td><td>90</td><td>60</td><td>70</td><td>xxx</td><td>xx.x</td>
    	</tr>
    </table> */
    	
    	str += "<table class ='table' style='width: 100%;'>";
    	str += "<tr>";
    	str += "<th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>๊ตญ์–ด์ ์ˆ˜</th><th>์˜์–ด์ ์ˆ˜</th><th>์ˆ˜ํ•™์ ์ˆ˜</th><th>์ด์ </th><th>ํ‰๊ท </th>";
    	str += "</tr>";
    	
    	while(rs.next())
    	{
    		str += "<tr>";
    		str += "<td>"+rs.getString("SID")+"</td>";
    		str += "<td>"+rs.getString("NAME")+"</td>";
    		str += "<td>"+rs.getString("KOR")+"</td>";
    		str += "<td>"+rs.getString("ENG")+"</td>";
    		str += "<td>"+rs.getString("MAT")+"</td>";
    		str += "<td>"+rs.getString("TOT")+"</td>";
    		str += "<td>"+String.format("%.1f",rs.getDouble("AVG"))+"</td>";
    		str += "</tr>";
    			
    	}
    	str += "</table>";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>ScoreList.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <style type="text/css">
    	[id^="err"] {display:none;}
    </style>
    </head>
    <body class="section">
    
    <script type="text/javascript">
    function scoreInsert()
    {
    	var uName = document.getElementById("userName");
    	var korStr = document.getElementById("userKor");
    	var engStr = document.getElementById("userEng");
    	var matStr = document.getElementById("userMat");
    	
    	var uKor = Number(korStr);
    	var uEng = Number(engStr);
    	var uMat = Number(matStr);
    	
    	var eName = document.getElementById("errName");
    	var eKor = document.getElementById("errKor");
    	var eEng = document.getElementById("errEng");
    	var eMat = document.getElementById("errMat");
    	
    	eName.style.display = "none";
    	eName.style.display = "none";
    	eName.style.display = "none";
    	eName.style.display = "none";
    	
    	/* -------------------------------------------- */
    	
    	if(uName.value == "" || uName.value == null)
    	{
    		eName.style.display = "inline";
    		
    		return false;
    	}
    		
    	if(uKor.value<0 || uKor.value>100 || korStr.value== "")
    	{	
    		eKor.style.display = "inline";
    		return false;
    	}
    	
    	 if(uEng.value<0 || uEng.value>100 || engStr.value== "")
    	{	
    		eEng.style.display = "inline";
    		return false;
    	}
    	
    	if(uMat.value<0 || uMat.value>100 || matStr.value== "")
    	{	
    		eMat.style.display = "inline";
    		return false;
    	}
    	
    	return true;
    }
    </script>
    
    <!-- โ—‹ WebApp09
    	
    	- ์—ฌ๋Ÿฌ ๋ช…์˜ ์ด๋ฆ„, ๊ตญ์–ด์ ์ˆ˜, ์˜์–ด์ ์ˆ˜, ์ˆ˜ํ•™์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„
    		์ด์ ๊ณผ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
    	- ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ ์‹œ ๋ฒˆํ˜ธ ์˜ค๋ฆ„ ์ฐจ์ˆœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    	- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค.(TBL_SCORE, SCORESEQ ํ™œ์šฉ)
    	- ์ฆ‰, ์„ฑ์ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ํ•˜์—ฌ JSP๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    	
    	๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
    	---------------------------------------------------
    	์„ฑ์  ์ฒ˜๋ฆฌ
    	
    	์ด๋ฆ„(*)		[ textbox ] -> ์ด๋ฆ„ ์ž…๋ ฅ ํ™•์ธ
    	๊ตญ์–ด์ ์ˆ˜	[ textbox ] -> 0~100 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
    	์˜์–ด์ ์ˆ˜	[ textbox ] -> 0~100 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
    	์ˆ˜ํ•™์ ์ˆ˜	[ textbox ] -> 0~100 ์‚ฌ์ด์˜ ์ •์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
    
    	< ์„ฑ์  ์ถ”๊ฐ€ > 		-> button
    	
    	๋ฒˆํ˜ธ	์ด๋ฆ„	๊ตญ์–ด์ ์ˆ˜	์˜์–ด์ ์ˆ˜	์ˆ˜ํ•™์ ์ˆ˜	์ด์ 	ํ‰๊ท 
    	1		์ž„ํ•˜์„ฑ	90			80			70			xxx		xx.x
    	2		์ด์œค์ˆ˜	90			80			70			xxx		xx.x
    	
    	โ—‹ WebApp09_scott.sql
    		ScoreList.jsp
    		ScoreInsert.jsp -> ์‚ฌ์šฉ์ž ์•ˆ๋งŒ๋‚จ
    		com.util.DBConn.java
    
     -->
     
    <div>
    	<h1>์„ฑ์  ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ ํ”„๋กœ๊ทธ๋žจ</h1>
    	<hr>
    </div>
    
    <div class="layout">
    	<form action="ScoreInsert.jsp" method="post" onsubmit="return scoreInsert()">
    		<table>
    			<tr>
    				<th>์ด๋ฆ„(*)</th>
    				<td>
    					<input type="text" id="userName" name="userName">
    					<span id="errName">์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.</span>
    				</td>
    			</tr>
    			<tr>
    				<th>๊ตญ์–ด์ ์ˆ˜</th>
    				<td>
    					<input type="text" id="userKor" name="userKor">
    					<span id="errKor">๊ตญ์–ด์ ์ˆ˜(0~100)</span>
    				</td>
    			</tr>
    			<tr>
    				<th>์˜์–ด์ ์ˆ˜</th>
    				<td>
    					<input type="text" id="userEng" name="userEng">
    					<span id="errEng">์˜์–ด์ ์ˆ˜(0~100)</span>
    				</td>
    			</tr>
    			<tr>
    				<th>์ˆ˜ํ•™์ ์ˆ˜</th>
    				<td>
    					<input type="text" id="userMat" name="userMat">
    					<span id="errMat">์ˆ˜ํ•™์ ์ˆ˜(0~100)</span>
    				</td>
    			</tr>
    		</table>
    		<div class="btn_box">
    			<button type="submit" id="resultBtn" name="resultBtn" class="btn">์„ฑ์  ์ถ”๊ฐ€</button>
    		</div>
    	</form>
    	<div class="result_box">
    		<!-- <table>
    			<tr>
    				<th>๋ฒˆํ˜ธ</th><th>์ด๋ฆ„</th><th>๊ตญ์–ด์ ์ˆ˜</th><th>์˜์–ด์ ์ˆ˜</th><th>์ˆ˜ํ•™์ ์ˆ˜</th><th>์ด์ </th><th>ํ‰๊ท </th>
    			<tr>
    			<tr>
    				<td>1</td><td>์ž„ํ•˜์„ฑ</td><td>90</td><td>60</td><td>70</td><td>xxx</td><td>xx.x</td>
    			</tr>
    		</table> -->
    		<%=str %>
    	</div>
    </div>
    
    </body>
    </html>

    ใ„ดใ„ดScoreInsert.jsp

    <%@page import="java.sql.Statement"%>
    <%@page import="com.util.DBConn"%>
    <%@page import="java.sql.Connection"%>
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%
    	//ScoreInsert.jsp
    	
    	request.setCharacterEncoding("UTF-8");
    
    	String uName = request.getParameter("userName");
    	int uKor = Integer.parseInt(request.getParameter("userKor"));
    	int uEng = Integer.parseInt(request.getParameter("userEng"));
    	int uMat = Integer.parseInt(request.getParameter("userMat"));
    	
    	Connection conn = DBConn.getConnection();
    	
    	String sql = String.format("INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT)"
    			+ " VALUES(SCORESEQ.NEXTVAL, '%s', %d, %d, %d)",uName, uKor, uEng, uMat);
    	
    	Statement stmt = conn.createStatement();
    	int result = 0;
    	result = stmt.executeUpdate(sql);
    	
    	stmt.close();
    	DBConn.close();
    	
    	if(result <1)
    	{
    		response.sendRedirect("Error.jsp");
    	}
    	else
    	{
    		response.sendRedirect("ScoreList.jsp");
    	}
    
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>ScoreInsert.jsp</title>
    <!-- <link rel="stylesheet" type="text/css" href="css/main.css"> -->
    <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
    <body>
    	
    </body>
    </html>