개발_웹/Java
Java | 필터를 이용한 한글 인코딩
zuyo
2021. 5. 26. 08:42
반응형
한글 인코딩 방법들
- 페이지마다 request, response 객체에 setEncoding 해주기 (코드의 중복, 비추천)
- Tomcat 서버 자체에서 인코딩
- 필터(Filter) 사용 (추천)
- 인터셉터(Interceptor) 사용 (추천, Spring Framework 사용시)
필터를 이용한 한글 인코딩
1) Filter을 생성
2) 어노테이션 추가
@WebFilter("/*") // 모든 페이지에 대해 필터 적용을 의미
3) 필드 작성
private static final String ENCODING = "UTF-8";
private static final String CONTENTS_TYPE = "text/html";
4) doFilter() 메소드만 사용. 내용은 다음과 같이
request.setCharacterEncoding(ENCODING);
response.setCharacterEncoding(ENCODING);
response.setContentType(CONTENTS_TYPE);
chain.doFilter(request, response);
ex)
package controller.filter;
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;
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {
private static final String ENCODING = "UTF-8";
private static final String CONTENTS_TYPE = "text/html";
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(ENCODING);
response.setCharacterEncoding(ENCODING);
response.setContentType(CONTENTS_TYPE);
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
반응형