Servlet & JSP ์‹ฌํ™”(1)

Kim Hyen Suยท2023๋…„ 8์›” 6์ผ

๐ŸŒŸURL root ๋ณ€๊ฒฝ

  • project โ†’ properties โ†’ web project settings โ†’ context root โ†’ '/'๋กœ ๋ณ€๊ฒฝ.

๐ŸŒŸ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น๋ฌธ์„œ ์ถœ๋ ฅ

  • ์›น๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๊ฐ์ž์˜ ์ž์˜์  ํ•ด์„๋ฐฉ์‹์œผ๋กœ ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…์ธ  ํ˜•์‹์„ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.
  • response.contentType("text/html; charset=utf-8");

๐ŸŒŸ์›น๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก ์‹œ ํ•œ๊ธ€ ๊นจ์ง€๋Š” ํ˜„์ƒ.

  • ์›น์„œ๋ฒ„์—์„œ ์›น๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก ์‹œ ISO-8859-1 ์˜ ๋ฌธ์ž์„ธํŠธ๋กœ ์ธ์ฝ”๋”ฉ๋œ๋‹ค. ์ด๋Š” 1๋ฐ”์ดํŠธ์”ฉ ์ „์†ก๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ธ€์ด ๊นจ์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” response ์˜ setCharacterEncoding() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ charset์„ "UTF-8"๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • response.setCharaceterEncoding("UTF-8");

๐ŸŒŸ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ํ•œ๊ธ€ ๊นจ์ง€๋Š” ํ˜„์ƒ.

  • ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น์„œ๋ฒ„๋กœ ์ „์†ก ์‹œ ๋ฌธ์ž์„ธํŠธ๋ฅผ UTF-8๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • request.setCharaceterEncoding("UTF-8");
  • ์ถ”๊ฐ€๋กœ ์š”์ฒญ ์‹œ ์ž…๋ ฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉ ์ „์— 'null ์—ฌ๋ถ€' ๋ฐ '๊ณต๋ฐฑ์—ฌ๋ถ€'๋ฅผ ํ™•์ธ ํ›„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๐ŸŒŸsubmit ๋ฒ„ํŠผ์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ๊ตฌ๋ณ„ํ•˜๊ธฐ.

  • input type="button" 2๊ฐœ์ธ ๊ฒฝ์šฐ
  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์„ input ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์—์„œ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” name ์†์„ฑ์„ ์ง€์ •ํ•ด์ค˜์•ผ ํ•˜๋ฉฐ, ๋™์ผํ•œ name ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” name ๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•˜๊ฑฐ๋‚˜, value ์†์„ฑ ๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
    - input type="submit" name="operation" value="v1"
    - input type="submit" name="operation" value="v2"

์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด๋กœ ๋ฐ›๊ธฐ

  • input ํƒœ๊ทธ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ, ๋™์ผํ•œ name ์†์„ฑ ๊ฐ’์„ ๊ฐ–๋Š” input ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ด๋‹ค.
  • ์ด์ฒ˜๋Ÿผ ๋™์ผํ•œ name ์†์„ฑ์˜ ๊ฐ’์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฐ›๊ฒŒ ๋  ๊ฒฝ์šฐ, ์ด๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ ์„œ๋ฒ„์— ์ „๋‹ฌ๋œ๋‹ค.
  • ์„œ๋ฒ„์—์„œ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
    • String[] values = request.getParameterValues("name๊ฐ’");

๐ŸŒŸ์ƒํƒœ ์œ ์ง€์˜ ํ•„์š”์„ฑ

  • ์›น์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด ์„œ๋ธ”๋ฆฟ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์—์„œ ์ž…๋ ฅ๋ฐ›์€ ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ „์—ญ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ํ•„์š”ํ•˜์ง€๋งŒ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.(๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ)
  • ์ฒ˜์Œ ๊ฐ’์„ ์ž…๋ ฅ ํ›„ ์„œ๋ธ”๋ฆฟ์ด ์ข…๋ฃŒ๋˜๋ฉด, ๋‚ด๋ถ€ ๊ฐ’๋“ค๋„ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง„๋‹ค.
  • ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’๋“ค์„ ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ๊ณผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋….
    • application
    • session
    • cookie

