[JSP] JSP๋ž€?๐Ÿ”ถ

๋ฐ•์ •ํ˜„ยท2023๋…„ 10์›” 26์ผ

๐Ÿ”ถ JSP

๋ชฉ๋ก ๋ณด๊ธฐ
1/4
post-thumbnail

0. ๋“ค์–ด๊ฐ€๊ธฐ์ „์—

MODEL2Spring FrameworkSpring Boot
DBJDBCMyBatisJPA, MyBatis
------------

View

| JSP | JSP | JSP, Thymeleaf |

Repository

โ†‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ | ์ง์ ‘ | Maven | Gradle, Mave

1. JSP

1) JSP๋ž€?

  • ์„œ๋ธ”๋ฆฟ์ด ์–ด๋ ค์›Œ์„œ ๋งŒ๋“ค์–ด์ง„ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด
  • JSP(Java Server Page)
  • HTML+JAVA=JSPโ†’ servlet(JAVA+HTML) โ†’ .class โ†’ ์‹คํ–‰ โ†’ HTML(response)(๋ธŒ๋ผ์šฐ์ €)
    • HTML์— JAVA๋ฅผ ๋”ํ•œ ๊ฒƒ์ด๋‹ค.
  • mvc โ†’ view
  • JSP๋Š” ์„œ๋ธ”๋ฆฟ ๊ธฐ๋ฐ˜์˜ โ€œ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ˆ โ€์ด๋‹ค.
    • ํ•œ๋งˆ๋””๋กœ ์„œ๋ฒ„ํŽ˜์ด์ง€์ด๋‹ค.
    • mvc์—์„œ view์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„ํŽ˜์ด์ง€!
    • ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด VS ์ปดํŒŒ์ผ ์–ธ์–ด โ†’ https://well-made-codestory.tistory.com/30์—์„œ ์„ค๋ช…
  • ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ โ†’ WAS(์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„) โ†’ ์„œ๋ฒ„(์‹ค์ œ a.jsp โ†’ ajsp.java โ†’ a_jsp.class
    • JSP โ†’ Servlet โ†’ .class โ†’ HTML(response)

2) jsp๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด?

jsp๊ฐ€ ํ•˜๋Š” ์ผ์„ Servlet์ด ํ–ˆ์„ ๋•Œ๋Š” ์ด๋ ‡๊ฒŒ ๋ชจ๋‘ ์จ์•ผ ํ•œ๋‹ค.

jsp

3) JSP ๋ผ์ดํ”„ ์‚ฌ์ดํด (JSP๋™์ž‘)

  1. JSPํŒŒ์ผ์€ ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ์ปดํŒŒ์ผํ•œ๋‹ค.
  2. ์ปดํŒŒ์ผ๋œ ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค.
  3. ์ ์žฌ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ inti()๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  4. Service() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.
  5. JSpํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์„œ๋ธ”๋ฆฟ์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ƒ‚๊ฒŒํ•  ํ•„ใ…‡์ตธ๊ฐ€ ์žˆ์„ ๋•Œ์—๋Š” Destory()๋ฉ”์†Œ๋“œ๋ฅผ JSP

3. Scripting Element

jsp ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ถ€๋ถ„์œผ๋กœ, ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. desclaration(์„ ์–ธ๋ฌธ)
    • <%! //์„ ์–ธ๋ฌธ, ๋ฉ”์†Œ๋“œ %>
  2. Scriptlet(์Šคํฌ๋ฆฝํŠธ๋ฆฟ)
    • <% //java code %>
  3. Exception(ํ‘œํ˜„์‹)
    • <%=//๋ณ€์ˆ˜ %>

๋ณต์Šตํ•œ ๋‚ด์šฉ ์œ„์น˜: jsp>jspProject0711>src>main>webapp>jspRe.jsp

