[Web] Day9 - Servlet

sueยท2024๋…„ 1์›” 16์ผ

๐Ÿ“’๊ตญ๋น„ํ•™์› [Web]

๋ชฉ๋ก ๋ณด๊ธฐ
11/21
post-thumbnail

1. โญ JSTL

โœ๏ธ Test1.

๐Ÿ’ป ์ž…๋ ฅ

JSTL

: EL์ด๋ž‘ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ง๊ฟ
  • ์•„ํŒŒ์น˜์—์„œ ํ‘œ์ค€ํ™”๋œ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • core(์ œ์–ด๋ฌธ) / format / xml / sql๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ

  • Custom Tag: ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜ํ™”์‹œ์ผœ์„œ ๋‚ด๊ฐ€ ์›ํ• ๋•Œ ๋ถˆ๋Ÿฌ์„œ ํŠน์ •์ž‘์—…์„ ์‹œํ‚ค๋Š” ๊ฒƒ

  • โœ… why?
    JSP๋Š” HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ฝ”๋“œ๊ฐ€ ํ˜ผ์šฉ๋ผ์„œ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ, ์„ž์ž„ -> JSTL๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ ๊ฐ€๋…์„ฑ ์ข‹๊ณ , ํŽธ์˜์„ฑ ๋†’์ด๊ธฐ ์œ„ํ•ด

โญ JSTL ๋‹ค์šด๋กœ๋“œ

: (์•„ํŒŒ์น˜) ํ‘œ์ค€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

https://archive.apache.org/dist/jakarta/taglibs/standard/binaries/


โœ… ๋‹ค์šด๋ฐ›์€ ํŒŒ์ผ - ํ†ฐ์บฃ์„œ๋ฒ„์˜ [WEB-INF] - [lib]์— ๋“œ๋ž˜๊ทธ


โœ… ์„ค์ • (ํ•ด๋‘๋ฉด ์ข‹์Œ)


โœ… <%@ taglib prefix="c" %>

  • [ prefix ] : ์ฝ”์–ด(์ œ์–ด๋ฌธ) ์“ธ๊ฑฐ์•ผ
  • else (if)๋ฌธ์ด ๋”ฐ๋กœ ์—†์–ด์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ์–ด์ค˜์•ผ ํ•จ




2. [๋ฐ˜๋ณต๋ฌธ] ์ง์ˆ˜ / ํ™€์ˆ˜ / ํ‘œ

โœ๏ธ Test2.

๐Ÿ’ป ์ž…๋ ฅ


3. ๊ตฌ๊ตฌ๋‹จ ver1

โœ๏ธ Test3.

๐Ÿ’ป ์ž…๋ ฅ


์ง€์ˆ˜ ๋งŒ๋“ค๊ธฐ (์ œ๊ณฑ)

  • set : ์ดˆ๊ธฐํ™”

-๋ฐ˜๋ณต๋ฌธ ex) 2 -> 4๋ฒˆ ๋ฐ˜๋ณตํ•ด๋ผ
result 1๋„ฃ์–ด๋†จ์œผ๋‹ˆ 1 2 / 22 ...


4. ๊ตฌ๊ตฌ๋‹จ ver2 [import]

โœ๏ธ Test4.

๐Ÿ’ป ์ž…๋ ฅ


โœ”๏ธ ์†Œ์Šค ์ฝ”๋“œ๋กœ ๋‚˜์˜ฌ๋•?!

:โญ escapeXml = "false" ํ•„์ˆ˜!!


โœ”๏ธ [url]์„ ํ™œ์šฉํ•œ import


${url }๊ณผ ${u }์˜ ์ฐจ์ด


๋„ค์ดํŠธ + (css๊ฐ€ ์—†์–ด์„œ ์ด๋ ‡๊ฒŒ ๋œธ)

๋„ค์ด๋ฒ„๋Š” ๋ง‰์•„๋‘ฌ์„œ ์ด๋ ‡๊ฒŒ ๋œธ


5. ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ [servlet ์‚ฌ์šฉ]

โœ๏ธ Test5.

๐Ÿ’ป ์ž…๋ ฅ

  • bbs = BoardTest

โฌ‡๏ธ web.xml

โœ… Servlet ์ฃผ์†Œ ๋งŒ๋“ค๊ธฐ

โ‘  bbs์ฒ˜๋Ÿผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ฃผ์†Œ ๋งŒ๋“ค์–ด๋†“๊ธฐ
โ‘ก bbs๋งŒ๋‚˜๋ฉด ๋‚ด๊ฐ€ ๋งŒ๋“  Servlet(.java)ํŒŒ์ผ๋กœ ๊ฐ€


โฌ‡๏ธ BoardServlet.java

โœ… ์ฃผ์†Œ ๋ณ€๊ฒฝ ํ™•์ธ

โ‘  ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ด ์ฃผ์†Œ๊ฐ€ /boardTest/created.jsp"์ด๊ฑธ๋กœ ๋ณด์ด๋ฉด ์•ˆ๋จ โŒ
โ‘ก foward๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ๋„˜๊ฒจ์•ผํ•จ /study/bbs/created.do ์ด๊ฑธ๋กœ ๋ณด์—ฌ์•ผ ํ•จ โญ•

