이전 시간에 jsp에서 발생하는 한글 깨짐 현상에 대해서 알아보았는데요. 이번 시간에는 Spring 프레임워크 사용시 발생하는 Spring 한글 깨짐 해결 방법에 대해서 알아보겠습니다.
일반적으로 문자의 깨짐 현상을 해결할 때는 request.setCharacterEncoding(“인코딩 방식”)의 임시방편으로 문제를 해결하곤 하지만
Spring에서는 filter 기능을 활용해서 프로젝트 내의 모든 인코딩 방식을 간단하게 설정할 수 있습니다.
1. 한글깨짐 현상
JSP에서 컨트롤러로 요청을 보냈을 때 넘어오는 파라미터 값을 출력해 봤습니다.
다음과 같이 결과가 깨져서 보입니다.
이럴 경우 위와 같이 utf-8로 깨짐 현상을 해결할 수 있습니다. 하지만 매번 이런식으로 하면 소스도 지저분해 질 뿐더러 매우 번거로울 수 있습니다.
또한, 이렇게 처리해도 다시 jsp로 forward해서 값을 화면단에서 찍을 때 한글깨짐이 발생할 가능성도 농후합니다.
이에 유용하고 간편한 방법을 이용해서 처리해 보겠습니다.
2. xml에 필터 적용하기
spring에서는 filter라는 기능을 이용하여 인코딩을 일괄적으로 적용할 수 있습니다.
적용하기 위해 Spring 프로젝트 내의 web.xml로 이동합니다.
<filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>
다음과 같이 xml내에 UTF-8로 인코딩 해주는 필터를 걸어주고 서버(톰캣)을 재구동 해주면 끝입니다.
이렇게 필터를 걸면 한글이 정상적으로 출력되나 기존의 setCharacterEncoding나 getBytes로 처리했던 부분은 다 제거해 주셔야 합니다.
그렇지 않으면 그 부분은 다시 깨짐 현상이 발생합니다.
spring 한글깨짐 현상이 발생하시는 분들은 위와 같이 filter 기능을 사용해 보시기 바랍니다.
답글 남기기