헬린코린이
[Servlet & JSP] Filter 본문
필터는 말 그대로 클라이언트의 요청을 선처리하거나 서버의 자원을 가공하여 보내주는 역할을 한다.
이런 필터는 web.xml에 선언되어 계속해서 만들어지는 것이 아닌 한 번 만들어진 클래스가 계속해서 재사용 되는 아주 뛰어난 성능을 가지고 있다.
가장 많이 만나는 UTF-8 필터를 보겠습니다.
package controller;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpFilter;
@WebFilter("*.jsp")
public class EncFilter extends HttpFilter implements Filter {
private String encoding;
public EncFilter() {
super();
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(this.encoding);
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
this.encoding=fConfig.getServletContext().getInitParameter("encoding");
}
}
웹 프로젝트 설정에 관한 내용들을 web.xml에 저장하여 관리합니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<context-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</context-param>
</web-app>
이렇게 관리하는 이유는 결합도를 낮추기위해 이렇게 관리합니다
결합도가 낮다는 것은 설정을 바꿔야할때 코드를 적게 바꾸는 것입니다.
Comments