โœ… ๊ธฐ์กด์— ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ ์ฃผ์†Œ -> Servlet ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ธฐ

--

๐Ÿ“Œ โœจ insert / delete/ session์ด ๋ฐ”๋€Œ๋Š”๊ฑฐ๋ฉด Redirect

๊ทธ ์™ธ์—๋Š” ๋ฌด์กฐ๊ฑด ๋‹ค forward!!!!


โœ… forward๋ฐฉ์‹ -> ๊ณต์šฉ ๋ฉ”์„œ๋“œ ์ƒ์„ฑ

myUtil ๊ฐ์ฒด ์ƒ์„ฑ ์ด์œ ?
: list์—์„œ ๊ฐ€์ ธ๋‹ค ์“ธ๊ฑฐ๋ผ์„œ


โญ forward : ์‹ค์ œ ์ฃผ์†Œ / Redirect : ๊ฐ€์งœ ์ฃผ์†Œ


์›๋ž˜ : jsp + html ์˜€๋Š”๋ฐ ์ด์ œ๋Š” jsp๋ฅผ servlet์— ์“ฐ๊ฒŒ ๋˜๋ฉด์„œ ๊ตฌ๋ถ„์ง“๊ฒŒ ๋จ
: โญ 4๊ฐœ์˜ ๋„˜๊ฒจ์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์•„๋ž˜ url ์ฃผ์†Œ (์ง„์งœ ์ฃผ์†Œ)๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋จ โญ


โœ… ๋ฆฌ์ŠคํŠธ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋ž˜ html์— ๋ฟŒ๋ ค์ฃผ๋ฉด ๋จ


โœ… EL์“ด๋‹ค๊ณ  GETTER/SETTER์ง€์šฐ๋ฉด ์•ˆ๋จ โŒ


โœ… ํŽ˜์ด์ง•์ž‘์—…

: ${pageIndexList }

์ฐพ๋Š” ๊ฐ’์— ๊ฐ’์ด ์žˆ๋‹ค๋ฉด -> param์— searchKey / searchValue ์กฐ๊ฑด๋ฌธ ๋„ฃ์–ด๋ผ!


โœ… &num=<%=dto.getNum&>%์ด ๋ถ™์–ด์•ผํ•จ (num์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋‹ˆ๊นŒ)

: ๊ทธ๋ž˜์•ผ BoardServlet์—์„œ ๋„˜์–ด์˜จ 3๊ฐœ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Œ

  • ๊ฒ€์ƒ‰ํ•œ ์ƒํƒœ(3๊ฐœ) : searchKey, searchValue, articleUrl
  • ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š์€ ์ƒํƒœ(1๊ฐœ) : articleUrl


bbs๊ฐ€ ์ฃผ์†Œ์— ์žˆ์œผ๋‹ˆ ํ†ฐ์บฃ์„œ๋ฒ„๊ฐ€ bbs๋ฅผ ์ธ์‹ํ•˜๊ณ  -> BoardServlet์œผ๋กœ ๋ณด๋ƒ„
-> ๊ทธ๋ž˜์„œ ์ญˆ๋ฃจ๋ฃฉ ์•„๋ž˜๋กœ ๋‚ด๋ ค๋ณด๋‹ค๋ณด๋‹ˆ article.do๊ฐ€ ์žˆ์–ด์„œ url = "/boardTest/article.jsp"; ์—ฌ๊ธฐ๋กœ ๋ณด๋ƒ„

์ด๋•Œ ๊ฒ€์ƒ‰์„ ํ•˜๊ณ  ๋“ค์–ด์˜ค๋ฉด ์ฃผ์†Œ์— 4๊ฐœ๊ฐ€ ๋”ธ๋ ค ๋“ค์–ด์™€์•ผํ•จ


โœ… Servlet์—์„œ param๋ณ€์ˆ˜ ์“ฐ๋ฉด ์•ˆ๋˜๋Š” ์ด์œ ? โŒ

post๋ฐฉ์‹(์ˆจ๊ฒจ์„œ)์œผ๋กœ ๋ฐ์ดํ„ฐ ๋„˜๊ธธ๋•Œ ์ธ์ˆ˜๊ฐ€ ์–ด๋”˜๊ฐ€์— ๋‚ด๋ถ€์ ์œผ๋กœ ๊ทธ๋ฆ‡[param]์— ๋‹ด๊ฒจ์„œ ๋„˜์–ด๊ฐ€๋ฏ€๋กœ ,
๋„˜๊ธธ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ param์œผ๋กœ ๋„˜๊ธฐ๋ฉด ๊ฒน์นจ.ย  (๋‚ด๊ฐ€ ๋งŒ๋“  ๋ณ€์ˆ˜๋Š” ์ƒ๊ด€์—†์Œ)

์—…๋กœ๋“œ์ค‘..

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