νν° (Filter)
: Java μΉ μ΄ν리μΌμ΄μ
μμ HTTP μμ²κ³Ό μλ΅μ μ€κ°μμ κ°λ‘μ±κ³ μ‘°μνλ λ° μ¬μ©λλ ꡬμ±μμ
μ¬λ¬ μλΈλ¦Ώ ν΄λμ€μμ λ°λ³΅λλ μ½λλ₯Ό μΌκ΄μ μΌλ‘ μ²λ¦¬νκΈ° μνμ¬ μ¬μ©νλ€.
νν°λ μ£Όλ‘ μμ²κ³Ό μλ΅μ ν€λ μμ , μμ² λ°μ΄ν° κ²μ¦, μΈμ¦ λ° κΆν λΆμ¬, λ‘κΉ
λ±κ³Ό κ°μ μμ
μ μννλ λ° νμ©λ©λλ€.
β’
μλ° μΉ μ΄ν리μΌμ΄μ
κ°λ°μμλ νν°λ₯Ό μ μ©νκΈ° μν΄ Filter μΈν°νμ΄μ€λ₯Ό ꡬν
Filter μΈν°νμ΄μ€
β’
μ£Όμ λ©μλ
λ©μλ | μ€λͺ
|
init() | νν° μ΄κΈ°ν μ νΈμΆλλ©°, νν° μ€μ λ° μ΄κΈ°ν μμ
μ μνν©λλ€. |
doFilter() | μ€μ νν° λμμ μ μνλ λ©μλλ‘, μμ²κ³Ό μλ΅μ κ°λ‘μ±κ³ μμ νλ μμ
μ μνν©λλ€. νν° μ²΄μΈ λ΄ λ€μ νν°λ‘ μμ²μ μ λ¬νκ±°λ νν° μ²΄μΈμ λμ λλ¬νλ©΄ μλΈλ¦ΏμΌλ‘ μμ²μ μ λ¬ν©λλ€. |
destroy() | νν°κ° μλ©Έλ λ νΈμΆλλ©°, 리μμ€ ν΄μ λλ μ 리 μμ
μ μνν©λλ€. |
JSP νν° λ±λ‘νλ λ°©λ²
1.
Filter μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€ μ μ
2.
web.xml μ λ±λ‘
Filter ν΄λμ€ μ μ
import javax.servlet.*;
import java.io.IOException;
public class EncodingFilter implements Filter {
private String encoding;
public void init(FilterConfig filterConfig) throws ServletException {
// web.xmlμμ μ€μ ν μ΄κΈ° 맀κ°λ³μ "encoding"μ μ½μ΄μ΅λλ€.
encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// μμ²κ³Ό μλ΅μ λ¬Έμ μΈμ½λ©μ μ€μ ν©λλ€.
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
// λ€μ νν°λ‘ μμ²μ μ λ¬ν©λλ€. νν° μ²΄μΈμ λμ λλ¬νλ©΄ μλΈλ¦ΏμΌλ‘ μμ²μ΄ μ λ¬λ©λλ€.
chain.doFilter(request, response);
}
public void destroy() {
// νν°κ° μλ©Έλ λ νμν μ 리 μμ
μ μνν©λλ€.
}
}
Java
볡μ¬
web.xml μ λ±λ‘
<web-app>
<!-- EncodingFilterλ₯Ό νν°λ‘ λ±λ‘ν©λλ€. -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>EncodingFilter</filter-class>
<!-- νν° μ΄κΈ° 맀κ°λ³μλ‘ λ¬Έμ μΈμ½λ©μ μ€μ ν©λλ€. -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!-- νν°λ₯Ό URL ν¨ν΄μ 맀νν©λλ€. -->
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- λ€λ₯Έ μλΈλ¦Ώκ³Ό μλΈλ¦Ώ 맀ν μ€μ λ±μ μΆκ°ν μ μμ΅λλ€. -->
</web-app>
XML
볡μ¬
νν°λ₯Ό μ¬μ©νλ μ£Όμ μμ
β’
μΈμ½λ© λ° λ¬Έμ μ§ν© μ²λ¦¬
β’
μΈμ¦ λ° κΆν κ²μ¬
β’
λ‘κ·Έ μ²λ¦¬
β’
μ΄λ―Έμ§ λ° μμ μμΆ
μ΄ν΄λ¦½μ€μμ Filter ν΄λμ€ μμ±νκΈ°
1.
νν° ν΄λμ€ : [NEW] > [Filter]
2.
νν° μμ±νκΈ°
a.
Class Name : TestFilter
3.
νν° λ§€ν κ²½λ‘ μ€μ νκΈ°
a.
Filter mappings > [Edit] > κ²½λ‘ μ§μ
web.xml
<!-- νν° -->
<filter>
<filter-name>TestFilter</filter-name>
<filter-class>filter.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
HTML
볡μ¬