Web programming

(22.11.21)Web ํ”„๋กœ๊ทธ๋ž˜๋ฐ: JSP ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก  Model1-jsp๋กœ Controller ์—ญํ•  ํ•˜๊ฒŒ ํ•˜๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 11. 21.

JSP ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก  Model1

 

๋ชจ๋ธ 1์€ ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์„ ์“ฐ์ง€์•Š๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์—ฌํƒœ๊นŒ์ง„ jsp์™€ ์ž๋ฐ” ํด๋ž˜์Šค๋กœ ๊ฐœ๋ฐœ์„ ํ–ˆ๋Š”๋ฐ, ์„œ๋ธ”๋ฆฟ์„ ์“ฐ์ง€ ์•Š๋”๋ผ๋„ jsp์—์„œ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•   ์ˆ˜ ์žˆ๋‹ค. jsp์ž์ฒด๊ฐ€ ์„œ๋ธ”๋ฆฟ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํŠนํ™”์‹œํ‚จ ์Šคํฌ๋ฆฝํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ธฐ์กด์— ํ–ˆ๋˜ ๊ฒŒ์‹œํŒ์„ ์ปจํŠธ๋กค๋Ÿฌ jsp๋ฅผ ์จ์„œ ๋งŒ๋“ ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

boardController.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
 
<%
    String cmd = request.getParameter("cmd");
 
    switch(cmd){
    case "ADD_FORM"//์ด์šฉ์ž์—๊ฒŒ ๊ฒŒ์‹œํŒ ๊ธ€ ์ž…๋ ฅ ํผ์„ ๋ณด์—ฌ์ค€๋‹ค.
        //๊ฐ„๋‹จํ•˜๊ณ  ์ •ํ™•ํ•œ ๋ฐฉ๋ฒ• : response.sendRedirect("boardAdd.jsp");
        //request.setAttribute("name", "value"); ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.
        %>
    <jsp:forward page="boardAddForm.jsp"/>
<%
    case "ADD":
        System.out.println("์ถ”๊ฐ€์š”์ฒญ ์ ‘์ˆ˜");
    }
%> 
   
cs

๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ค„ ๋•

request.setAttribute("name", "value");
<jsp:param value="" name=""/>

๋‘๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋„˜๊ฒจ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ „์ž๋Š” ๋‹ค์‹œ request.getAttribute๋กœ ๋ฐ›์•„์•ผํ•˜๊ณ 

ํ›„์ž๋Š” <jsp:param>ํƒœ๊ทธ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.

 

boardAddForm.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<%@ page contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> </title>
</head>
<body>
<main>
<h3>๊ฒŒ์‹œ๊ธ€ ์ž…๋ ฅ</h3>
<form action="boardController.jsp" method="post">
    <input type="hidden" name="cmd" value="ADD">
    <div>
        <label for="title">์ œ๋ชฉ</label>
        <input id="title" type="text" name="title" value="๊ฒŒ์‹œํŒ ํ…Œ์ŠคํŠธ">
    </div>
    <div>
        <label for="contents">๋‚ด์šฉ</label>
        <textarea id="contents" name="contents" rows="5" cols="50">
        </textarea>
    </div>
    <div class="btn">
        <button type="reset">์ทจ์†Œ</button>
        <button type="submit">์ €์žฅ</button>        
    </div>
</form>
</main>
</body>
</html>
cs

 

์‹คํ–‰๊ฒฐ๊ณผ :

cmd์— ADD_FORM์„ ์ฃผ๋ฉด ๋‹ค์ค‘๋ถ„๊ธฐ๋ฌธ์—์„œ ์ฃผ์—ˆ๋˜ boardAddForm.jsp๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

์•„๋ฌด ๊ธ€์ด๋‚˜ ์จ์„œ ์ €์žฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด submit ๋˜๊ณ  ์ดํด๋ฆฝ์Šค ์ฝ˜์†”์—์„œ๋„ ๋””๋ฒ„๊น…์šฉ์œผ๋กœ ์ฐ์€ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


JSP

JSP ๋ž€ JavaServerPages ์˜ ์•ฝ์ž์ด๋ฉฐ

HTML ์ฝ”๋“œ์— JAVA ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ๋™์ ์›นํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„๊ตฌ์ด๋‹ค.

JSP ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Servlet) ์œผ๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘๋˜๋ฉด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ 

๊ทธ๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์›นํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•œ๋‹ค.

 

์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Java Servlet)

์„œ๋ธ”๋ฆฟ์ด๋ž€ ์›นํŽ˜์ด์ง€๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์ธก ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค. 

์ด๋Š” ์ž๋ฐ” ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์ง€๋ฉฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ( Web Application Sever ) ์œ„์—์„œ ์ปดํŒŒ์ผ ๋˜๊ณ  ๋™์ž‘ํ•œ๋‹ค.

 

 

 

JSP ์™€ ์„œ๋ธ”๋ฆฟ์˜ ์ฐจ์ด์ ์€ ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•˜๋Š”์ผ์€ ๋™์ผํ•˜์ง€๋งŒ 

JSP ๋Š” HTML ๋‚ด๋ถ€์— JAVA ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋“ค์–ด๊ฐ์œผ๋กœ ์ธํ•ด HTML ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ๊ฐ„ํŽธํ•˜๋‹ค๋Š” ์žฅ์ ์ด์žˆ์œผ๋ฉฐ

์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”์ฝ”๋“œ๋‚ด์— HTML ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์„œ ์ฝ๊ณ  ์“ฐ๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์˜ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

 

JSP ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์„œ๋ฒ„๋กœ ์š”์ฒญ์‹œ ์„œ๋ธ”๋ฆฟ(Servlet) ํŒŒ์ผ๋กœ ๋ณ€ํ™˜๋˜์–ด JSP ํƒœ๊ทธ๋ฅผ  ๋ถ„ํ•ดํ•˜๊ณ  ์ถ”์ถœํ•˜์—ฌ ๋‹ค์‹œ ์ˆœ์ˆ˜ํ•œ HTML ๋ฅผ ๋ณ€ํ™˜ํ•œ๋‹ค.


์ „์ฒด์ ์ธ JSPํŒŒ์ผ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต ํ๋ฆ„

1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ๋™์ž‘์„ ํ•จ์œผ๋กœ์จ hello.jsp ๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์˜€๋‹ค.

2. ์„œ๋ฒ„์˜ JSP ์ปจํ…Œ์ด๋„ˆ๊ฐ€ JSP ํŒŒ์ผ์„ ์ฝ๋Š”๋‹ค.

3. JSP ์ปจํ…Œ์ด๋„ˆ๊ฐ€ Generete (๋ณ€ํ™˜) ์ž‘์—…์„ ํ†ตํ•ด JSP๋ฅผ Servlet ( .java )  ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

4. .java ํŒŒ์ผ์€ ๋‹ค์‹œ .class ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋œ๋‹ค.

5. Execute (์‹คํ–‰) ์„ ํ†ตํ•ด HTML ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ JSP ์ปจํ…Œ์ด๋„ˆ ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

6. ๊ฒฐ๊ตญ JSP ๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด HTML ํŽ˜์ด์ง€๋ฅผ ํด๋ผ์ด์–ธํŠธ ์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

 

๋Œ“๊ธ€