λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λͺ©λ‘μ΄ μ—†μŠ΅λ‹ˆλ‹€.

[JSP] νŽ˜μ΄μ§€ 이동 νƒœκ·Έ (μ•‘μ…˜νƒœκ·Έ <jsp:forward>와 λ¦¬λ‹€μ΄λ ‰νŠΈ)

πŸ—£ Language/JSP



     νŽ˜μ΄μ§€ 이동


    JSPμ—μ„œ νŽ˜μ΄μ§€ 이동 방법은 μ—¬λŸ¬κ°€μ§€ μžˆλŠ”λ°μš” 예λ₯Ό λ“€λ©΄ κΌ­ JSP뿐만 μ•„λ‹ˆλΌ HTMLμ—μ„œλ„ <a>νƒœκ·Έλ₯Ό ν†΅ν•΄μ„œ μ΄λ™μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ form ν˜•μ‹μ˜ action에 URL을 μ§€μ •ν•΄μ„œ μ—­μ‹œ νŽ˜μ΄μ§€λ₯Ό μ΄λ™μ‹œν‚¬ 수 μžˆμ–΄μš”. κ·ΈλŸΌ JSPμ—μ„œλŠ” μ–΄λ–»κ²Œ 이동을 ν•˜λŠ”μ§€ μ•Œμ•„λ΄…μ‹œλ‹€.


    λΉ„κ΅ν• λ§Œν•œ νƒœκ·ΈλŠ” λ‘ κ°€μ§€λ‘œ ν•˜λ‚˜λŠ” <jsp:forward>λΌλŠ” μ•‘μ…˜νƒœκ·Έμ™€ ν•˜λ‚˜λŠ” JSPλ₯Ό κ³΅λΆ€ν–ˆλ‹€λ©΄ 기본적으둜 μ•Œμ•„μ•Ό ν•  기본객체(Implicit Instance)쀑 ν•˜λ‚˜μΈ response객체의 λ©”μ†Œλ“œμΈ sendRedirect()λ₯Ό μ΄μš©ν•˜μ—¬ μ΄λ™μ‹œν‚€λŠ” λ°©λ²•μ΄μ—μš”.


    μ΄λ ‡κ²Œ μ •λ¦¬ν•˜κ³  λ‚˜λ‹ˆκΉŒ νŽ˜μ΄μ§€(λ¬Έμ„œ) 이동 방법이 κΎ€ λ§Žμ€ 것을 μ•Œ 수 μžˆμ–΄μš”. μ‚¬μš©μžμ˜ ν–‰μœ„λ₯Ό ν†΅ν•΄μ„œ μ΄λ™μ‹œν‚€λŠ” 것도 있고 μ„œλ²„μ—μ„œ κ°•μ œμ μœΌλ‘œ 흐름에 따라 μ΄λ™μ‹œν‚€λŠ” 방법도 μžˆλ„€μš”.


    그럼 μ•‘μ…˜νƒœκ·Έλ‘œ μ΄λ™μ‹œν‚€λŠ” κ²½μš°μ™€ response객체둜 μ΄λ™μ‹œν‚€λŠ” λ°©λ²•μ—μ„œ μ°¨μ΄λŠ” 뭘까?


    μ•‘μ…˜νƒœκ·Έ <jsp:forward>λ₯Ό μ΄μš©ν•œ 방법은 같은 μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄μ—μ„œλ§Œ 이동이 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ¦‰ μ™ΈλΆ€ 도메인 μ£Όμ†Œλ‘œλŠ” λ„˜μ–΄κ°ˆ 수 μ—†λ‹€λŠ” 뜻이죠. μ‰½κ²Œ λ§ν•΄μ„œ naverμ—μ„œ μ•‘μ…˜νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ—¬ νŽ˜μ΄μ§€λ₯Ό μ΄λ™μ‹œν‚€κ³  μ‹Άλ‹€λ©΄ naverμ•ˆμ˜ νŽ˜μ΄μ§€λ§Œ 이동이 κ°€λŠ₯ν•˜κ³  daumμœΌλ‘œλŠ” λͺ»κ°„λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.


    그와 λ°˜λŒ€λ‘œ response 객체λ₯Ό ν†΅ν•΄μ„œ λ¦¬λ‹€μ΄λ ‰νŠΈλ₯Ό ν•˜λ©΄ μ™ΈλΆ€μ£Όμ†Œλ‘œμ˜ 이동이 κ°€λŠ₯ν•©λ‹ˆλ‹€. 


    그럼 response 객체λ₯Ό ν†΅ν•œ λ¦¬λ‹€μ΄λ ‰νŠΈ 방식을 써야 κ² λ„€μš”?


    그건 μ•„λ‹™λ‹ˆλ‹€. 사라지지 μ•Šκ³  남아 μžˆλŠ” κ²ƒμ—λŠ” λ‹€ μ΄μœ κ°€ μžˆλŠ”λ²•, response객체λ₯Ό ν†΅ν•œ λ¦¬λ‹€μ΄λ ‰νŠΈ 방식은 μ™ΈλΆ€ μ£Όμ†Œλ‘œ 이동이 κ°€λŠ₯ν•˜λ‹€λŠ” μž₯점이 μžˆλŠ” λŒ€μ‹ μ— 기본객체(Implicit Instance)인 request와 responseλ₯Ό μ „λ‹¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ requestμ•ˆμ˜ μΏ ν‚€ 정보λ₯Ό νŽ˜μ΄μ§€κ°€ λ„˜μ–΄κ°€λ©΄μ„œ 같이 λ„˜μ–΄κ°€μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 둜그인 정보와 같이 μœ μ§€λ˜μ–΄μ•Ό ν•  값듀을 μœ μ§€ν•  수 μ—†μ–΄μš”.. 이와 λ°˜λŒ€λ‘œ <jsp:forward> μ•‘μ…˜νƒœκ·Έλ₯Ό ν†΅ν•΄μ„œ νŽ˜μ΄μ§€λ₯Ό μ΄λ™μ‹œν‚€λ©΄ μ΄λŸ¬ν•œ 기본객체(Implicit Instance)듀을 같이 λ„˜κΈ°κΈ° λ•Œλ¬Έμ— 정보듀을 μœ μ§€ν•˜κ±°λ‚˜ κ³΅μœ ν•  수 μžˆμ–΄μš”. 각각 μž₯단점이 있기 λ•Œλ¬Έμ— μ–΄λ–€ 방식이 더 쒋더라 ν•˜λŠ”κ±΄ μ—†μ–΄μš”. 사라지지 μ•Šκ³  λ‚¨μ•„μžˆλŠ” λ°μ—λŠ” λ‹€ μ΄μœ κ°€ μžˆλŠ” λ²•μž…λ‹ˆλ‹€.