JSP & Servlet

CharacterEncodingFilter

Jungsoomin :) 2020. 7. 17. 14:28

springframework 예제를 쳐보던 중에 언제나 web.xml에 쳐오던 CharacterEncodingFilter에 대해 더 알게 됬다..

 

내가 보아왔던 그녀석인데,  뜯어보면 경로매핑과 파라미터 설정이 되어있다.

  	<filter>
  		<filter-name>encodingFilter</filter-name>
  		<filter-class>chap19.Util.CharaterEncodingFilter</filter-class>
  		<init-param>
		<param-name>encoding</param-name> 
		<param-value>UTF-8</param-value> 			
  		</init-param>
  	</filter>
  	
  	<filter-mapping>
  		<filter-name>encodingFilter</filter-name>
  		<url-pattern>/*</url-pattern>
  	</filter-mapping>

public class CharaterEncodingFilter implements Filter {
	private String encoding;

    public CharaterEncodingFilter() {
        // TODO Auto-generated constructor stub
    }


	public void destroy() {
		// TODO Auto-generated method stub
	}


	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("utf-8");

		// pass the request along the filter chain
		chain.doFilter(request, response);
	}


	public void init(FilterConfig fConfig) throws ServletException {
		encoding = fConfig.getInitParameter("encoding");
		if(encoding == null) {
			encoding ="UTF-8";
		}
	}

}

<init-param>
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
   </init-param>

 

의 <init-param> 이란, fConfig(FilterConfiguration)에 정의해놓은 Parameter로 encoding= UTF-8 을 주겠다는 것 같다.

 

그렇기에 필터구현은 getInitParameter로 가져오게 되어 encoding변수에 대입시켜 언제나 같은 요청에 setCharacterEncoding을 가지게 해준다.