SpringFramework 11. JSP - swkim0128/PARA GitHub Wiki


type: Spring archive: false

JSP


์ž๋ฐ” ์„œ๋ฒ„ ํŽ˜์ด์ง€(JavaServer Page, JSP)๋Š” HTML๋‚ด์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฌ์ž…ํ•˜์—ฌ ์›น ์„œ๋ฒ„์—์„œ ๋™์ ์œผ๋กœ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋Œ๋ ค์ฃผ๋Š” ์–ธ์–ด์ด๋‹ค. Java EE ์ŠคํŽ™ ์ค‘ ์ผ๋ถ€๋กœ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•œ๋‹ค.

์ž๋ฐ” ์„œ๋ฒ„ํŽ˜์ด์ง€๋Š” ์‹คํ–‰ ์‹œ์—๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋œ ํ›„ ์‹คํ–‰๋˜๋ฏ€๋กœ ์„œ๋ธ”๋ฆฟ๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์„œ๋ธ”๋ฆฟ๊ณผ๋Š” ๋‹ฌ๋ฆฌ HTML ํ‘œ์ค€์— ๋”ฐ๋ผ ์ž‘์„ฑ๋˜๋ฏ€๋กœ ์›น ๋””์ž์ธํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๋‹ค. 1999๋…„ ์ฌ ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ์ฆˆ์— ์˜ํ•ด ๋ฐฐํฌ๋˜์—ˆ์œผ๋ฉฐ ์ด์™€ ๋น„์Šทํ•œ ๊ตฌ์กฐ๋กœ PHP, ASP, ASP.NET ๋“ฑ์ด ์žˆ๋‹ค.

์•„ํŒŒ์น˜ ์ŠคํŠธ๋Ÿฟ์ธ ๋‚˜ ์ž์นด๋ฅดํƒ€ ํ”„๋กœ์ ํŠธ์˜ JSTL ๋“ฑ์˜ JSP ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ž๋ฐ” ์ฝ”๋”ฉ์—†์ด ํƒœ๊ทธ๋งŒ์œผ๋กœ ๊ฐ„๋žตํžˆ ๊ธฐ์ˆ ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ƒ์„ ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

JSP Process


!Untitled 55.png

Declaration


JSP ์Šคํฌ๋ฆฝํŒ… ์š”์†Œ(Scripting Element) - ์„ ์–ธ

๋ฉค๋ฒ„๋ณ€์ˆ˜ ์„ ์–ธ์ด๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•˜๋Š” ์˜์—ญ.

<%! ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ method ์ž‘์„ฑ %>
<%!
	String name;

	public void init() {
		name = "test";
	}
%>

JSP ์Šคํฌ๋ฆฝํŒ… ์š”์†Œ(Scripting Element) - ์Šคํฌ๋ฆฝํŠธ๋ฆฟ

Client ์š”์ฒญ ์‹œ ๋งค๋ฒˆ ํ˜ธ์ถœ ์˜์—ญ์œผ๋กœ, Servlet์œผ๋กœ ๋ณ€ํ™˜ ์‹œ service() method์— ํ•ด๋‹น๋˜๋Š” ์˜์—ญ.

request, response์— ๊ด€๋ จ๋œ ์ฝ”๋“œ ๊ตฌํ˜„

<% java code %>
<%
	for (int dan = 2; dan < 10; dan++) {
		out.println("<tr>");
		String classname = dan % 2 == 0 ? "color1" : "color2";
		for (int i = 1; i < 10; i++) {
			out.println("<td class=\"" + classname + "\">" + dan + 
							" * " + i + " = " + dan * i + "</td>");
		}
		out.println("</tr>");
	}
%>

JSP ์Šคํฌ๋ฆฝํŒ… ์š”์†Œ(Scripting Element) - ํ‘œํ˜„์‹

๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉ

<%= ๋ฌธ์ž์—ด %>
์•ˆ๋…• <%= ๋ฌธ์ž์—ด %>!!!

!Untitled 1 33.png

JSP ์Šคํฌ๋ฆฝํŒ… ์š”์†Œ(Scripting Element) - ์ฃผ์„

์ฝ”๋“œ ์ƒ์—์„œ ๋ถ€๊ฐ€ ์„ค๋ช…์„ ์ž‘์„ฑ.

<%-- ์ฃผ์„ ํ•  code --%>
<%-- JSP ์ฃผ์„ --%>
<%
/*
Java ์ฃผ์„
*/
%>

Directive(JSP ์ง€์‹œ์ž)


  1. page Directive

    ์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ ํ˜„์žฌ JSP ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

    !Untitled 2 32.png

  2. include Directive

    ํŠน์ • jsp file์„ ํŽ˜์ด์ง€์— ํฌํ•จ.

    ์—ฌ๋Ÿฌ jsp ํŽ˜์ด์ง€์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์„ jsp file๋กœ ๋งŒ๋“  ํ›„ ๋ฐ˜๋ณต ์˜์—ญ์— include ์‹œ์ผœ ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

    !Untitled 3 31.png

  3. taglib Directive

    JSTL ๋˜๋Š” ์‚ฌ์šฉ์ž์— ์˜ํ•ด์„œ ๋งŒ๋“  ์ปค์Šคํ…€ ํƒœ๊ทธ(custom tag)๋ฅผ ์ด์šฉํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ

    JSP ํŽ˜์ด์ง€ ๋‚ด์— ๋ถˆํ•„์š”ํ•œ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

    !Untitled 4 27.png

Directive - page


!Untitled 5 24.png

!Untitled 6 21.png

๊ธฐ๋ณธ๊ฐ์ฒด


!Untitled 7 18.png

!Untitled 8 16.png

๊ธฐ๋ณธ๊ฐ์ฒด Scope


!Untitled 9 15.png

!Untitled 10 13.png

Web Page ์ด๋™


!Untitled 11 11.png

โš ๏ธ **GitHub.com Fallback** โš ๏ธ