** ๐Ÿ“ŒEL ๋‚ด์žฅ ๊ฐ์ฒด ์ด์ •๋ฆฌ (๊ธฐ์ดˆ + ์‹ค๋ฌด + ๊ธฐ์ˆ ๋ฉด์ ‘์šฉ) **


โœ… ๋ชฉ์ฐจ

  1. EL ๋‚ด์žฅ ๊ฐ์ฒด๋ž€?
  2. ์ฃผ์š” EL ๋‚ด์žฅ ๊ฐ์ฒด ์ด์ •๋ฆฌ
  3. ์‹ค๋ฌด ํ™œ์šฉ ์˜ˆ์ œ
  4. ์Šค์ฝ”ํ”„๋ณ„ ์šฐ์„ ์ˆœ์œ„
  5. ๊ธฐ์ˆ ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ
  6. ์š”์•ฝ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

1๏ธโƒฃ EL ๋‚ด์žฅ ๊ฐ์ฒด๋ž€?

๐Ÿ“˜ EL(Expression Language)์€ JSP ๋‚ด๋ถ€์—์„œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” โ€œ๋‚ด์žฅ ๋ณ€์ˆ˜ ๊ฐ์ฒด๋“คโ€ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ณ„๋„๋กœ ์„ ์–ธํ•  ํ•„์š” ์—†์ด ${} ์•ˆ์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ด ๋‚ด์žฅ ๊ฐ์ฒด๋“ค์€ JSP์˜ ์—ฌ๋Ÿฌ ์Šค์ฝ”ํ”„ ๊ฐ์ฒด (request, session, etc.)๋‚˜ ์›น ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


2๏ธโƒฃ ์ฃผ์š” EL ๋‚ด์žฅ ๊ฐ์ฒด ๋ชฉ๋ก ๋ฐ ์„ค๋ช…

๋‚ด์žฅ ๊ฐ์ฒด ์„ค๋ช… ์‚ฌ์šฉ ์˜ˆ
param ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉ (๋‹จ์ผ๊ฐ’) ${param.name}
paramValues ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ${paramValues.hobby[0]}
header ์š”์ฒญ ํ—ค๋” ๊ฐ’ ๊ฐ€์ ธ์˜ฌ ๋•Œ ${header["User-Agent"]}
headerValues ํ—ค๋”์— ์ค‘๋ณต ๊ฐ’์ด ์žˆ์„ ๋•Œ ๋ฐฐ์—ด๋กœ ์ ‘๊ทผ ${headerValues.accept[1]}
cookie ์ฟ ํ‚ค ์ •๋ณด ์ ‘๊ทผ ${cookie.userId.value}
initParam ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐ ์„ค์ •๊ฐ’ ${initParam.adminEmail}
pageScope page ๋ฒ”์œ„์˜ ๊ฐ์ฒด ์ ‘๊ทผ ${pageScope.msg}
requestScope request ๋ฒ”์œ„ ๊ฐ์ฒด ์ ‘๊ทผ ${requestScope.user}
sessionScope ์„ธ์…˜ ๋ฒ”์œ„ ๊ฐ์ฒด ์ ‘๊ทผ ${sessionScope.loginUser}
applicationScope ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ”์œ„ ๊ฐ์ฒด ์ ‘๊ทผ ${applicationScope.globalData}

3๏ธโƒฃ ์‹ค๋ฌด ํ™œ์šฉ ์˜ˆ์ œ

๐Ÿ”ธ param (GET/POST ํŒŒ๋ผ๋ฏธํ„ฐ)

<!-- ?name=Alice -->
<p>์ด๋ฆ„: ${param.name}</p>
<p>์ฟ ํ‚ค ์‚ฌ์šฉ์ž ID: ${cookie.userId.value}</p>

๐Ÿ”ธ header

<p>์ ‘์† ๋ธŒ๋ผ์šฐ์ €: ${header["User-Agent"]}</p>

๐Ÿ”ธ scope ์˜ˆ์ œ

<%-- request.setAttribute("msg", "Hello"); --%>
<p>๋ฉ”์‹œ์ง€: ${requestScope.msg}</p>