1) desclaration(์„ ์–ธ๋ฌธ)

  • <%! //์„ ์–ธ๋ฌธ, ๋ฉ”์†Œ๋“œ %>
    • ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • jspํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฝํŠธ๋ฆฟ์ด๋‚˜ ํ‘œํ˜„์‹์—์„œ ์‚ฌ์š”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ฉ”์†Œ๋“œ์™€ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.
  • ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋  ๋•Œ ์„œ๋ธ”๋ฆฟ์˜ ๋ฉค๋ฒ„๋กœ ์„ ์–ธ๋œ๋‹ค.
  • ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋œ JSP๋Š” ๋ชจ๋‘ _jspService() ๋ฉ”์†Œ๋“œ์— ๋“ค์–ด๊ฐ„๋‹ค.
  • jspํŒŒ์ผ์—์„œ declartionํ•œ ๋ชจ์Šต

2) scriptlet(์Šคํฌ๋ฆฝํŠธ๋ฆฟ)

  • <% //java code %>
  • JSPํŽ˜์ด์ง€์—์„œ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ์˜ ๋ธ”๋ก์ด๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ์ด๋‹ค.
  • ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๋กœ์ปฌ๋ณ€์ˆ˜์ด๋‹ค.
  • JSP์—์„œ๋Š” EL(ํ‘œํ˜„์–ธ์–ด, Expression Language) JSTL ๋“ฑ ์ปค์Šคํ…€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์„ ๊ถŒ์žฅ๋œ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ๋ฆฟ ๋ถ€๋ถ„์—์„œ๋Š” ์ˆœ์ˆ˜ ์ž๋ฐ” ์ฝ”๋“œ๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ๋ฆฟ ๋ถ€๋ถ„์—์„œ HTML ์ถœ๋ ฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” out.println()์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฆฟ์„ ๋‹ซ์€ ํ›„ ํƒœ๊ทธ์™€ ํ‘œํ˜„์‹์„ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.
  • jspํŒŒ์ผ์—์„œ scriptletํ•œ ๋ชจ์Šต
    <%@page import="java.util.ArrayList"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	
    	//์Šคํฌ๋ฆฝํŠธ๋ฆฟ
    	int num1 = 10;
    	int num2 = 20;
    	
    	out.println(num1+num2);
    	
    	request.getAttribute("members");
    	
    %>
    
    <%
    	ArrayList<Integer> list = new ArrayList();
    	list.add(10);
    	list.add(20);
    	list.add(30);
    	list.add(40);
    	list.add(50);
    	
    %>
    
    <%
    	// ์ž๋ฐ” + html๋กœ ์ถœ๋ ฅ
    	for(int i : list){
    %>
    	<h1><%=i %></h1>
    <%
    	}
    %>
    
    <%
    	//์ž๋ฐ”๋กœ๋งŒ ์ถœ๋ ฅ
    	for(int i : list){
    		out.println(i); //๋ธŒ๋ผ์šฐ์ € ์ถœ๋ ฅ
    	}
    %>

3) Expression

  • <%=//๋ณ€์ˆ˜ %>
  • ์–ด๋–ค ๊ฐ’์„ ์ถœ๋ ฅ ๊ฒฐ๊ณผ์— ํฌํ•จ์‹œํ‚ค๊ณ ์ž ํ•  ใ„ธ ใ…์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ์ด๋‚˜ ๋ฉ”์†Œ๋“ค ํ˜ธ์ถœ ๋“ฑ์— ์ด์šฉํ•œ๋‹ค.
  • ์ฝ”๋“œ ๋งˆ์ง€๋ง‰์— ;(์„ธ๋ฏธ์ฝœ๋ก )์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ‘œํ˜„์‹์€ out.prinln()์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค,
  • ์‚ฐ์ˆ ์‹์ด ๊ฐ€๋Šฅํ•˜๋ฉด +โ€๋ฌธ์ž์—ดโ€์„ ์ด์šฉํ•œ ํ˜•ํƒœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฉ”์†Œ๋“œํ˜ธ์ถœ: <%= calculator() %>
  • ๋ณ€์ˆ˜์ถœ๋ ฅ: <%= result %>
  • ์‚ฌ์น™์—ฐ์‚ฐ๊ณผ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ: <% โ€œi+2=โ€ +(i+2)+ โ€œ์ž…๋‹ˆ๋‹ค.โ€ %>
  • ์ฝ”๋“œ
profile
๊ฐœ๋ฐœ์„ ๊ฐœ๋ฐœ๊ดด๋ฐœํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€