๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Java·๏ปฟServlet·๏ปฟJSP

์„œ๋ธ”๋ฆฟ ๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ - ServletContext, HttpSession, ServletRequest, JspContext

by Leica 2020. 2. 13.
๋ฐ˜์‘ํ˜•

์„œ๋ธ”๋ฆฟ ๊ธฐ์ˆ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” 4๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๊ฐ ๋ณด๊ด€์†Œ๋Š” ๊ณต์œ  ๋ฒ”์œ„๊ฐ€ ๋‹ค๋ฅด๋‹ค.

 

์„œ๋ธ”๋ฆฟ ๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ ์ข…๋ฅ˜

โ‘  ServletContext, โ‘ก HttpSession, โ‘ข ServletRequest, โ‘ฃ JspContext

 

๋ฐ์ดํ„ฐ ์ ‘๊ทผํ•˜๊ธฐ

๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ชจ๋“  ๋ณด๊ด€์†Œ๊ฐ€ ๋™์ผํ•˜๋‹ค.

๋ณด๊ด€์†Œ ๊ฐ์ฒด.setAttribute(ํ‚ค, ๊ฐ’);    // ์ €์žฅ
๋ณด๊ด€์†Œ ๊ฐ์ฒด.getAttribute(ํ‚ค);        // ์กฐํšŒ

 

๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ ๋ณ„ ํŠน์ง•๊ณผ ํ™œ์šฉ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

ServletContext

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋ ๋•Œ ์ƒ์„ฑ๋ผ์„œ ์ข…๋ฃŒ๋ ๋•Œ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค. ServletContext์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. JSP์—์„œ application ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ฐธ์กฐํ•œ๋‹ค.

 

์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ๊ณผ ๊ณต์œ ํ•˜๋ ค๋ฉด ServletContext๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด DB ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ด์„œ ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ์ด ๊ณต์œ ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ServletContext๋กœ DB ์ปค๋„ฅ์…˜ ๊ฐ์ฒด ๊ด€๋ฆฌํ•˜๊ธฐ

 

HttpSession

ํด๋ผ์ด์–ธํŠธ์˜ ์ตœ์ดˆ ์š”์ฒญ ์‹œ ์ƒ์„ฑ๋ผ์„œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์„๋•Œ ๊นŒ์ง€ ์œ ์ง€๋˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋‹น ํ•œ ๊ฐœ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๋ณดํ†ต ๋กœ๊ทธ์ธํ• ๋•Œ ์ด ๋ณด๊ด€์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋กœ๊ทธ์•„์›ƒํ•˜๋ฉด ์ €์žฅ๋œ ๊ฐ’๋“ค์„ ๋น„์šด๋‹ค. ๋”ฐ๋ผ์„œ HttpSession์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ์—์„œ ๋กœ๊ทธ์•„์›ƒ ์ „๊นŒ์ง€ ๊ฐ’์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. JSP์—์„œ session ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ฐธ์กฐํ•œ๋‹ค.

 

์›น ๋ธŒ๋ผ์šฐ์ €๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๊ทธ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ HttpSession ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด ์ƒˆ๋กœ์šด HttpSession ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค. ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ๋ถ€ํ„ฐ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ Timeout ์š”์ฒญ์ด ์—†์œผ๋ฉด ์‚ญ์ œ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ๋Š” ๋™์•ˆ ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฅผ HttpSession์— ์ €์žฅํ•œ๋‹ค.

 

HttpSession ๊ฐ์ฒด๋ฅผ ๋ฌดํšจํ™”ํ•˜๋Š” invalidate()๊ฐ€ ํ˜ธ์ถœ๋˜์–ด HttpSession ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ๋œ ํ›„, ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด HttpSession ๊ฐ์ฒด๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

 

- [IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(MVC) - (5) ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ(HttpSession)

 

ServletRequest

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ๋•Œ ์ƒ์„ฑ๋ผ์„œ ์‘๋‹ตํ•  ๋•Œ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค. ํฌ์›Œ๋”ฉ/์ธํฌ๋ฃจ๋”ฉํ•˜๋Š” ์„œ๋ธ”๋ฆฟ๋“ค ์‚ฌ์ด์—์„œ ๊ฐ’์„ ๊ณต์œ ํ• ๋•Œ ์œ ์šฉํ•˜๋‹ค. JSP์—์„œ request ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ฐธ์กฐํ•œ๋‹ค.

 

ServletRequest ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋ฉด ํฌ์›Œ๋”ฉ/์ธํด๋ฃจ๋”ฉ์„ ํ†ตํ•ด ํ˜‘์—…ํ•˜๋Š” ์„œ๋ธ”๋ฆฟ/JSP๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

request์™€ response๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์‚ฌ์šฉ ์˜ˆ๋Š” ๋‹ค์Œ ๋งํฌ์—์„œ ์„œ๋ธ”๋ฆฟ์—์„œ JSP๋กœ ์ถœ๋ ฅ์„ ์œ„์ž„ํ•˜๋ฉฐ HttpServletRequest์— ์ถœ๋ ฅ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์ „๋‹ฌํ•˜๋Š” ๋ถ€๋ถ„์„ ๋ณด๋ฉด ๋œ๋‹ค.

 

- [IntelliJ] MVC ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ - (1) ๋ทฐ(JSP) ๋ถ„๋ฆฌํ•˜๊ธฐ

 

JspContext

JSP๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์œ ์ง€๋œ๋‹ค. JSP์—์„œ pageContext ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ฐธ์กฐํ•œ๋‹ค.

 

JspContext ๋ณด๊ด€์†Œ๋Š” JSP๋ฅผ ์‹คํ–‰ํ• ๋•Œ ์ƒ์„ฑ๋˜๊ณ  ์™„๋ฃŒ๋˜๋ฉด ๊ฐ์ฒด๊ฐ€ ์ œ๊ฑฐ๋œ๋‹ค.

๋”ฐ๋ผ์„œ JSP ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

JSP ๋กœ์ปฌ ๋ณ€์ˆ˜์™€ JspContext์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด๋Š”, ํƒœ๊ทธ ํ•ธ๋“ค๋Ÿฌ๋Š” JspContext์—๋Š” ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋กœ์ปฌ ๋ณ€์ˆ˜์—๋Š” ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์— ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ํƒœ๊ทธ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด JspContext์— ๊ฐ’์„ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

ํƒœ๊ทธ ํ•ธ๋“ค๋Ÿฌ :

JSP ํƒœ๊ทธ์˜ ๊ฐ’์„ ๋‹ค๋ฃจ๋Š” ๊ฐ์ฒด
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€