** ๐Ÿ“Œ EL + setAttribute ์‹ค๋ฌด ํ๋ฆ„ ์—ฐ๋™ + ๋ฌธ์ œํ’€์ด **


โœ… ๋ชฉ์ฐจ

  1. setAttribute์™€ EL์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ
  2. EL์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ํ๋ฆ„ (์Šค์ฝ”ํ”„ ํƒ์ƒ‰)
  3. ์‹ค๋ฌด ํ๋ฆ„ ์˜ˆ์ œ: Servlet โ†’ JSP โ†’ EL
  4. ์‹ค๋ฌด ์‹ค์Šต ๋ฌธ์ œ
  5. ๊ธฐ์ˆ ๋ฉด์ ‘ ํ•ต์‹ฌ ์งˆ๋ฌธ ์ •๋ฆฌ
  6. ์š”์•ฝ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

1๏ธโƒฃ setAttribute์™€ EL์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ

๐Ÿ“˜ EL์€ Servlet์ด๋‚˜ JSP์—์„œ ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ํ๋ฆ„์€:

Servlet์—์„œ request.setAttribute() โ†’ JSP์—์„œ ${}๋กœ ์ถœ๋ ฅ

๐Ÿ”น ๊ตฌ์กฐ ์˜ˆ์‹œ:

// [Servlet]
User user = new User("kim", "kim@email.com");
request.setAttribute("user", user);
request.getRequestDispatcher("view.jsp").forward(request, response);
<!-- [view.jsp] -->
<p>์•„์ด๋””: ${user.id}</p>
<p>์ด๋ฉ”์ผ: ${user.email}</p>

๐Ÿง  ์ด๋•Œ, ${user.id} ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ user.getId()๋ฅผ ์ž๋™ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.


2๏ธโƒฃ EL์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ํ๋ฆ„ (์Šค์ฝ”ํ”„ ํƒ์ƒ‰ ์ˆœ์„œ)

๐Ÿ“Œ EL์€ ${user}๋ฅผ ๋งŒ๋‚˜๋ฉด, ๋‹ค์Œ ์ˆœ์„œ๋Œ€๋กœ ์ฐพ์Šต๋‹ˆ๋‹ค:

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

โœ… ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด Scope์—์„œ ๋ฐœ๊ฒฌ๋œ ๊ฐ’ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


3๏ธโƒฃ ์‹ค๋ฌด ํ๋ฆ„ ์˜ˆ์ œ: Servlet โ†’ JSP โ†’ EL ์ „์ฒด ์—ฐ๊ฒฐ

๐Ÿ”ธ Step 1: Servlet โ€“ ๋ฐ์ดํ„ฐ ์ค€๋น„

// User.java (DTO)
public class User {
    private String id;
    private String email;
    // constructor, getters/setters
}

// UserServlet.java
User user = new User("hong", "hong@gmail.com");
request.setAttribute("user", user);
request.getRequestDispatcher("userInfo.jsp").forward(request, response);

๐Ÿ”ธ Step 2: JSP โ€“ EL๋กœ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ

<!-- userInfo.jsp -->
<h2>ํšŒ์› ์ •๋ณด</h2>
<p>์•„์ด๋””: ${user.id}</p>
<p>์ด๋ฉ”์ผ: ${user.email}</p>

4๏ธโƒฃ ์‹ค๋ฌด ์‹ค์Šต ๋ฌธ์ œ (์ดˆ๊ธ‰ + ์‹ค์ „)

๐ŸŸก ๋ฌธ์ œ 1. EL๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ™•์ธํ•ด์•ผ ํ•  ๊ฒƒ์€?

โœ… ์ฒดํฌ๋ฆฌ์ŠคํŠธ:


๐ŸŸข ๋ฌธ์ œ 2. ์•„๋ž˜ Servlet ์ฝ”๋“œ ์‹คํ–‰ ํ›„, JSP์—์„œ ์ด๋ฉ”์ผ์„ ์ถœ๋ ฅํ•ด๋ณด์„ธ์š”.

User user = new User("lee", "lee@email.com");
request.setAttribute("member", user);

๐Ÿ”ธ ํ•ด๋‹ต:

<p>์ด๋ฉ”์ผ: ${member.email}</p>

5๏ธโƒฃ ๊ธฐ์ˆ ๋ฉด์ ‘ ํ•ต์‹ฌ ์งˆ๋ฌธ ์ •๋ฆฌ

์งˆ๋ฌธ ์˜ˆ์‹œ ๋‹ต๋ณ€ ์š”์•ฝ
โ“ EL์ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””์„œ ๊ฐ€์ ธ์˜ค๋‚˜์š”? EL์€ JSP์—์„œ ${๋ณ€์ˆ˜}๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด page โ†’ request โ†’ session โ†’ application ์ˆœ์œผ๋กœ ๊ฐ’์„ ์ฐพ์•„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
โ“ EL์ด ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์–ด๋–ค ์กฐ๊ฑด์ด ํ•„์š”ํ•œ๊ฐ€์š”? EL์€ setAttribute()๋กœ ์ €์žฅ๋œ ๊ฐ์ฒด์—ฌ์•ผ ํ•˜๋ฉฐ, getter ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ“ EL์—์„œ ${user.id}๋Š” ์‹ค์ œ๋กœ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋‚˜์š”? user.getId()๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ถœํ•ด ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
โ“ EL์ด ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅํ•˜์ง€ ์•Š์„ ๋•Œ๋Š”? ํ•ด๋‹น ์ด๋ฆ„์˜ ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ์Šค์ฝ”ํ”„์—๋„ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ถœ๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
โ“ setAttribute ์—†์ด EL๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋‚˜์š”? ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฉด EL์€ ๋นˆ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. null ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ <c:if test>์™€ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

6๏ธโƒฃ ์š”์•ฝ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

๐Ÿ“Œ EL + setAttribute๋Š” JSP MVC ๊ตฌ์กฐ์—์„œ View์™€ Controller๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ•ต์‹ฌ ํ†ต๋กœ์ž…๋‹ˆ๋‹ค.

โœ… EL์€ ์˜ค์ง ์ถœ๋ ฅ ์ „์šฉ์ด๋ฉฐ,

โœ… Servlet โ†’ setAttribute() ๋กœ ์ €์žฅ๋œ ๊ฐ์ฒด๋งŒ

โœ… ${} ๋ฌธ๋ฒ•์œผ๋กœ ๊ฐ€์ ธ์™€ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ› ๏ธ ๋ณด๋„ˆ์Šค ํŒ: JSP ํŽ˜์ด์ง€์—์„œ null ๋ฐฉ์ง€ํ•˜๊ธฐ

<c:choose>
  <c:when test="${empty user}">
    <p>ํšŒ์› ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.</p>
  </c:when>
  <c:otherwise>
    <p>์•„์ด๋””: ${user.id}</p>
  </c:otherwise>
</c:choose>