1 ๋ถ„ ์†Œ์š”

๐Ÿ“š JSP๋ž€?

JSP ๋ž€ Java Server Pages ์˜ ์•ฝ์ž์ด๋ฉฐ HTML ์ฝ”๋“œ์— JAVA ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„๊ตฌ์ด๋‹ค. JSP๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Servlet)์œผ๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘๋˜๋ฉด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์›นํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•œ๋‹ค.

๐Ÿ“– ScriptElement

1. ์ฒ˜๋ฆฌ๋ถ€(Scriptlet)

์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š” ๊ณณ์ด๋‹ค. ์ถ”ํ›„์— JSTL๊ณผ EL๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

<% ... %>

2. ์„ ์–ธ๋ถ€(Declaration)

์Šคํฌ๋ฆฝํ‹€๋ฆฟ์—์„œ๋„ ๋ณ€์ˆ˜ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด ๋ถ€๋ถ„์—์„œ ์„ ์–ธ์„ ํ•˜๋ฉด ์ „์—ญ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋œ๋‹ค.

<%! ... %>

3. ํ‘œํ˜„๋ถ€(Expression)

๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ์ด ๋ถ€๋ถ„์—๋Š” ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ” ์ฝ”๋“œ์™€๋Š” ๋‹ฌ๋ฆฌ ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค. EL๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

<%= ... %>

๐Ÿ“– Direction(์ง€์‹œ์ž)

JSP ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ์„ค์ •ํ•˜๋Š” ํƒœ๊ทธ๋กœ JSP ํŽ˜์ด์ง€๊ฐ€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋  ๋•Œ JSP ์ปจํ…Œ์ด๋„ˆ(ํ†ฐ์บฃ)์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋„˜๊ธด๋‹ค.

1) page ์ง€์‹œ์–ด

JSP ํŽ˜์ด์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐ์ข… ์†์„ฑ์„ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ ๋งจ ์•ž์— ์œ„์น˜ํ•œ๋‹ค.

<%@ page ์†์„ฑ="๊ฐ’" %>
์†์„ฑ ๊ฐ’
language ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์ง€์ •. ๋‹ค๋ฅธ ์–ธ์–ด๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ธฐ๋ณธ ๊ฐ’์€ ์ž๋ฐ”์ด๋‹ค.
contentType ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ํŒŒ์ผ ํ˜•์‹ ์ง€์ •. ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ตํ•  ๋•Œ http ํ—ค๋” ์ •๋ณด๊ฐ€ ๋œ๋‹ค.
pageEncoding ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฝ”๋”ฉ ์†์„ฑ ์ง€์ •
import ์ผ๋ฐ˜ ์ž๋ฐ” ์ฝ”๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํด๋ž˜์Šค import๋ฅผ ํ•˜๋Š” ์†์„ฑ
errorPage ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•  ๋ณ„๋„์˜ ํŽ˜์ด์ง€ ์ง€์ •

2) include ์ง€์‹œ์–ด

๋‹ค๋ฅธ ํŒŒ์ผ์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•œ ์ง€์‹œ์–ด๋กœ, ์‚ฌ์šฉํ•œ ์œ„์น˜์— html, jsp ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ํฌํ•จ๋œ ํŒŒ์ผ์„ ๋ชจ๋‘ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ํฌํ•จ๋˜๋Š” ํŒŒ์ผ์€ page์ง€์‹œ์–ด๋‚˜ html ๊ธฐ๋ณธ ํƒœ๊ทธ ๊ตฌ์„ฑ์š”์†Œ ๋“ฑ์„ ๊ผญ ํฌํ•จํ•  ํ•„์š”๋Š” ์—†๋‹ค.

<%@ include file="ํŒŒ์ผ ์œ„์น˜" %>

2) taglib ์ง€์‹œ์–ด

์ปค์Šคํ…€ ์•ก์…˜ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ง€์‹œ์–ด์ด๋‹ค.

<%@ taglib (uri="ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ" || tagdir="ํƒœ๊ทธ ํŒŒ์ผ ๊ฒฝ๋กœ")
prefix="ํƒœ๊ทธ ์ ‘๋‘์–ด" %>

์ฐธ๊ณ 


https://javacpro.tistory.com/43

https://sseddi.tistory.com/153

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