Servlet๊ณผ JSP ํํฐ๋ ์๋ธ๋ฆฟ๊ณผ JSPํ๋ก๊ทธ๋๋ฐ์์ ์๋์ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ Java ํด๋์ค์ ๋๋ค.
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์์ฒญ์ด ๋ฐฑ์๋๋ก ๊ฐ๊ธฐ ์ ์ ๊ฐ๋ก์ฑ๊ธฐ ์ํด์
์๋ฒ๋ก๋ถํฐ์ ์๋ต์ด ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด์ง๊ธฐ ์ ์ ์กฐ์ํ๊ธฐ ์ํด์
์๋๋ ๋ง์ด ์ฌ์ฉ๋๋ ํํฐ๋ค์ ์ข ๋ฅ์ ๋๋ค.
Authentication Filters.
Data compression Filters
Encryption Filters .
Filters that trigger resource access events.
Image Conversion Filters .
Logging and Auditing Filters.
MIME-TYPE Chain Filters.
Tokenizing Filters .
XSL/T Filters That Transform XML Content.
Filter๋ deployment descriptor ํ์ผ์ธ web.xml์ ํตํด์ ๋ํ๋ก์ด ๋๊ณ servlet ์ด๋ JSP์ ๋งคํ์ด ๋ฉ๋๋ค. web.xml ํ์ผ์ <Tomcat-installation-directory>\conf ๋๋ ํ ๋ฆฌ์์ ์ฐพ์ผ์ค ์ ์์ต๋๋ค.
JSP ์ปจํ ์ด๋๊ฐ ์น์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ ๋, ์ปจํ ์ด๋๋ ๊ฐ ํํฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค. ๋น์ ์ด deployment descriptor์ ์ ์ธํ ํํฐ๋ค์ ๋ง์ด์ฃ . ๊ทธ ํํฐ๋ค์ ์ ์๋ ์์๋๋ก ์คํ์ด ๋ฉ๋๋ค.
Servlet Filter Methods:
ํํฐ๋ ๊ฐ๋จํ ๋งํด์ ๊ทธ๋ฅ Java ํด๋์ค์ ๋๋ค. javax.servlet.Filter ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ผ๊ณ ํ ์ ์์ฃ . The javax.servlet.Filter interface ๋ ์๋์ ์ธ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ ์ธํ๊ณ ์์ต๋๋ค.
S.N. | Method & Description |
---|---|
1 | public void doFilter (ServletRequest, ServletResponse, FilterChain) This method is called by the container each time a request/response pair is passed through the chain due to a client request for a resource at the end of the chain. |
2 | public void init(FilterConfig filterConfig) This method is called by the web container to indicate to a filter that it is being placed into service. |
3 | public void destroy() This method is called by the web container to indicate to a filter that it is being taken out of service. |
JSP Filter ์์
์๋๋ JSP Filter ์์ ์ ๋๋ค. ๋ฌด์์ ํ๋๊ณ ํ๋, ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ํด๋ผ์ด์ธํธ์ IP์ฃผ์๋ฅผ ํ๋ฆฐํธํ๊ณ ํ์ฌ ์๊ฐ์ ๋ฟ๋ ค์ค๋๋ค. ์ด ์์ ๋ฅผ ํตํด์ JSP Filter์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ตํ ์ ์์๊ฑฐ์์.
// Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // Implements Filter class public class LogFilter implements Filter { public void init(FilterConfig config) throws ServletException{ // Get init parameter String testParam = config.getInitParameter("test-param"); //Print the init parameter System.out.println("Test Param: " + testParam); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException { // Get the IP address of client machine. String ipAddress = request.getRemoteAddr(); // Log the IP address and current timestamp. System.out.println("IP "+ ipAddress + ", Time " + new Date().toString()); // Pass request back down the filter chain chain.doFilter(request,response); } public void destroy( ){ /* Called before the Filter instance is removed from service by the web container*/ } }
์ด์ LogFilter.java๋ฅผ ์ปดํ์ผํ๊ณ LogFilter.class ํ์ผ์ <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes ๋๋ ํ ๋ฆฌ์ ๋ฃ์ด์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ ์๋์์ ๋งคํ์์ผ์ฃผ๋ ์์ ์ ๋ ํด์ผํฉ๋๋ค.
JSP Filter Mapping in Web.xml:
web.xml ์์ ํํฐ๋ฅผ ๋งคํํ ๋๋ ์๋์ฒ๋ผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
<filter> <filter-name>LogFilter</filter-name> <filter-class>LogFilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>Initialization Paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
์ ์์ค์ฒ๋ผ ๋งคํํ๋ฉด ๋ชจ๋ ์๋ธ๋ฆฟ๊ณผ JSP์ ์ ์ฉ์ด ๋ฉ๋๋ค. url pattern์์ /* ์ด ์๋ฏธํ๋ ๊ฒ์ด ๋ชจ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, ์ด๊ณณ์ ํน์ servlet ์ด๋ JSP๋ฅผ ๋ฃ์ด ์ค ์๋ ์๋ค๋ ๋ง์ด์ฃ .
์ด์ JSPํ์ด์ง๋ฅผ ์์ฒญํ๋ฉด ์น์๋ฒ ๋ก๊ทธ์์ ์์ฑ๋ ๋ก๊ทธ๋ฅผ ๋ณด์ค ์ ์์ต๋๋ค. Log4J ๋ก๊ฑฐ๋ฅผ ์ฌ์ฉํด์ ๋ค๋ฅธ ํ์ผ์ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ ์๋ ์๋ค๋์ ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
Filter ์ฌ๋ฌ๊ฐ ์ฌ์ฉํ๊ธฐ
์ฌ๋ฌ๊ฐ์ ํํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๋ฉด ์๋์ฒ๋ผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. ๊ฐ๊ฐ์ ํํฐ๋ฅผ ์ ์ํ๊ณ ๊ฐ๊ฐ ๋งคํ์ ํ๋๊ฑฐ์ฃ .
<filter> <filter-name>LogFilter</filter-name> <filter-class>LogFilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>Initialization Paramter</param-value> </init-param> </filter> <filter> <filter-name>AuthenFilter</filter-name> <filter-class>AuthenFilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>Initialization Paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>AuthenFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Filters Application Order:
ํํฐ์ ์ ์ฉ ์์๋ฅผ ๋ฐ๊ฟ ์๋ ์์ต๋๋ค. ๋จผ์ ์ ์๋ ํํฐ๊ฐ ๋จผ์ ์ ์ฉ์ด ๋๋๊ฑฐ์ฃ . ์ ์์ ์์๋ LogFilter๊ฐ AuthenFilter๋ณด๋ค ์ฐ์ ์ ์ฉ์ด ๋๋๊ฑฐ๊ณ ์๋ ์์ ์์๋ AuthenFilter๊ฐ LogFilter๋ณด๋ค ์ฐ์ ์ ์ฉ๋ฉ๋๋ค.
<filter-mapping> <filter-name>AuthenFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Reference : http://www.tutorialspoint.com/jsp/jsp_writing_filters.htm
'๐ป Programming > JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP] Session ( ์ธ์ ) (0) | 2019.02.15 |
---|---|
[JSP] Cookies ( ์ฟ ํค ์ธํ , ์ฝ๊ธฐ, ์ญ์ ํ๊ธฐ) (0) | 2019.02.15 |
[JSP] Form ๋ฐ์ดํ ์ฒ๋ฆฌ (0) | 2019.02.15 |
[JSP] Response Object ( Server Response, Auto Refresh ) (0) | 2019.02.15 |
[JSP] Request Object ( Client Request ) (0) | 2019.02.15 |