ํด๋ผ์ด์ธํธ๊ฐ URL์์ฒญ์ ๋ณด๋ผ ๊ฒฝ์ฐ ํด๋น URL ๋งคํ์ ๊ฐ์ง๋ Controller์์ ํด๋น ๋ฉ์๋๋ฅผ ์คํ ์ํฌ ๊ฒ์ด๋ค.
( ๐คฆ๐ปโโ๏ธ ์์ ๊ฐ์ ๊ณผ์ ์ ๊ฐ๋จํด ๋ณด์ด์ง๋ง DispatcherServlet์ ํตํด ์ฌ๋ฌ ๊ณผ์ ๋ค์ด ์ผ์ด๋๋ค.)
์ด๋, ์์ฒญ ํ๋ฆ๋ค ์ฌ์ด์ ๋ก์ง์ ๋ผ์๋ฃ์ ์ ์๊ฒ ๋์์ฃผ๋ ์ธํฐํ์ด์ค์ด๋ค.
์ ์ผ ๋ํ์ ์ธ ์์๋ก ๋ก๊ทธ์ธ์ด ์๋ค. ์๋ฅผ๋ค์ด ๋ก๊ทธ์ธํ์ง ์์ ์ํ๋ก ๊ธ์ฐ๊ธฐ ํผ์ด๋ ํ์์ ๋ณด ์์ ํผ์ URL์ ์ ๋ ฅํด์ ๋ค์ด๊ฐ์ง๋๊ฑด ๋งค์ฐ ์ด์ํ๋ค.
์ด๋ฌํ ์ํฉ์ด ์์๋ ๋ก๊ทธ์ธ ํ๋ฉด์ผ๋ก ์ด๋์ํค๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ ์ปจํธ๋กค๋ฌ ์ฝ๋๋ง๋ค ๋ก๊ทธ์ธ ํ์ธ ์ฌ๋ถ ์ฝ๋๋ฅผ ์ฝ์ ํ๋๊ฒ์ ๋ง์ ์ค๋ณต์ ์ผ์ผํจ๋ค.
์ด๋ ๋ค์์ ์ปจํธ๋กค๋ฌ์ ๋์ผํ ๊ธฐ๋ฅ์ ์ ์ฉํด์ผ ํ ๋ ์ฌ์ฉํ ์ ์๋๊ฒ์ด HandlerInterceptor์ด๋ค.
HandlerInterceptor ์ธํฐํ์ด์ค์ ์์ฃผ ์ฐ์ด๋ 3๊ฐ์ง ๋ฉ์๋๊ฐ ์๋ค.
HandlerInterceptor ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ค์ ์ ๋ถ default(JAVA8 ์ดํ)๋ก ๋์ด ์์ผ๋ฏ๋ก ์ํ๋ ๋ฉ์๋๋ง ๊ตฌํํ๋ฉด ๋๋ค.
Interceptor๋ฅผ ์ฌ์ฉํ๋ ์ค spring์์ด servlet/jsp๋ก ์น์ ๊ตฌํํ ๋ filter๋ผ๋๊ฒ์ ์ฌ์ฉํ๊ฒ์ด ๋ ์ฌ๋๋ค.
๊ธฐ๋ฅ๋ค์ด ๋น์ทํด ๋ณด์์ง๋ง ๋ค๋ฅธ์ ๋ค์ด ๋ถ๋ช ์์๋ค.
Filter : Web Application์ ๋ฑ๋ก
Interceptor : Spring Context์ ๋ฑ๋ก
Filter ์ ๊ฒฝ์ฐ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด Web Applications์์ ์ฒ๋ฆฌํ๋ค. was๋ฅผ ํฐ์บฃ์ผ๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ Filter ๋ด์์ ์์ธ๋ฅผ ์ก์์ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ฏธ๋ค์ผ ํ๋ค.
Interceptor ์ ๊ฒฝ์ฐ DispatcherServlet๋ผ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ๋ด์ ์์ผ๋ฏ๋ก ControllerAdvice์์ ExceptionHandler๋ฅผ ์ฌ์ฉํด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
์ด์ฒ๋ผ Interceptor์ ์์ธ์ฒ๋ฆฌ๋ Filter์ ๋นํด ๊ฒฌ๊ณ ํ๋ค๊ณ ํ ์ ์๋ค.
JSP/Servlet์ ํ ๋น์์ ์๋ง์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ๋์ผํ ๊ธฐ๋ฅ์ ์ ์ฉํด์ผ ํ๋ค๋ ์๊ฐ์ ์์ธํ์์ง๋ง Interceptor ๋ฅผ ์๊ฒ ๋ ํ์ ๋๋ฌด ๊ธฐ๋ปค๋ค... (๊ทธ๋ Filter๋ก ์ฒ๋ฆฌํด ์ค ์๊ฐ๋ ๋ชป ํ์๋ค ใ ใ )