โ‘ Application ์ €์žฅ์†Œ : ์„œ๋ธ”๋ฆฟ ์ปจํ…์ŠคํŠธ

  • ์„œ๋ธ”๋ฆฟ ์ปจํ…์ŠคํŠธ๋ž€? ์„œ๋ธ”๋ฆฟ์ด ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค.
  • ํ•˜๋‚˜์˜ Web Application ๋‚ด์— ์žˆ๋Š” ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ๋“ค์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๊ณ  ์„œ๋ธ”๋ฆฟ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• .
  • ์ด์ฒ˜๋Ÿผ Servlet Context์— ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” attribute ํ˜•ํƒœ๋กœ ์†์„ฑ๋ช…๊ณผ ์†์„ฑ๊ฐ’์„ ์ง€์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
    • ServletContext application = reuqest.getServletContext();
    • application.setAttribute("์†์„ฑ๋ช…1","์†์„ฑ๊ฐ’1");
    • application.setAttribute("์†์„ฑ๋ช…2","์†์„ฑ๊ฐ’2");
    • appication์— ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ.
    • application.getAttribute("์†์„ฑ๋ช…");

โ‘กSesstion์„ ์ด์šฉํ•œ ์ƒํƒœ๊ฐ’ ์œ ์ง€

  • HttpSession session = reuqest.getSession();
  • session.setAttribute("์†์„ฑ๋ช…","์†์„ฑ๊ฐ’");
  • session.getAttribute("์†์„ฑ๋ช…");

Application๊ณผ Session ์†์„ฑ ์ฐจ์ด

  • Application : ์ „์—ญ ๊ณต๊ฐ„์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์†์„ฑ.
  • Session : session ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์†์„ฑ.
    • session์€ ํ˜„์žฌ ์ ‘์†ํ•œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    • ์ฆ‰, ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅธ session์„ ๊ฐ–๊ฒŒ ๋˜๊ณ , ํ•ด๋‹น session์€ ๊ฐ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์ปดํ“จํ„ฐ์—์„œ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ๋ฒ„์— ์š”์ฒญํ•œ ๊ฒฝ์šฐ, ๋‘ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, session์ด ๋‹ค๋ฅด๋‹ค.
    • ์ถ”๊ฐ€๋กœ ์ปดํ“จํ„ฐ์—์„œ ๋™์ผํ•œ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‘ ๊ฐœ๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ ๋‘ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฐ™์€ ์‚ฌ์šฉ์ž๋กœ ์ธ์‹ํ•œ๋‹ค.(๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ : ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž์›์„ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.)

