web.xml ์๋ฆฌ -์์ฑ์ค-
๋ค, ์ ํํฉ๋๋ค. WAS๋ฅผ ์คํ์ํค๋ฉด ํํฐ ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ณ , web.xml์ ์ ์๋ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ค์ ์ํด ํํฐ ๊ฐ์ฒด์ ํ๋ ๊ฐ๋ค์ด ์ด๊ธฐํ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๋ฉด ํํฐ์ doFilter ๋ฉ์๋๊ฐ ์๋ํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ๋ค์ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋จ๊ณ๋ณ ๋์ ๊ณผ์
- WAS ์์:
- WAS(Web Application Server)๊ฐ ์์๋ ๋, web.xml ํ์ผ์ ์ฝ์ด ํํฐ์ ์๋ธ๋ฆฟ ๋ฑ์ ์ค์ ์ ๋ก๋ํฉ๋๋ค.
- ํํฐ ๊ฐ์ฒด ์์ฑ ๋ฐ ์ด๊ธฐํ:
- web.xml์์ ์ ์๋ ํํฐ ํด๋์ค๋ฅผ ์ฐพ์ ์ธ์คํด์คํํฉ๋๋ค.
- ํํฐ ๊ฐ์ฒด์ init ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ด๊ธฐํ ์์ ์ ์ํํฉ๋๋ค. ์ด๋ FilterConfig ๊ฐ์ฒด๋ฅผ ํตํด web.xml์ ์ ์๋ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ค์ ์ฝ์ด ํ๋ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
java์ฝ๋ ๋ณต์ฌ@Override public void init(FilterConfig filterConfig) throws ServletException { // ์ด๊ธฐํ ๋งค๊ฐ๋ณ์ ์ฝ๊ธฐ bypassWebserverConstantPath = filterConfig.getInitParameter("evfw_bypass_webserver_constant_path"); } - ํด๋ผ์ด์ธํธ ์์ฒญ:
- ํด๋ผ์ด์ธํธ๊ฐ ํน์ URL๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค. ์๋ฅผ ๋ค์ด, /data/login.do URL๋ก ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
- ์์ฒญ ์ฒ๋ฆฌ:
- WAS๋ ์์ฒญ์ ์์ ํ๊ณ , web.xml์ ์ ์๋ URL ํจํด๊ณผ ๋งค์นญ๋๋ ํํฐ๋ฅผ ์ฐพ์ต๋๋ค.
- ๋งค์นญ๋๋ ํํฐ๊ฐ ์์ผ๋ฉด, ํด๋น ํํฐ์ doFilter ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
java์ฝ๋ ๋ณต์ฌ@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String requestPath = httpRequest.getRequestURI(); // ํน์ ๊ฒฝ๋ก์ ๋ํ ์ฐํ ์ฒ๋ฆฌ ๋ก์ง if (requestPath.equals(bypassWebserverConstantPath)) { chain.doFilter(request, response); } else { // ๋ค๋ฅธ ๊ฒฝ๋ก์ ๋ํ ์ผ๋ฐ ํํฐ๋ง ๋ก์ง chain.doFilter(request, response); } } - ํํฐ ์ฒด์ธ ์ฒ๋ฆฌ:
- ์์ฒญ์ด ํํฐ ์ฒด์ธ์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๊ฐ ํํฐ์ doFilter ๋ฉ์๋๊ฐ ์์ฐจ์ ์ผ๋ก ํธ์ถ๋ฉ๋๋ค.
- ๊ฐ ํํฐ๋ ํ์ํ ์์ (๋ก๊ทธ ์์ฑ, ์์ฒญ ๋ณํ, ์ธ์ฆ/์ธ๊ฐ ์ฒ๋ฆฌ ๋ฑ)์ ์ํํ ํ chain.doFilter๋ฅผ ํธ์ถํ์ฌ ๋ค์ ํํฐ๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
- ์๋ธ๋ฆฟ ์ฒ๋ฆฌ:
- ๋ชจ๋ ํํฐ๋ฅผ ๊ฑฐ์น ํ, ์ต์ข ์ ์ผ๋ก ์๋ธ๋ฆฟ์ด ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์๋ธ๋ฆฟ์ ์๋ต์ ๋ค์ ํํฐ ์ฒด์ธ์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํ๋ฉ๋๋ค.
์์ฝ
- WAS ์์ ์:
- web.xml ํ์ผ์ ์ฝ๊ณ ํํฐ ๊ฐ์ฒด๋ฅผ ์์ฑ ๋ฐ ์ด๊ธฐํํฉ๋๋ค.
- ํํฐ ๊ฐ์ฒด์ init ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์์ฒญ ์:
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์์ ํ๊ณ , URL ํจํด์ ๋งค์นญ๋๋ ํํฐ๋ฅผ ์ฐพ์ต๋๋ค.
- ํด๋น ํํฐ์ doFilter ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ํํฐ ์ฒด์ธ์ ๋ฐ๋ผ ์์ฒญ์ด ์ ๋ฌ๋๋ฉฐ, ๊ฐ ํํฐ๊ฐ ์์ฐจ์ ์ผ๋ก ์คํ๋ฉ๋๋ค.
- ์ต์ข ์ ์ผ๋ก ์๋ธ๋ฆฟ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ์๋ต์ ๋ฐํํฉ๋๋ค.
์ด์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ํํฐ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ฉฐ, ํน์ ๊ฒฝ๋ก์ ๋ํ ์ฐํ ์ฒ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ ํํฐ๋ง ๋ก์ง์ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ค, ์ ํํฉ๋๋ค. WAS(Web Application Server)๋ฅผ ์คํํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ ์ผ๋ จ์ ๊ณผ์ ์ด ์งํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์๋ฐ ์ฝ๋๋ฅผ ๊ฐ์ฒดํํ๊ณ , ์ค์ ๋ ํํฐ์ ์๋ธ๋ฆฟ ๋ฑ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ์ฌ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๋ฅผ ํฉ๋๋ค.
์์ธํ ๊ณผ์
- WAS ์์:
- WAS๊ฐ ์์๋๋ฉด, web.xml ํ์ผ๊ณผ ๊ธฐํ ์ค์ ํ์ผ๋ค์ ์ฝ์ด๋ค์ ๋๋ค.
- ํํฐ ๋ฐ ์๋ธ๋ฆฟ ์ ์ ๋ก๋:
- web.xml ํ์ผ์์ ์ ์๋ ํํฐ, ์๋ธ๋ฆฟ, ๋ฆฌ์ค๋ ๋ฑ์ ์ฝ๊ณ , ํด๋น ํด๋์ค๋ค์ ์ธ์คํด์คํํ ์ค๋น๋ฅผ ํฉ๋๋ค.
- ํด๋์ค ๋ก๋ฉ ๋ฐ ๊ฐ์ฒดํ:
- WAS์ ํด๋์ค ๋ก๋๊ฐ JAR ํ์ผ, ํด๋์ค ํ์ผ ๋ฑ์ ๋ก๋ํฉ๋๋ค.
- ๊ฐ ํํฐ์ ์๋ธ๋ฆฟ ํด๋์ค๊ฐ ์ธ์คํด์คํ(๊ฐ์ฒดํ)๋ฉ๋๋ค. ์ด๋ ์๋ฐ์ new ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
- ์ด๊ธฐํ ๋ฉ์๋ ํธ์ถ:
- ๊ฐ ํํฐ์ ์๋ธ๋ฆฟ์ init ๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค. ์ด๋ ์ด๊ธฐํ ๋งค๊ฐ๋ณ์ ๋ฑ์ด ์ค์ ๋ฉ๋๋ค.
- ํํฐ์ ๊ฒฝ์ฐ, FilterConfig ๊ฐ์ฒด๋ฅผ ํตํด ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฝ์ด ํ๋ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
- ์๋ธ๋ฆฟ์ ๊ฒฝ์ฐ, ServletConfig ๊ฐ์ฒด๋ฅผ ํตํด ์ด๊ธฐํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฝ์ด ํ๋ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
ํํฐ ์ด๊ธฐํ ์์
web.xml ์ค์
ํํฐ ํด๋์ค
์์ฒญ ์ฒ๋ฆฌ ํ๋ฆ
- ํด๋ผ์ด์ธํธ ์์ฒญ:
- ํด๋ผ์ด์ธํธ๊ฐ /data/login.do์ ๊ฐ์ URL๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
- WAS ์์ฒญ ์์ :
- WAS๋ ์์ฒญ์ ์์ ํ๊ณ , web.xml ํ์ผ์์ ํด๋น ์์ฒญ์ ๋งคํ๋ ํํฐ๋ฅผ ํ์ธํฉ๋๋ค.
- ํํฐ ์คํ:
- ๋งค์นญ๋ ํํฐ์ doFilter ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ํํฐ๋ ํน์ ๋ก์ง์ ์ํํ ํ, chain.doFilter๋ฅผ ํธ์ถํ์ฌ ๋ค์ ํํฐ ๋๋ ์๋ธ๋ฆฟ์ผ๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
- ์๋ธ๋ฆฟ ์คํ:
- ๋ชจ๋ ํํฐ๋ฅผ ๊ฑฐ์น ํ, ์ต์ข ์ ์ผ๋ก ์๋ธ๋ฆฟ์ด ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์๋ธ๋ฆฟ์ ์์ฒญ์ ๋ํ ์๋ต์ ์์ฑํ๊ณ , ์ด๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํฉ๋๋ค.
์์ฝ
- WAS ์์ ์: WAS๊ฐ ์์๋๋ฉด web.xml ํ์ผ์ ์ฝ๊ณ , ์ ์๋ ํํฐ์ ์๋ธ๋ฆฟ ํด๋์ค๋ฅผ ์ธ์คํด์คํํฉ๋๋ค.
- ํํฐ ๋ฐ ์๋ธ๋ฆฟ ์ด๊ธฐํ: ๊ฐ ํํฐ์ ์๋ธ๋ฆฟ์ init ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ด๊ธฐํ ์์ ์ ์ํํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์์ฒญ ์ฒ๋ฆฌ: ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด, ๋งคํ๋ ํํฐ์ ์๋ธ๋ฆฟ์ด ์์ฐจ์ ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ํํฐ๋ง ๋ก์ง ์ ์ฉ: ๊ฐ ํํฐ๋ doFilter ๋ฉ์๋์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , chain.doFilter๋ฅผ ํธ์ถํ์ฌ ๋ค์ ํํฐ ๋๋ ์๋ธ๋ฆฟ์ผ๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
์ด ๊ณผ์ ์์ WAS๋ ์๋ฐ ์ฝ๋๋ฅผ ๊ฐ์ฒดํํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ณ , ์ค์ ๋ ๋๋ก ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๋ฅผ ํฉ๋๋ค. ํํฐ์ ์๋ธ๋ฆฟ์ ์ด๋ฌํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ ์๋ ์์์ ๋ก์ง์ ๋ฐ๋ผ ๋์ํฉ๋๋ค.
๋๊ธ