4๏ธโƒฃ ์Šค์ฝ”ํ”„๋ณ„ ์šฐ์„ ์ˆœ์œ„ (โ˜…๋งค์šฐ ์ค‘์š”)

๐Ÿ“Œ EL์€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ์Šค์ฝ”ํ”„์— ์กด์žฌํ•  ๊ฒฝ์šฐ ์•„๋ž˜ ์šฐ์„ ์ˆœ์œ„๋กœ ์ฐพ์Šต๋‹ˆ๋‹ค:

  1. pageScope
  2. requestScope
  3. sessionScope
  4. applicationScope

๐Ÿ’ก ์ฆ‰, ${user} ๋ผ๊ณ  ์ผ์„ ๋•Œ pageScope โ†’ requestScope โ†’ ... ์ˆœ์œผ๋กœ ์ฐพ๋‹ค๊ฐ€ ์ฒ˜์Œ ๋ฐœ๊ฒฌ๋œ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


5๏ธโƒฃ ๊ธฐ์ˆ ๋ฉด์ ‘ ๋Œ€๋น„ ์š”์•ฝ

์งˆ๋ฌธ ๋‹ต๋ณ€ ์š”์•ฝ
โ“ EL ๋‚ด์žฅ ๊ฐ์ฒด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? JSP์—์„œ ๋ณ„๋„ ์„ ์–ธ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ, ์š”์ฒญ๊ฐ’, ์ฟ ํ‚ค, ์„ธ์…˜, ํ—ค๋” ๋“ฑ์„ EL๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
โ“ param๊ณผ paramValues์˜ ์ฐจ์ด๋Š”? param์€ ๋‹จ์ผ๊ฐ’, paramValues๋Š” ๊ฐ™์€ ์ด๋ฆ„์˜ ์—ฌ๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
โ“ cookie.userId์ฒ˜๋Ÿผ .value๋ฅผ ๋ถ™์ด๋Š” ์ด์œ ๋Š”? cookie ๊ฐ์ฒด๋Š” Cookie ํด๋ž˜์Šค ๊ฐ์ฒด์ด๋ฏ€๋กœ value ํ•„๋“œ๋ฅผ ๋ช…์‹œํ•ด์•ผ ์‹ค์ œ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ“ ์Šค์ฝ”ํ”„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. page โ†’ request โ†’ session โ†’ application ์ˆœ์„œ๋กœ ์ฐพ์œผ๋ฉฐ, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์Šค์ฝ”ํ”„์˜ ๋ณ€์ˆ˜๊ฐ€ ์šฐ์„ ๋ฉ๋‹ˆ๋‹ค.
โ“ sessionScope ์—†์ด ${user}๋งŒ ์“ด๋‹ค๋ฉด? ์Šค์ฝ”ํ”„ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ pageScope๋ถ€ํ„ฐ ๊ฒ€์ƒ‰ํ•˜๋ฏ€๋กœ, ํ•ด๋‹น ์ด๋ฆ„์ด sessionScope์—๋งŒ ์žˆ์œผ๋ฉด ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.

6๏ธโƒฃ ์š”์•ฝ ์ •๋ฆฌ

EL ๋‚ด์žฅ ๊ฐ์ฒด๋Š” JSP์—์„œ ๊ฐ’์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ, ์ฟ ํ‚ค, ์„ธ์…˜, ํ—ค๋”, ์Šค์ฝ”ํ”„ ๊ฐ์ฒด ๋“ฑ์„ EL๋กœ ์‰ฝ๊ฒŒ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ธ param, cookie, header ๋Š” ์›น ์š”์ฒญ ๊ด€๋ จ ๊ฐ์ฒด

๐Ÿ”ธ pageScope, requestScope, sessionScope, applicationScope ๋Š” ๋ฒ”์œ„๋ณ„ ๋ณ€์ˆ˜ ์ ‘๊ทผ


โœ… ์ถ”๊ฐ€ ํŒ: EL ๋‚ด์žฅ ๊ฐ์ฒด ์‚ฌ์šฉ์‹œ ์ฃผ์˜์‚ฌํ•ญ