출처 모든 방문 환영합니다. | 야무지게
원문 http://blog.naver.com/83heejung/50035770918
web.xml 환경설정 - Filter 등록
                
<filter>
	<filter-name>char Encoding</filter-name>
	<filter-class>convert.KorConvert</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>      
	</init-param>
</filter> 


java.servlet.Filter 의 생성 주기

웹 응용프로그램이 처음 실행 될때 개체가 생성되고 init() 을 실행

클라이언트 요청이 있을대마다 doFilter() 실행

웹 응용 프로그램이 종료될때 destory() 실행

src.convert.KorConvert.java 예제 

package convert; 

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 KorConvert implements Filter{
	private String encoding;
	private FilterConfig fg;
	private boolean ignore = true;

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		fg = arg0;
		// 필터가 정의되어지는 XML 문서에서 정보를 가져온다.
		encoding = fg.getInitParameter("encoding");
		String value = fg.getInitParameter("ignore");
		
		if(value == null) {
			ignore = true;
		} else if(value.equalsIgnoreCase("true")) {
			ignore = true;
		} else if(value.equalsIgnoreCase("yes")) {
			ignore = true;
		} else {
			ignore = false;
		}    
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
	FilterChain arg2) throws IOException, ServletException {
		if( ignore || arg0.getCharacterEncoding() == null) {
			// ignore 가 true 이거나 setCharacterEncoding으로 설정된 캐릭터셋값이 없을 경우
	
			// 이곳에서 전처리 코드 수행
			if(encoding != null) {
				arg0.setCharacterEncoding(encoding);
			}
			arg2.doFilter(arg0, arg1); 
	
			// 후처리 코드 수행
		}  
	} 

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


+ Recent posts