์›น ์„œ๋ฒ„์—์„œ ํ˜„์žฌ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž(Session)๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐฉ์‹.

  • ์„œ๋ฒ„์—๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ ์‹œ, ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์— ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์ด ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ application์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • ๋˜ํ•œ, ํ˜„์žฌ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ธ session์ด ์กด์žฌํ•œ๋‹ค.
  • ์„ธ์…˜์€ ์„ธ์…˜์•„์ด๋””(SID)๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ๋งŒ session ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • WAS๋Š” ์ฒ˜์Œ ์š”์ฒญ์œผ๋กœ ๋“ค์–ด์˜จ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์‹๋ณ„๋ฒˆํ˜ธ๊ฐ€ ์—†์œผ๋ฏ€๋กœ application๋งŒ ์ œ๊ณตํ•ด์ค€๋‹ค. ์„œ๋ฒ„๋Š” ์‘๋‹ต ์‹œ์— SID๋ผ๋Š” ์•„์ด๋””๋ฅผ ์ œ๊ณตํ•ด์ค€ ๋’ค WAS๋Š” SID์™€ ์—ฐ๊ฒฐ๋œ session ๊ณต๊ฐ„์„ ํ• ๋‹นํ•œ๋‹ค. ์ด ํ›„์— ๋™์ผํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์„œ๋ฒ„์— ์š”์ฒญ ์‹œ SID๊ฐ€ ํฌํ•จ๋˜๋ฉฐ, WAS์—์„œ๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ session์„ ์ œ๊ณตํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์‹ค์ œ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ—ค๋”๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด, COOKIE ๊ฐ’์œผ๋กœ JSESSION์˜ ์‹๋ณ„์ž ๊ฐ’์„ ํ†ตํ•ด ํ•ด๋‹น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋™์ผํ•œ ์‚ฌ์šฉ์ž์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์‹๋ณ„ํ•œ๋‹ค.
  • ์„œ๋ฒ„์ธก SID ๊ด€๋ฆฌ ๊ด€๋ จ ๋ฉ”์„œ๋“œ
    • void invalidate() : ์„ธ์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๋“ค์„ ๋ฐ”๋กœ ํ•ด์ œ.
    • void setMaxInactiveInterval(int interval) : ์„ธ์…˜ ํƒ€์ž„์•„์›ƒ์„ ์ •์ˆ˜(์ดˆ)๋กœ ์„ค์ •
    • boolean isNew() : ์„ธ์…˜์ด ์ƒˆ๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
    • Long getCreationTime() : ์„ธ์…˜์ด ์‹œ์ž‘๋œ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜, 1970๋…„ 1์›” 1์ผ์„ ์‹œ์ž‘์œผ๋กœ ํ•˜๋Š” ๋ฐ€๋ฆฌ์ดˆ.(epoch time)
    • long getLastAccessedTime() : ๋งˆ์ง€๋ง‰ ์š”์ฒญ ์‹œ๊ฐ„, 1970๋…„ 1์›” 1์ผ์„ ์‹œ์ž‘์œผ๋กœ ํ•˜๋Š” ๋ฐ€๋ฆฌ์ดˆ.
  • session์€ ์ƒ์„ฑ ์‹œ์  ์ดํ›„ ํŠน์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์‚ญ์ œ๋˜๋Š”๋ฐ, ์ด ์‹œ๊ฐ„์€ session ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์…‹๋œ๋‹ค. ์„ธ์…˜ ์‹œ๊ฐ„์ด ์ง€๋‚œ ๋’ค ์ ‘์†ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค.

โ‘ขCookie๋ฅผ ์ด์šฉํ•œ ์ƒํƒœ ๊ฐ’ ์œ ์ง€

  • cookie : ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ’.
  • ์„œ๋ฒ„์ธก์—์„œ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ : application, session
  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ : cookie
  • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ ์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’
    • Header ์ •๋ณด(TCP/IP ์ •๋ณด)
    • ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ
    • ์ฟ ํ‚ค
  • ์ฟ ํ‚ค๋Š” ์ฒ˜์Œ ์ƒ์„ฑ์€ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ ํ›„ response header๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•ด์ฃผ๋ฉฐ, ์„œ๋ฒ„์ธก์—์„œ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญ ์‹œ๋งˆ๋‹ค ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ฟ ํ‚ค๋ฅผ ์ „๋‹ฌํ•ด์ค€๋‹ค.
  • cookie ๊ด€๋ จ ๋ฉ”์„œ๋“œ
  • addCookie();
  • cookie ์•ˆ์— ์ €์žฅ๋˜๋Š” ๊ฐ’์€ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋งŒ ์ €์žฅ๋  ์ˆ˜ ์žˆ๋‹ค.
		Cookie cookie = new Cookie("c",String.valueOf(result));
        response.addCookie(cookie);
  • getCookies();
    - Cookie[] cookies = request.getCookies();
    - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜.
        	for(Cookie cookie : cookies)
        		if("c".equals(cookie.getName()))
        			_c = cookie.getValue();}
  • Cookie.setPath("url") : ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋™์ผํ•œ url ์š”์ฒญ ์‹œ cookie๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜๋Š” ์˜ต์…˜.
  • Cookie.setMaxAge(int sec)
    • cookie์— ๋ณ„๋„์˜ maxAge๋ฅผ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์„ ๊ฒฝ์šฐ, default๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ๋™์ผํ•ด์ง„๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ ์‹œ ํ•จ๊ป˜ ์‚ญ์ œ๋œ๋‹ค.
    • maxAge ์„ค์ • ์‹œ ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์—ฐ๋™๋œ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€ ์˜๊ตฌ ์ €์žฅ์†Œ์— ์ €์žฅ๋˜์–ด ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ ์‹œ์—๋„ ๊ฐ’์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
    • ์ผ๋ฐ˜์ ์œผ๋กœ setMaxAge(24 * 60 * 60); ์™€ ๊ฐ™์ด ๋ช…์‹œ์ ์œผ๋กœ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ด์ค€๋‹ค. ์œ„๋Š” 1์ผ ๋™์•ˆ cookie๋ฅผ ์œ ์ง€ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

