JSP
[days09] 필터 - 모든 파일에 setCharacterEncoding("UTF-8");
다연
2021. 1. 6. 17:39
반응형
setCharacterEncoding("UTF-8");를 아주 많은 곳에서 사용하는데,
모든 웹페이지(서블릿,jsp)에 한줄씩 추가하지 말고 필터를 통해 붙혀보자
모든 웹페이지 요청할 때 + 웹사이트 전체 이 필터를 다 붙힐 것
web.xml
<filter> <!-- 이 필터를 거친 후 밑에 필터가 있다면 그 필터를 거친다 (필터체인 이렇게 일어남) -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.filter.CharacterEncodingFilter</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>
com.filter.CharacterEncodingFilter
package com.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;
public class CharacterEncodingFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(
ServletRequest request, ServletResponse response
, FilterChain chain)
throws IOException, ServletException {
//System.out.println(">CharacterEncodingFilter.doFilter()호출");
//request.setCharacterEncoding("UTF-8");
// UTF-8말고 다른거 써야할 경우를 위해 web.xml 가서 주기
request.setCharacterEncoding(this.encoding);
chain.doFilter(request, response); //다음 필터 이동
}
private String encoding;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding= filterConfig.getInitParameter("encoding");
if(this.encoding==null) this.encoding = "UTF-8";
}
//모든 웹사이트 호출시 필터 올라감
}
반응형