프로그래머의 삶 Programmer's Life/SpringFramework

캐릭터 인코딩 처리를 위한 필터 소스

Oliver's World 2008. 11. 1. 15:49
728x90

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;

public class ENCODINGFilter implements Filter {
 private String ENCODING = null;
 protected FilterConfig filterConfig = null;

 public void destroy() {
  this.ENCODING = null;
  this.filterConfig = null;
 }

 /**
  * ServletRequest객체에 web.xml에서 전달된 인코딩을 설정하는 메써드.
  */
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  if (request.getCharacterENCODING() == null) {
   if (ENCODING != null) {
    request.setCharacterENCODING(ENCODING);
   }
  }

  chain.doFilter(request, response);
 }

 /**
  * web.xml에서 전달된 인코딩 값을 초기화하는 메써드.
  */
 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  this.ENCODING = filterConfig.getInitParameter("ENCODING");
 }

 public FilterConfig getFilterConfig() {
  return filterConfig;
 }

 public void setFilterConfig(FilterConfig cfg) {
  filterConfig = cfg;
 }
}


위와같이 사용하기 위해서는 당연히 web.xml 파일에


 <!--  캐릭터 인코딩 처리를 위한 필터 설정  -->
 <filter>
  <filter-name>ENCODING Filter</filter-name>
  <filter-class>common.filter.ENCODINGFilter</filter-class>
  <init-param>
   <param-name>ENCODING</param-name>
   <param-value>EUC-KR</param-value>
  </init-param>
 </filter>

 <filter-mapping>
  <filter-name>ENCODING Filter</filter-name>
  <url-pattern>/*</url-pattern> <!--  모든 요청에 대한 필터 처리를 한다.  -->
 </filter-mapping>
<!--  캐릭터 인코딩 처리를 위한 필터 설정 끝 -->


설정을 하여야 한다.

728x90