1.application

  • ์‚ฌ์šฉ๋ฒ”์œ„ : ์ „์—ญ ๋ฒ”์œ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ €์žฅ ๊ณต๊ฐ„
  • ์ƒ๋ช…์ฃผ๊ธฐ : WAS ์‹œ์ž‘ ~ ์ข…๋ฃŒ
  • ์ €์žฅ์œ„์น˜ : WAS ์„œ๋ฒ„ ์ธก ๋ฉ”๋ชจ๋ฆฌ

2.session

  • ์‚ฌ์šฉ๋ฒ”์œ„ : ์„ธ์…˜ ๋ฒ”์œ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ €์žฅ ๊ณต๊ฐ„
  • ์ƒ๋ช…์ฃผ๊ธฐ : session ์‹œ์ž‘ ~ ์ข…๋ฃŒ
  • ์ €์žฅ์œ„์น˜ : WAS ์„œ๋ฒ„ ์ธก ๋ฉ”๋ชจ๋ฆฌ

3.cookie

  • ์‚ฌ์šฉ๋ฒ”์œ„ : Web browser ๋ณ„ ์ง€์ •ํ•œ path ๋ฒ”์ฃผ ๊ณต๊ฐ„
  • ์ƒ๋ช…์ฃผ๊ธฐ : Browser์— ์ „๋‹ฌํ•œ ์‹œ๊ฐ„ ~ ๋งŒ๋ฃŒ์‹œ๊ฐ„
  • ์ €์žฅ์œ„์น˜ : Web Browser ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” ํŒŒ์ผ
  • ์ €์žฅ ๊ธฐ๊ฐ„์ด ๊ธธ ๊ฒฝ์šฐ cookie๋ฅผ ์‚ฌ์šฉ.
  • ํŠน์ • url์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” cookie๋ฅผ ์‚ฌ์šฉ.
  • ์ฆ‰, ์„œ๋ฒ„ ์ž์›์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค€๋‹ค.

๐ŸŒŸํŽ˜์ด์ง€ ์ „ํ™˜ ๋ณต์Šต

Redirect

  • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญํ•  ์ฃผ์†Œ๋ฅผ ์‘๋‹ต ๊ฒฐ๊ณผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ.
  • ํด๋ผ์ด์–ธํŠธ๋Š” response์— ๋‹ด๊ธด redirect ์ฃผ์†Œ๋ฅผ ์žฌ์š”์ฒญํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— url์ด ๋ณ€๊ฒฝ๋œ๋‹ค.
  • Redirect๋Š” ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— HttpServletRequest ๊ฐ์ฒด๋Š” ์†Œ๋ฉธ ํ›„ ๋‹ค์‹œ ์ƒ์„ฑ๋˜๋ฏ€๋กœ, ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ์‚ญ์ œ๋œ๋‹ค. ํ•˜์ง€๋งŒ, HttpSession ๊ฐ์ฒด๋Š” ์œ ์ง€๋œ๋‹ค.

forward

  • ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„์„ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ.
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ํ๋ฆ„์ด ์ด๋™๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ์ฐฝ์˜ ์ฃผ์†Œ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • HttpServletRequest ๊ฐ์ฒด ๋ฐ HttpSession ๊ฐ์ฒด ๋ชจ๋‘ ์œ ์ง€.
profile
๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์—”์ง€๋‹ˆ์–ด

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