<dispatcher> ํ๊ทธ๋?
<dispatcher> ํ๊ทธ๋?
์์น
<filter-mapping> ๋๋ <servlet-mapping> ์์์ ์ฌ์ฉ๋๋ค.
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<dispatcher>๋ ์ด๋ค ์ญํ ์ ํ๋๊ฐ?
: ์์ฒญ์ด ์ด๋ค ์ข ๋ฅ์ ๋์คํจ์น(๋ถ๋ฐฐ) ๊ณผ์ ์ผ๋ก ์๋์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ํํฐ/์๋ธ๋ฆฟ์ด ๋์ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ
์ฌ์ฉํ ์ ์๋ <dispatcher> ์ข ๋ฅ
dispatcher ์ข ๋ฅ | ์ค๋ช |
REQUEST | ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๋ณด๋ธ HTTP ์์ฒญ |
FORWARD | ์๋ฒ ๋ด๋ถ์์ RequestDispatcher.forward() ๋ก ์ ๋ฌ๋ ์์ฒญ |
INCLUDE | ๋ค๋ฅธ ์์(RequestDispatcher.include()) ์ ํฌํจํ ์์ฒญ |
ERROR | ์์ธ๋ ์ํ์ฝ๋๋ก ๋งคํ๋ ์๋ฌ ์ฒ๋ฆฌ ์์ฒญ |
ASYNC | ๋น๋๊ธฐ ์์ฒญ (AnsycContexet)์ ์ํด ์ฒ๋ฆฌ๋๋ ์์ฒญ |
1. REQUEST
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ง์ /hello ์์ฒญ
- ํํฐ๋ ์๋ธ๋ฆฟ์ด ์ด ์์ฒญ์ ์ฒ๋ฆฌํ ์ง ์ค์
- ๊ธฐ๋ณธ๊ฐ
<dispatcher>REQUEST</dispatcher>
2. FORWARD
- A์์ B๋ก ์์ฒญ์ ๋๊ธธ ๋ request.getRequestDispatcher("/other").forward(req, res) ๊ฐ์ ๋ฐฉ์
- ์ฌ์ฉ์๊ฐ ์ง์ ์์ฒญํ์ง ์์์ง๋ง, ๋ด๋ถ์ ์ผ๋ก ๋ค๋ฅธ ์์์๊ฒ ์์ฒญ์ด ์ ๋ฌ๋จ
<dispatcher>FORWARD</dispatcher>
์์ ํ๋ฆ๋
ํด๋ผ์ด์ธํธ → /first → ๋ด๋ถ์ ์ผ๋ก /second ๋ก forward → ํํฐ๋ second์ ์๋!
3. INCLUDE
- ํ๋์ ์์์์ ๋ค๋ฅธ ์์์ ๊ฒฐ๊ณผ๋ฅผ "ํฌํจ"ํ ๋ (include() ์ฌ์ฉ)
- ๋ณดํต JSP์์ jsp:include ํ ๋ ๋ฐ์ํจ
- ํฌํจ๋ ์์์๋ ํํฐ๋ฅผ ์ ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉ
<dispatcher>INCLUDE</dispatcher>
4. ERROR
- ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด web.xml์ ๋ฑ๋ก๋ <error-page> ์ค์ ์ ๋ฐ๋ผ ์ด๋
- ์ด ์ด๋๋๋ ์์ฒญ์ ๋ํด์๋ ํํฐ๋ ์๋ธ๋ฆฟ์ด ์๋ํ ์ ์์
<dispatcher>ERROR</dispatcher>
์์ ํ๋ฆ๋
/hello ์์ฒญ ์ค ์์ธ ๋ฐ์ → /error.jsp ๋ก ์ด๋ → ์ด๋๋ ํํฐ ์ ์ฉํ๊ณ ์ถ์ผ๋ฉด ERROR!
5. ASYNC
- ์๋ธ๋ฆฟ์์ AsyncContext.start() ๊ฐ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒฝ์ฐ
- ๋น๋๊ธฐ ์๋ต ์ค์๋ ํํฐ๊ฐ ์๋ํ๊ธธ ์ํ ๋
- ์๋ธ๋ฆฟ 3.0 ์ด์์์ ๋น๋๊ธฐ ๊ธฐ๋ฅ์ ์ธ ๋๋ง ์ ์ฉ
<dispatcher>ASYNC</dispatcher>
์ฌ๋ฌ ๊ฐ ์ค๋ณต ์ฌ์ฉ ๊ฐ๋ฅ
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
๋ํดํธ
- <dispatcher>๋ฅผ ์๋ตํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก REQUEST ๋ก ์๋ํจ
<dispatcher>REQUEST</dispatcher> ← ์๋ต ์์๋ ํฌํจ๋จ
'๊ฐ๋ฐ ์ง์, ์คํฌ๋ฆฝํธ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DispatcherServlet ์ด๋ (0) | 2025.04.04 |
---|---|
์คํ๋ง ๋ถํธ ํํฐ์ ๋์ ๊ตฌ์กฐ (3) | 2024.10.21 |
@ManyToOne, OneToMany, OneToOne - ์ ๋ฆฌ์ค - (1) | 2024.04.01 |
@Singular - ์ ๋ฆฌ์ค - (1) | 2024.04.01 |
Spring security (2) | 2024.03.24 |
๋๊ธ