๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JSP

JSP - ์„ธ์…˜(Session)

by ์”จ๋‹ˆ 2021. 11. 22.
728x90

์„ธ์…˜(Session)

- ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„ ๊ฐ„ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์ง€์†, ์œ ์ง€๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ

- ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด์–ด ์„œ๋ฒ„์— ์ ‘์†ํ•œ ๋’ค ์ ‘์† ์ข…๋ฃŒํ•  ๋•Œ ์‹œ์ ๊นŒ์ง€๋ฅผ ๋งํ•จ.

- ํด๋ผ์ด์–ธํŠธ๊ฐ€  ์›น ์„œ๋ฒ„์— Request๋ฅผ ๋ณด๋‚ด๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์˜ ์—”์ง„์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์œ ์ผํ•œ ID๋ฅผ ๋ถ€์—ฌ, ์ด๊ฒƒ์ด Session.

+ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ •๋ณด ๋ณด๊ด€ํ•  ๋•Œ๋Š” ์ฟ ํ‚ค, ์›น ์ปจํ…Œ์ด๋„ˆ์— ์ •๋ณด ๋ณด๊ด€ํ•  ๋•Œ๋Š” ์„ธ์…˜, ์„œ๋ฒ„์— ์ƒ์„ฑ๋˜๋Š” ์ฟ ํ‚ค๋Š” ์„ธ์…˜์ฟ ํ‚ค.

+ ์ฟ ํ‚ค๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ๋ผ๋ฉด, ์„ธ์…˜์€ ์„œ๋ฒ„์ธก ๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋จ.

 

<์„ธ์…˜ ํŠน์ง•>

- ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค๋ฅธ Session์‚ฌ์šฉ, ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ฐ™์€ Session์„ ๊ณต์œ 

  โ˜ž ๊ฐ™์€ JSPํŽ˜์ด์ง€๋ผ๋„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์„ธ์…˜ ์‚ฌ์šฉํ•จ.

- Session์€ ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ๊ฐ’์„ ์œ ์ง€ํ•จ.

- Session์€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„์— ๊ฐ’์„ ์ €์žฅํ•จ. (์˜ค์ง ์„œ๋ฒ„์—์„œ๋งŒ session์ƒ์„ฑ๋จ.)

  โ˜ž ์„œ๋ฒ„๋Š” ์„ธ์…˜์„ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•จ.(ex.๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ)

 

<์„ธ์…˜ ์‚ฌ์šฉ๋ฐฉ๋ฒ•>

- ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์„ธ์…˜ ๊ธฐ๋ณธ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ.

- session๊ธฐ๋ณธ๊ฐ์ฒด๋Š” ์†์„ฑ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ setAttribute(), getAttribute()๋“ฑ์˜ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•ด ์†์„ฑ ๊ฐ’ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ฝ์–ด์˜จ๋‹ค.

  โ˜ž session.setAttribute(), session.getAttribute

- request๊ธฐ๋ณธ๊ฐ์ฒด getSession()๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ํ•จ( ํ˜„์žฌ์š”์ฒญ๊ณผ ๊ด€๋ จ๋œ session๊ฐ์ฒด ๋ฆฌํ„ด )

  โ˜ž request.getAttribute()

 

<์„ธ์…˜ ์‚ญ์ œ>

- ์„ธ์…˜ ์‚ญ์ œ : session.invalidate()

 

<๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ ์˜ˆ์ œ : ๋กœ๊ทธ์ธ- ์„ธ์…˜ ๋“ฑ๋ก, ๋กœ๊ทธ์•„์›ƒ - ์„ธ์…˜ ์‚ญ์ œ>

 

 

<์„ธ์…˜ ์œ ํšจ์‹œ๊ฐ„ ์„ค์ •>

- ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜ ์œ ํšจ์‹œ๊ฐ„ ์„ค์ • : session.setMaxInactiveInterval(์‹œ๊ฐ„);

 

 

<์„ธ์…˜ ์˜ˆ์ œ1 - ์„ธ์…˜ ์‚ฌ์šฉํ•ด ์ •๋ณด ์ €์žฅ>

session.setAttribute()์‚ฌ์šฉํ•ด food์— Apple์ด๋ผ๋Š” ๊ฐ’ ์ €์žฅ

 

์„ธ์…˜์— ์ €์žฅ๋œ ๊ฐ’ ์ถœ๋ ฅํ•  ๋‘๊ฐœ์˜ jspํŽ˜์ด์ง€

 

๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €(Chrome)์—์„œ ์‹คํ–‰ํ•œ๊ฒฐ๊ณผ์™€ ๋‹ค๋ฅธ๋ธŒ๋ผ์šฐ์ €(Microsoft Edge)์—์„œ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ

- ์œ„์˜ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ๋ณผ์ˆ˜ ์žˆ๋“ฏ์ด, ์„ธ์…˜์€ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ๋งŒ ์„ธ์…˜๊ฐ’์„ ๊ณต์œ ํ•œ๋‹ค.

- ๋”ฐ๋ผ์„œ ์œ„์˜ ๊ฒฐ๊ณผ์—์„œ food ๊ฐ’์„ ์ €์žฅ์‹œํ‚จ ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €์—๋Š” food๊ฐ’ ์œผ๋กœ ์ €์žฅ๋œ Apple์ด ์ถœ๋ ฅ๋˜๊ณ , ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์„ธ์…˜์„ ๊ณต์œ ๋ฐ›์ง€ ๋ชปํ•ด null์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

 

<์„ธ์…˜ ์˜ˆ์ œ2 - Map์ด์šฉํ•œ Session(๊ณผ์ผ์„ ๋ช‡ ๋ฒˆ ์„ ํƒํ–ˆ๋Š”์ง€ ์ถœ๋ ฅ)>

์„ ํƒ๋œ ์Œ์‹๋“ค๊ณผ ๊ทธ ์Œ์‹๋“ค์ด ๋ช‡๋ฒˆ ์„ ํƒ์ด ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅ

 

 

<์„ธ์…˜ ์˜ˆ์ œ3 - ์„ธ์…˜ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ์ธํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ>

์„ธ์…˜์‚ฌ์ œ๋ฅผ ํ†ตํ•œ ๋กœ๊ทธ์•„์›ƒ(10logout.jsp)

 

728x90