다연이네

[days09] 필터 - 모든 파일에 setCharacterEncoding("UTF-8"); 본문

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";
		}
  //모든 웹사이트 호출시 필터 올라감
}

 

반응형

'JSP' 카테고리의 다른 글

[days09] MVC패턴으로 방명록 만들기  (0) 2021.01.06
[days09] ServletContextListener  (0) 2021.01.06
[days09] 필터(Filter)  (0) 2021.01.06
[days08] MVC 패턴  (0) 2021.01.05
[days08] JSTL이 제공하는 EL함수  (0) 2021.01.05
Comments